You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
43 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import{at as e,n as t,st as n}from"./axios-CiYFffbI.js";import{I as r,N as i,O as a,P as o,V as s,X as ee,Y as c,_ as l,d as u,f as d,i as f,it as p,kt as m,l as h,nt as g,p as _,u as v,ut as te,v as y,y as b,z as x}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as S}from"./http-LCi9aT1G.js";import{d as ne,u as C}from"./index-U-G_jNCB.js";import{t as re}from"./RichEditorField-Tk1rsbvR.js";import{a as ie}from"./h5Http-2MvWKf2X.js";import{t as ae}from"./listTableRowIndex-Bl-nc9Qt.js";import{t as w}from"./mediaUrl-CPV6u7br.js";var oe={class:`tg-detail-hub-pane`},se={key:0,class:`tg-hub-activity`},ce={class:`tg-hub-activity__head`},le={class:`tg-hub-activity__title-row`},ue={key:0,class:`tg-hub-activity__tags`},de={class:`tg-hub-section`},fe={key:0,class:`tg-hub-section`},pe={class:`tg-hub-media`},me={key:0,class:`tg-hub-media__cover`},he=[`src`],ge={key:1,class:`tg-hub-media__gallery`},_e={class:`tg-hub-gallery-scroll`},ve=[`src`,`onClick`],ye=[`src`,`onClick`],be={key:1,class:`tg-hub-section`},xe={class:`tg-hub-table-wrap`},Se={key:2,class:`tg-hub-section`},Ce={class:`tg-hub-rich-box`},we=[`innerHTML`],Te={key:3,class:`tg-hub-section`},Ee={class:`tg-hub-rich-box`},De=[`innerHTML`],Oe={class:`tg-detail-hub-pane`},ke={key:1},Ae={class:`tg-detail-hub-pane`},je={style:{display:`flex`,"justify-content":`flex-end`,gap:`8px`,"margin-top":`16px`}},Me={style:{"margin-top":`8px`,width:`100%`,display:`flex`,"flex-wrap":`wrap`,gap:`8px`}},Ne={key:0,style:{color:`#86909c`}},Pe={class:`activity-cover-carousel-wrap`},Fe={class:`activity-cover-carousel-row__col`},Ie=[`src`],Le={class:`activity-cover-carousel-row__col`},Re={style:{display:`flex`,"flex-direction":`column`,"align-items":`flex-start`,width:`100%`}},ze={class:`activity-gallery-grid`},Be=[`src`,`onClick`],Ve=[`src`,`onClick`],He={class:`tg-venue-block`},Ue={class:`tg-venue-table-scroll`},We={class:`tg-venue-actions`},Ge={class:`activity-address-coord-row`},Ke=[`src`],qe=[`src`],Je={style:{display:`flex`,gap:`12px`}},Ye={style:{width:`280px`,height:`520px`,overflow:`auto`,border:`1px solid #e5e6eb`,padding:`8px`}},Xe=1418,Ze=C(b({__name:`TicketGrabList`,setup(b){let C=p(null),Ze=p(!1),Qe=p([]),T=p([]),E=g({current:1,pageSize:10,total:0}),$e=p(``),D=p(void 0),O=p(void 0),k=p(!1),et=p(!1),tt=p(null),A=g({title:``,tags:[],start_at:``,end_at:``,booking_start_at:``,booking_end_at:``,daily_release_start_time:`10:00`,daily_release_end_time:`23:59`,age_limit_start:``,age_limit_end:``,booking_audience:`all`,reservation_notice:``,detail_html:``,cover_image:``,gallery_media:[],is_active:!0,venues:[]}),nt=p(0),rt={maxHeight:`70vh`,overflow:`auto`},it={maxHeight:`70vh`,overflow:`auto`},j=p(null),at=p(0),ot=p(!1),M=h(()=>{let e=j.value;return e?A.venues.find(t=>t._key===e)??null:null}),st=p(!1),ct=p(!1),N=p(null),P=p(null),F=p({}),I=p(``),lt=p(!1),ut=p(`1`),dt=p(``),L=p(null),ft=p(!1),pt=p(``),mt=p([]),ht=p(``),gt=p(!1),R=p(!1),z=p(``),_t=p([]),vt=p(null),B=p(null),V=p(null),yt={lat:31.299379,lng:120.585315},H=null,U=null,bt=p(!1),xt=p(`image`),W=p(``);function G(){return`tgrv-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function K(){return{_key:G(),venue_id:void 0,venue_total_quota:1,opening_hours:``,address:``,lat:void 0,lng:void 0,unit_name:``,contact_name:``,contact_phone:``,qr_verify_method:``,detail_html:``}}function q(e){if(e==null||e===``)return;let t=typeof e==`number`?e:parseFloat(String(e).trim());return Number.isFinite(t)?t:void 0}function J(e){return{_key:G(),venue_id:typeof e.venue_id==`number`?e.venue_id:Number(e.venue_id)||void 0,venue_total_quota:Math.max(0,Math.floor(Number(e.venue_total_quota)||0)),opening_hours:String(e.opening_hours??``),address:String(e.address??``),lat:q(e.lat),lng:q(e.lng),unit_name:String(e.unit_name??``),contact_name:String(e.contact_name??``),contact_phone:String(e.contact_phone??``),qr_verify_method:String(e.qr_verify_method??``),detail_html:String(e.detail_html??``)}}function St(e){return!!(e.opening_hours?.trim()||e.address?.trim()||e.unit_name?.trim()||e.contact_name?.trim()||e.contact_phone?.trim()||e.qr_verify_method?.trim()||e.detail_html&&e.detail_html.trim()||typeof e.lat==`number`||typeof e.lng==`number`)}function Y(e){if(e)return T.value.find(t=>t.id===e)}function Ct(e,t){let n=Y(t);n&&(e.opening_hours=``,e.address=``,e.lat=void 0,e.lng=void 0,e.unit_name=n.unit_name||``,e.contact_name=``,e.contact_phone=``,e.qr_verify_method=``,e.detail_html=n.detail_html?String(n.detail_html):``)}function wt(e){let n=e.venue_id;if(n==null){t.warning(`请先选择场馆`);return}let r=Y(n);if(!r){t.warning(`未找到该场馆信息`);return}e.address=r.address||``,e.lat=q(r.lat),e.lng=q(r.lng)}function Tt(e,t){if(t==null){e.venue_id=void 0;return}let n=e.venue_id;if(n===t)return;let r=()=>{e.venue_id=t,Ct(e,t),a(()=>rn(e))};if(n==null||!St(e)){r();return}ne.confirm({title:`更换场馆`,content:`将使用新场馆的单位与详情等默认信息覆盖本行(开放时间、联系人、联系方式须重新填写;不含地址与坐标,可在详情中点击「使用本馆地址」),是否继续?`,onOk:r})}async function Et(){let{data:e}=await S.get(`/me`);C.value=e}function Dt(){return C.value?.full_admin_access===!0}function Ot(){return C.value?.role===`venue_admin`}function kt(){let e=I.value.trim();if(!e){t.warning(`请输入标签内容`);return}if(A.tags.includes(e)){t.warning(`标签已存在`);return}A.tags=[...A.tags,e],I.value=``}function At(e){let t=[...A.tags];t.splice(e,1),A.tags=t}function jt(e,t){if(e==null||e===``)return t;if(typeof e==`string`&&/^\d{1,2}:\d{2}/.test(e)){let t=e.trim().split(`:`),n=Math.min(23,Math.max(0,parseInt(t[0]||`0`,10)||0)),r=Math.min(59,Math.max(0,parseInt(t[1]||`0`,10)||0));return`${String(n).padStart(2,`0`)}:${String(r).padStart(2,`0`)}`}let n=e;if(typeof n?.format==`function`)try{return n.format(`HH:mm`)}catch{return t}return t}let Mt=h({get(){if(A.start_at&&A.end_at)return[A.start_at,A.end_at]},set(e){Array.isArray(e)&&e.length>=2&&e[0]&&e[1]?(A.start_at=String(e[0]),A.end_at=String(e[1])):(A.start_at=``,A.end_at=``)}}),Nt=h({get(){if(A.booking_start_at&&A.booking_end_at)return[A.booking_start_at,A.booking_end_at]},set(e){Array.isArray(e)&&e.length>=2&&e[0]&&e[1]?(A.booking_start_at=String(e[0]),A.booking_end_at=String(e[1])):(A.booking_start_at=``,A.booking_end_at=``)}}),Pt=h({get(){let e=A.age_limit_start?.trim(),t=A.age_limit_end?.trim();if(!(!e&&!t)){if(e&&t)return[e,t];if(e)return[e,e];if(t)return[t,t]}},set(e){Array.isArray(e)&&e.length>=2&&e[0]&&e[1]?(A.age_limit_start=String(e[0]).slice(0,10),A.age_limit_end=String(e[1]).slice(0,10)):(A.age_limit_start=``,A.age_limit_end=``)}});function Ft(e,t){if(e&&/^https?:\/\//i.test(e))return e;let n=t||e||``;if(!n)return``;let r=n.replace(/^\/+/,``);return`${window.location.origin}/storage/${r}`}async function X(e){let t=new FormData;t.append(`file`,e);let{data:n}=await S.post(`/upload`,t);return Ft(n?.url,n?.path)}function It(e){let t=new Set,n=[e];for(;n.length;){let e=n.shift();if(!(!e||t.has(e))){if(t.add(e),e instanceof File)return e;if(e?.target?.files?.[0]instanceof File)return e.target.files[0];if(Array.isArray(e)){n.push(...e);continue}if(typeof e==`object`){for(let t of[`file`,`raw`,`originFile`,`originFileObj`,`fileItem`,`item`,`data`])e[t]&&n.push(e[t]);for(let t of Object.values(e))t&&typeof t==`object`&&n.push(t)}}}return null}async function Lt(e){try{let n=It(e);if(!n)return!1;A.cover_image=await X(n),A.cover_image=w(A.cover_image),t.success(`封面上传成功`)}catch(e){t.error(e?.response?.data?.message??`封面上传失败`)}return!1}async function Rt(e){try{let n=It(e);if(!n)return!1;let r=w(await X(n)),i=n.type.startsWith(`video/`);A.gallery_media.push({type:i?`video`:`image`,url:r}),t.success(`轮播资源上传成功`)}catch(e){t.error(e?.response?.data?.message??`轮播资源上传失败`)}return!1}function zt(...e){Lt(e)}function Bt(...e){Rt(e)}function Vt(){A.cover_image=``}function Ht(e){A.gallery_media.splice(e,1)}function Z(e,t){t&&(xt.value=e,W.value=t,bt.value=!0)}function Ut(){let e=this.quill,n=document.createElement(`input`);n.type=`file`,n.accept=`image/*`,n.onchange=async()=>{let r=n.files?.[0];if(r)try{let t=await X(r),n=e.getSelection(!0)?.index??Math.max(0,e.getLength()-1);e.insertEmbed(n,`image`,t,`user`),e.setSelection(n+1,0)}catch(e){t.error(e?.response?.data?.message??`图片上传失败`)}},n.click()}function Wt(){let e=this.quill,n=document.createElement(`input`);n.type=`file`,n.accept=`video/*`,n.onchange=async()=>{let r=n.files?.[0];if(r)try{let t=await X(r),n=e.getSelection(!0)?.index??Math.max(0,e.getLength()-1);e.insertEmbed(n,`video`,t,`user`),e.setSelection(n+1,0)}catch(e){t.error(e?.response?.data?.message??`视频上传失败`)}},n.click()}let Gt={modules:{toolbar:{container:[[{header:[1,2,3,!1]}],[`bold`,`italic`,`underline`,`strike`],[{color:[]},{background:[]}],[{list:`ordered`},{list:`bullet`}],[{align:[]}],[`link`,`image`,`video`],[`clean`]],handlers:{image:Ut,video:Wt}}},placeholder:`请输入内容`};function Kt(){return`CRFBZ-NTART-YU4XX-LCDGK-3J456-VKBK2`}async function qt(){if(window.TMap)return;let e=Kt();if(!e)throw Error(`请先配置 VITE_TENCENT_MAP_KEY`);await new Promise((t,n)=>{let r=document.createElement(`script`);r.src=`https://map.qq.com/api/gljs?v=1.exp&key=${e}`,r.async=!0,r.onload=()=>t(),r.onerror=()=>n(Error(`腾讯地图SDK加载失败`)),document.head.appendChild(r)})}function Jt(e,t){let n=window.TMap;H&&(U&&U.setMap(null),U=new n.MultiMarker({map:H,styles:{marker:new n.MarkerStyle({width:24,height:35})},geometries:[{id:`picked`,styleId:`marker`,position:new n.LatLng(e,t)}]}),H.setCenter(new n.LatLng(e,t)))}async function Yt(e,t){let{data:n}=await S.get(`/map/reverse-geocode`,{params:{lat:e,lng:t}});V.value={lat:e,lng:t,address:n.address||``}}function Xt(){return B.value}async function Zt(){if(await qt(),!vt.value){t.error(`地图容器未就绪,请重试`);return}let e=window.TMap,n=Xt(),r=typeof n?.lat==`number`?n.lat:yt.lat,i=typeof n?.lng==`number`?n.lng:yt.lng,a=new e.LatLng(r,i);H?H.setCenter(a):(H=new e.Map(vt.value,{center:a,zoom:13}),H.on(`click`,async e=>{let t=Number(e.latLng.getLat().toFixed(6)),n=Number(e.latLng.getLng().toFixed(6));Jt(t,n),await Yt(t,n)})),typeof n?.lat==`number`&&typeof n?.lng==`number`?(Jt(n.lat,n.lng),V.value={lat:n.lat,lng:n.lng,address:n.address||``}):V.value=null}async function Qt(e){B.value=e,gt.value=!0,z.value=``,_t.value=[],R.value=!0;try{await a(),setTimeout(async()=>{try{await Zt()}catch(e){t.error(e?.message??`地图初始化失败`)}finally{R.value=!1}},200)}catch{R.value=!1}}async function $t(){if(!z.value.trim()){_t.value=[];return}R.value=!0;try{let{data:e}=await S.get(`/map/search`,{params:{keyword:z.value,region:`苏州`}});_t.value=e}catch(e){t.error(e?.response?.data?.message??`地图搜索失败`)}finally{R.value=!1}}async function en(e){Jt(e.lat,e.lng),await Yt(e.lat,e.lng)}function tn(){if(!V.value)return t.warning(`请先点击地图或选择搜索结果`),!1;let e=B.value;return e&&(e.lat=V.value.lat,e.lng=V.value.lng,e.address=V.value.address||e.address),gt.value=!1,B.value=null,!0}function nn(){B.value=null}o(()=>{if(H){try{H.destroy?.()}catch{}H=null}U=null});function rn(e){j.value=e._key,at.value+=1,ot.value=!0}function Q(){ot.value=!1,j.value=null}function an(e){return T.value.find(t=>t.id===e)?.name??`场馆#${e}`}function on(e){return e===`not_started`?`未开始`:e===`ongoing`?`进行中`:e===`ended`?`已结束`:e??`-`}function sn(e){if(e===`not_started`)return`arcoblue`;if(e===`ongoing`)return`green`;if(e===`ended`)return`gray`}function cn(e){let t=String(e??``).trim();return t===`pending`?`待审核`:t===`approved`?`已通过`:t===`rejected`?`已驳回`:t||``}function ln(e){let t=String(e??``).trim();if(t===`pending`)return`orangered`;if(t===`approved`)return`green`;if(t===`rejected`)return`red`}function un(e,t){let n=[e==null?``:String(e).slice(0,10),t==null?``:String(t).slice(0,10)].filter(Boolean);return n.length?n.join(` `):``}function dn(e){if(!e)return``;let t=e.age_limit_start?String(e.age_limit_start).slice(0,10):``,n=e.age_limit_end?String(e.age_limit_end).slice(0,10):``;return t||n?`${t||``} ${n||``}`:`不限制`}function fn(e,t){return e?e.length<=t?e:`${e.slice(0,t)}`:``}function pn(){A.venues.push(K())}function mn(e){if(A.venues.length<=1){t.warning(`至少保留一个场馆`);return}j.value===e._key&&Q(),A.venues=A.venues.filter(t=>t._key!==e._key)}function hn(){nt.value+=1}function gn(){A.title=``,A.tags=[],I.value=``,A.start_at=``,A.end_at=``,A.booking_start_at=``,A.booking_end_at=``,A.daily_release_start_time=`10:00`,A.daily_release_end_time=`23:59`,A.age_limit_start=``,A.age_limit_end=``,A.booking_audience=`all`,A.reservation_notice=``,A.detail_html=``,A.cover_image=``,A.gallery_media=[],A.is_active=!0,A.venues=[K()]}async function _n(){let{data:e}=await S.get(`/venues`,{params:{page_size:500}}),t=e.data??e;T.value=Array.isArray(t)?t:[]}async function $(){Ze.value=!0;try{let e={page:E.current,page_size:E.pageSize},t=$e.value.trim();t&&(e.keyword=t),D.value!=null&&D.value>0&&(e.venue_id=D.value),(O.value===`0`||O.value===`1`)&&(e.is_active=O.value);let{data:n}=await S.get(`/ticket-grab-events`,{params:e});Qe.value=n.data,E.total=n.total}catch(e){t.error(e?.response?.data?.message??`加载失败`)}finally{Ze.value=!1}}function vn(){tt.value=null,gn(),hn(),Q(),k.value=!0}async function yn(e){tt.value=e.id,gn();try{let{data:t}=await S.get(`/ticket-grab-events/${e.id}`);A.title=t.title??``,A.tags=Array.isArray(t.tags)?[...t.tags]:[],I.value=``,A.start_at=t.start_at?String(t.start_at).slice(0,10):``,A.end_at=t.end_at?String(t.end_at).slice(0,10):``,A.booking_start_at=t.booking_start_at?String(t.booking_start_at).slice(0,10):``,A.booking_end_at=t.booking_end_at?String(t.booking_end_at).slice(0,10):``,A.daily_release_start_time=t.daily_release_start_time??`10:00`,A.daily_release_end_time=t.daily_release_end_time??`23:59`,A.age_limit_start=t.age_limit_start?String(t.age_limit_start).slice(0,10):``,A.age_limit_end=t.age_limit_end?String(t.age_limit_end).slice(0,10):``,A.booking_audience=t.booking_audience??`all`,A.reservation_notice=t.reservation_notice??``,A.detail_html=t.detail_html??``;let n=t.cover_image;A.cover_image=n?w(String(n)):``;let r=t.gallery_media;A.gallery_media=Array.isArray(r)?r.map(e=>({...e,url:w(e.url)})):[],A.is_active=!!t.is_active,hn();let i=t.event_venue_pivots??t.eventVenuePivots??[],a=(Array.isArray(i)?i:[]).map(e=>J(e));A.venues=a.length?a:[K()],Q(),k.value=!0}catch(e){t.error(e?.response?.data?.message??`加载详情失败`)}}function bn(e){if(e.venue_id==null)return null;let t=an(e.venue_id);return e.opening_hours?.trim()?e.unit_name?.trim()?e.contact_name?.trim()?e.contact_phone?.trim()?e.qr_verify_method?.trim()?e.address?.trim()?e.lat==null||e.lng==null||!Number.isFinite(Number(e.lat))||!Number.isFinite(Number(e.lng))?`请通过「编辑详情」中的地图选点填写场馆「${t}」的经纬度`:!Number.isFinite(e.venue_total_quota)||e.venue_total_quota<=0?`场馆「${t}」的放票数须大于 0`:null:`请填写场馆「${t}」的场馆地址`:`请填写场馆「${t}」的核销方式说明`:`请填写场馆「${t}」的联系方式`:`请填写场馆「${t}」的联系人`:`请填写场馆「${t}」的所在单位`:`请填写场馆「${t}」的开放时间(可点击「编辑详情」)`}async function xn(){let e=M.value;if(!e)return!0;let n=bn(e);return n?(t.warning(n),!1):!0}function Sn(){return A.venues.filter(e=>e.venue_id!=null&&e.venue_total_quota>0).map(e=>({venue_id:e.venue_id,venue_total_quota:e.venue_total_quota,opening_hours:e.opening_hours||void 0,address:e.address||void 0,lat:e.lat,lng:e.lng,unit_name:e.unit_name||void 0,contact_name:e.contact_name||void 0,contact_phone:e.contact_phone||void 0,qr_verify_method:e.qr_verify_method||void 0,detail_html:e.detail_html||void 0}))}function Cn(e){return/^\d{1,2}:\d{2}$/.test(String(e||``).trim())}async function wn(){if(!A.title.trim())return t.warning(`请填写名称`),!1;if(!A.start_at||!A.end_at)return t.warning(`请选择活动日期`),!1;if(!A.booking_start_at||!A.booking_end_at)return t.warning(`请选择预约日期`),!1;let e=String(A.daily_release_start_time||``).trim(),n=String(A.daily_release_end_time||``).trim();if(!Cn(e)||!Cn(n))return t.warning(`请选择每日放票时间`),!1;if(A.booking_audience!==`all`&&A.booking_audience!==`school_age`)return t.warning(`请选择预约人群`),!1;for(let e of A.venues){if(e.venue_id==null)continue;let n=bn(e);if(n)return t.warning(n),!1}let r=Sn();if(!r.length)return t.warning(`请至少选择一个场馆并填写放票数(放票数须大于 0`),!1;let i={title:A.title.trim(),start_at:A.start_at||null,end_at:A.end_at||null,booking_start_at:A.booking_start_at||null,booking_end_at:A.booking_end_at||null,daily_release_start_time:jt(A.daily_release_start_time,`10:00`),daily_release_end_time:jt(A.daily_release_end_time,`23:59`),age_limit_start:A.age_limit_start||null,age_limit_end:A.age_limit_end||null,booking_audience:A.booking_audience,cover_image:A.cover_image||null,gallery_media:A.gallery_media.length?A.gallery_media:void 0,is_active:A.is_active,reservation_notice:A.reservation_notice||null,detail_html:A.detail_html||null,tags:A.tags.length?A.tags:void 0,venues:r};et.value=!0;try{if(tt.value){let e=tt.value;return await S.put(`/ticket-grab-events/${e}`,i),t.success(`已保存`),k.value=!1,await $(),await a(),await kn(Qe.value.find(t=>t.id===e)??{id:e,title:A.title.trim(),is_active:A.is_active},`2`),!0}let{data:e}=await S.post(`/ticket-grab-events`,i);return t.success(`已创建`),k.value=!1,await $(),await a(),e?.id!=null&&await kn(e,`2`),!0}catch(e){return t.error(e?.response?.data?.message??`保存失败`),!1}finally{et.value=!1}}async function Tn(e){try{await S.post(`/ticket-grab-events/${e.id}/toggle`),t.success(`已更新`),await $()}catch(e){t.error(e?.response?.data?.message??`操作失败`)}}async function En(e){try{await S.delete(`/ticket-grab-events/${e.id}`),t.success(`删除成功`),await $()}catch(e){let n=e?.response?.data;if(n?.message&&n?.reservation_count!==void 0){t.error(`${n.message}(关联预约数:${n.reservation_count}`);return}t.error(n?.message??e?.message??`删除失败`)}}async function Dn(e){st.value=!0,P.value=null,F.value={};try{let{data:t}=await S.get(`/ticket-grab-events/${e}/release-config`);P.value=t;for(let e of t.venues??[]){let t=e.venue_id;F.value[t]={};for(let n of e.release_days??[])F.value[t][n.release_date]=n.day_quota}return!0}catch(e){return t.error(e?.response?.data?.message??`加载放票配置失败`),!1}finally{st.value=!1}}function On(e){return{title:e.title,tags:e.tags??[],start_at:e.start_at,end_at:e.end_at,booking_start_at:e.booking_start_at,booking_end_at:e.booking_end_at,is_active:e.is_active,total_quota:e.total_quota,registered_count:e.registered_count,venues:e.venues??[]}}async function kn(e,t=`1`){N.value=e.id,dt.value=e.title&&String(e.title).trim()||`抢票 #${e.id}`,ut.value=t,lt.value=!0,L.value=null,ft.value=!0,P.value=null,F.value={},ht.value=``,pt.value=ie(),mt.value=[];let n=S.get(`/ticket-grab-events/${e.id}`).then(e=>e.data).catch(()=>null),r=S.get(`/ticket-grab-events/${e.id}/verify-portal`).then(e=>e.data).catch(()=>null),[i,a,o]=await Promise.all([n,Dn(e.id),r]);if(i){let e={...i};e.cover_image&&=w(String(e.cover_image)),Array.isArray(e.gallery_media)&&(e.gallery_media=e.gallery_media.map(e=>({...e,url:w(String(e.url||``))}))),L.value=e}else L.value=On(e);o&&(ht.value=String(o.unified_verify_notice||``).trim(),mt.value=Array.isArray(o.venues)?o.venues:[]),pt.value=ie(),ft.value=!1}function An(){lt.value=!1,N.value=null,P.value=null,F.value={},L.value=null}function jn(e){return String(e??`all`)===`school_age`?`学龄内学生`:`全部人员`}let Mn=h(()=>{let e=L.value;if(!e)return[];let t=e.event_venue_pivots??e.eventVenuePivots;return Array.isArray(t)?t:[]});function Nn(){navigator.clipboard.writeText(pt.value),t.success(`核销链接已复制`)}function Pn(e){navigator.clipboard.writeText(String(e||``).trim()),t.success(`口令已复制`)}async function Fn(){if(!P.value||!N.value)return;let e=[];for(let t of P.value.venues??[]){let n=[],r=F.value[t.venue_id]??{};for(let e of t.release_days??[]){let t=r[e.release_date]??e.day_quota;n.push({date:e.release_date,day_quota:t})}e.push({venue_id:t.venue_id,days:n})}ct.value=!0;try{await S.put(`/ticket-grab-events/${N.value}/release-config`,{venue_day_quotas:e}),t.success(`放票日配置已保存`),N.value!=null&&await Dn(N.value)}catch(e){let n=e?.response?.data?.message;e?.response?.data?.errors?ne.error({title:`校验失败`,content:JSON.stringify(e.response.data.errors)}):t.error(n??`保存失败`)}finally{ct.value=!1}}return i(async()=>{await Promise.all([Et().catch(()=>void 0),_n()]),await $()}),(t,i)=>{let a=s(`a-input`),o=s(`a-option`),p=s(`a-select`),h=s(`a-button`),g=s(`a-space`),b=s(`a-table-column`),S=s(`a-tag`),ne=s(`a-popconfirm`),C=s(`a-table`),ie=s(`a-typography-title`),w=s(`a-divider`),j=s(`a-descriptions-item`),B=s(`a-descriptions`),yt=s(`a-spin`),H=s(`a-tab-pane`),U=s(`a-typography-paragraph`),G=s(`a-input-number`),K=s(`a-tabs`),q=s(`a-alert`),J=s(`a-form-item`),St=s(`a-form`),Y=s(`a-modal`),Ct=s(`a-range-picker`),Et=s(`a-time-picker`),jt=s(`a-switch`),Ft=s(`a-upload`),X=s(`a-typography-text`),It=s(`a-list-item`),Ut=s(`a-list`),Wt=s(`a-card`);return r(),u(Wt,{title:`抢票管理 / 抢票列表`,bordered:!1},{default:c(()=>[y(g,{direction:`vertical`,fill:``},{default:c(()=>[y(g,{wrap:``,size:12},{default:c(()=>[y(a,{modelValue:$e.value,"onUpdate:modelValue":i[0]||=e=>$e.value=e,placeholder:`按名称搜索`,"allow-clear":``,style:{width:`180px`}},null,8,[`modelValue`]),Ot()?d(``,!0):(r(),u(p,{key:0,modelValue:D.value,"onUpdate:modelValue":i[1]||=e=>D.value=e,placeholder:`场馆`,"allow-clear":``,"allow-search":``,style:{width:`200px`},onChange:i[2]||=()=>(E.current=1,$())},{default:c(()=>[(r(!0),_(f,null,x(T.value,e=>(r(),u(o,{key:e.id,value:e.id},{default:c(()=>[l(m(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])),y(p,{modelValue:O.value,"onUpdate:modelValue":i[3]||=e=>O.value=e,placeholder:`上架状态`,"allow-clear":``,style:{width:`130px`},onChange:i[4]||=()=>(E.current=1,$())},{default:c(()=>[y(o,{value:`1`},{default:c(()=>[...i[38]||=[l(`上架`,-1)]]),_:1}),y(o,{value:`0`},{default:c(()=>[...i[39]||=[l(`下架`,-1)]]),_:1})]),_:1},8,[`modelValue`]),y(h,{type:`primary`,onClick:i[5]||=()=>(E.current=1,$())},{default:c(()=>[...i[40]||=[l(`查询`,-1)]]),_:1}),y(h,{type:`primary`,onClick:vn},{default:c(()=>[...i[41]||=[l(`新建抢票`,-1)]]),_:1})]),_:1}),y(C,{class:`list-data-table`,scroll:{x:Xe},data:Qe.value,loading:Ze.value,"row-key":`id`,pagination:{current:E.current,pageSize:E.pageSize,total:E.total,showTotal:!0,onChange:e=>{E.current=e,$()},onPageSizeChange:e=>{E.pageSize=e,E.current=1,$()}}},{columns:c(()=>[y(b,{title:``,width:50,ellipsis:!0,tooltip:!0},{cell:c(({rowIndex:e})=>[l(m(te(ae)(e,E.current,E.pageSize)),1)]),_:1}),y(b,{title:`名称`,"data-index":`title`,width:140,"min-width":110,ellipsis:!0,tooltip:!0}),y(b,{title:`标签`,width:130,ellipsis:!0,tooltip:!0},{cell:c(({record:e})=>[l(m((e.tags||[]).length?(e.tags||[]).join(``):``),1)]),_:1}),y(b,{title:`场馆`,width:180,"min-width":140,ellipsis:!0,tooltip:!0},{cell:c(({record:e})=>[l(m((e.venues||[]).map(e=>e.name).join(``)||`-`),1)]),_:1}),y(b,{title:`活动状态`,width:72},{cell:c(({record:e})=>[l(m(on(e.schedule_status)),1)]),_:1}),y(b,{title:`放票总数`,width:72},{cell:c(({record:e})=>[l(m(e.total_quota??0),1)]),_:1}),y(b,{title:`已预约`,width:72},{cell:c(({record:e})=>[l(m(e.registered_count??0),1)]),_:1}),y(b,{title:`上架状态`,width:72},{cell:c(({record:e})=>[y(S,{color:e.is_active?`green`:`gray`},{default:c(()=>[l(m(e.is_active?`上架`:`下架`),1)]),_:2},1032,[`color`])]),_:1}),y(b,{title:`操作`,width:298,"min-width":270,fixed:`right`,align:`left`},{cell:c(({record:e})=>[y(g,{size:2,class:`tg-list-actions`,align:`start`},{default:c(()=>[y(h,{type:`text`,size:`small`,onClick:t=>yn(e)},{default:c(()=>[...i[42]||=[l(`编辑`,-1)]]),_:1},8,[`onClick`]),y(h,{type:`text`,size:`small`,onClick:t=>kn(e,`1`)},{default:c(()=>[...i[43]||=[l(`查看`,-1)]]),_:1},8,[`onClick`]),y(h,{type:`text`,size:`small`,status:`warning`,onClick:t=>Tn(e)},{default:c(()=>[l(m(e.is_active?`下架`:`上架`),1)]),_:2},1032,[`onClick`]),Dt()?(r(),u(ne,{key:0,content:`确认删除?无预约时方可删除`,onOk:t=>En(e)},{default:c(()=>[y(h,{type:`text`,size:`small`,status:`danger`},{default:c(()=>[...i[44]||=[l(`删除`,-1)]]),_:1})]),_:1},8,[`onOk`])):d(``,!0)]),_:2},1024)]),_:1})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1}),y(Y,{visible:lt.value,"onUpdate:visible":i[8]||=e=>lt.value=e,title:dt.value,width:`960px`,footer:!1,"unmount-on-close":``,"body-class":`tg-detail-hub-modal-body`,onCancel:An},{default:c(()=>[y(K,{"active-key":ut.value,"onUpdate:activeKey":i[7]||=e=>ut.value=e,type:`rounded`},{default:c(()=>[y(H,{key:`1`,title:`活动信息`},{default:c(()=>[v(`div`,oe,[y(yt,{style:{width:`100%`},loading:ft.value},{default:c(()=>[L.value?(r(),_(`div`,se,[v(`div`,ce,[v(`div`,le,[y(ie,{heading:5,class:`tg-hub-activity__name`},{default:c(()=>[l(m(String(L.value.title??``)),1)]),_:1}),y(g,{wrap:``,size:8},{default:c(()=>[N.value==null?d(``,!0):(r(),u(S,{key:0,size:`small`},{default:c(()=>[l(`#`+m(N.value),1)]),_:1})),y(S,{color:L.value.is_active?`green`:`gray`,size:`small`},{default:c(()=>[l(m(L.value.is_active?`已上架`:`已下架`),1)]),_:1},8,[`color`]),L.value.schedule_status?(r(),u(S,{key:1,color:sn(String(L.value.schedule_status)),size:`small`},{default:c(()=>[l(m(on(String(L.value.schedule_status))),1)]),_:1},8,[`color`])):d(``,!0),L.value.audit_status?(r(),u(S,{key:2,color:ln(L.value.audit_status),size:`small`},{default:c(()=>[l(m(cn(L.value.audit_status)),1)]),_:1},8,[`color`])):d(``,!0)]),_:1})]),Array.isArray(L.value.tags)&&L.value.tags.length?(r(),_(`div`,ue,[(r(!0),_(f,null,x(L.value.tags,(e,t)=>(r(),u(S,{key:`${e}-${t}`,color:`arcoblue`,size:`small`},{default:c(()=>[l(m(e),1)]),_:2},1024))),128))])):d(``,!0)]),y(w,{class:`tg-hub-divider`}),v(`section`,de,[i[45]||=v(`h6`,{class:`tg-hub-section__title`},`时间与规则`,-1),y(B,{column:2,size:`small`,bordered:``,class:`tg-hub-desc`},{default:c(()=>[y(j,{label:`活动日期`},{default:c(()=>[l(m(un(L.value.start_at,L.value.end_at)),1)]),_:1}),y(j,{label:`预约日期`},{default:c(()=>[l(m(un(L.value.booking_start_at,L.value.booking_end_at)),1)]),_:1}),y(j,{label:`每日放票时段`,span:2},{default:c(()=>[l(m(String(L.value.daily_release_start_time??``))+` `+m(String(L.value.daily_release_end_time??``)),1)]),_:1}),y(j,{label:`预约人群`},{default:c(()=>[l(m(jn(L.value.booking_audience)),1)]),_:1}),y(j,{label:`年龄限制`},{default:c(()=>[l(m(dn(L.value)),1)]),_:1}),y(j,{label:`放票总数`},{default:c(()=>[l(m(Number(L.value.total_quota??0)),1)]),_:1}),y(j,{label:`已预约`},{default:c(()=>[l(m(Number(L.value.registered_count??0)),1)]),_:1})]),_:1})]),L.value.cover_image||Array.isArray(L.value.gallery_media)&&L.value.gallery_media.length?(r(),_(`section`,fe,[i[48]||=v(`h6`,{class:`tg-hub-section__title`},`封面与轮播`,-1),v(`div`,pe,[L.value.cover_image?(r(),_(`div`,me,[i[46]||=v(`div`,{class:`tg-hub-media__sub`},`封面`,-1),v(`img`,{src:String(L.value.cover_image),alt:``,class:`tg-hub-media__cover-img`,onClick:i[6]||=e=>Z(`image`,String(L.value.cover_image))},null,8,he)])):d(``,!0),Array.isArray(L.value.gallery_media)&&L.value.gallery_media.length?(r(),_(`div`,ge,[i[47]||=v(`div`,{class:`tg-hub-media__sub`},`轮播`,-1),v(`div`,_e,[(r(!0),_(f,null,x(L.value.gallery_media,(e,t)=>(r(),_(`div`,{key:t+e.url,class:`tg-hub-gallery-thumb-wrap`},[e.type===`image`?(r(),_(`img`,{key:0,src:e.url,class:`tg-hub-gallery-thumb`,onClick:t=>Z(`image`,e.url)},null,8,ve)):(r(),_(`video`,{key:1,src:e.url,controls:``,class:`tg-hub-gallery-thumb tg-hub-gallery-thumb--video`,onClick:n(t=>Z(`video`,e.url),[`stop`])},null,8,ye))]))),128))])])):d(``,!0)])])):d(``,!0),Mn.value.length?(r(),_(`section`,be,[i[49]||=v(`h6`,{class:`tg-hub-section__title`},`参与场馆与配额`,-1),v(`div`,xe,[y(C,{data:Mn.value,size:`small`,pagination:!1,"row-key":`venue_id`,bordered:{cell:!0}},{columns:c(()=>[y(b,{title:`场馆`,"data-index":`venue_id`},{cell:c(({record:e})=>[l(m(an(e.venue_id)),1)]),_:1}),y(b,{title:`放票数`,width:96},{cell:c(({record:e})=>[l(m(e.venue_total_quota??``),1)]),_:1}),y(b,{title:`开放时间`,ellipsis:!0,tooltip:!0},{cell:c(({record:e})=>[l(m(fn(String(e.opening_hours??``),36)),1)]),_:1}),y(b,{title:`地址`,ellipsis:!0,tooltip:!0},{cell:c(({record:e})=>[l(m(fn(String(e.address??``),40)),1)]),_:1})]),_:1},8,[`data`])])])):d(``,!0),String(L.value.reservation_notice||``).trim()?(r(),_(`section`,Se,[i[50]||=v(`h6`,{class:`tg-hub-section__title`},`预约须知`,-1),v(`div`,Ce,[v(`div`,{class:`tg-hub-rich`,innerHTML:String(L.value.reservation_notice)},null,8,we)])])):d(``,!0),String(L.value.detail_html||``).trim()?(r(),_(`section`,Te,[i[51]||=v(`h6`,{class:`tg-hub-section__title`},`活动详情`,-1),v(`div`,Ee,[v(`div`,{class:`tg-hub-rich`,innerHTML:String(L.value.detail_html)},null,8,De)])])):d(``,!0)])):d(``,!0)]),_:1},8,[`loading`])])]),_:1}),y(H,{key:`2`,title:`放票设置`},{default:c(()=>[v(`div`,Oe,[st.value?(r(),u(yt,{key:0,style:{width:`100%`,padding:`24px`}})):P.value?(r(),_(`div`,ke,[P.value.event?(r(),u(U,{key:0,type:`secondary`,style:{"margin-top":`0`}},{default:c(()=>[l(` 预约日 `+m(P.value.event.booking_start_at)+` `+m(P.value.event.booking_end_at)+`,每日 `+m(P.value.event.daily_release_start_time)+` 起开放,至 `+m(P.value.event.daily_release_end_time)+` 止。 `,1)]),_:1})):d(``,!0),P.value.venues?.length?(r(),u(K,{key:1,"default-active-key":`0`},{default:c(()=>[(r(!0),_(f,null,x(P.value.venues,(e,t)=>(r(),u(H,{key:String(t),title:`${an(e.venue_id)} · 总配额 ${e.venue_total_quota}`},{default:c(()=>[y(C,{data:e.release_days,pagination:!1,scroll:{y:320}},{columns:c(()=>[y(b,{title:`抢票日期`,"data-index":`release_date`,width:120}),y(b,{title:`昨日余票`,width:88},{cell:c(({record:e})=>[l(m(e.carry_in),1)]),_:1}),y(b,{title:`基础放票`,width:120},{cell:c(({record:t})=>[y(G,{modelValue:F.value[e.venue_id][t.release_date],"onUpdate:modelValue":n=>F.value[e.venue_id][t.release_date]=n,min:0,mode:`button`},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1024),y(b,{title:`可预约总量`,width:120},{cell:c(({record:e})=>[l(m(e.total_day_pool),1)]),_:1}),y(b,{title:`已预约`,width:72},{cell:c(({record:e})=>[l(m(e.booked_count),1)]),_:1}),y(b,{title:`余量`,width:88},{cell:c(({record:e})=>[l(m(e.current_remaining),1)]),_:1})]),_:2},1032,[`data`])]),_:2},1032,[`title`]))),128))]),_:1})):d(``,!0),P.value.venues?.length?d(``,!0):(r(),u(q,{key:2,type:`warning`},{default:c(()=>[...i[52]||=[l(`暂无放票日数据,请先保存活动并含预约日期与场馆。`,-1)]]),_:1}))])):d(``,!0)])]),_:1}),y(H,{key:`3`,title:`核销说明`},{default:c(()=>[v(`div`,Ae,[ht.value?(r(),u(U,{key:0,type:`secondary`,style:{"margin-bottom":`12px`}},{default:c(()=>[l(m(ht.value),1)]),_:1})):d(``,!0),y(St,{layout:`vertical`},{default:c(()=>[y(J,{label:`核销登录页(与活动核销相同)`},{default:c(()=>[y(g,null,{default:c(()=>[y(a,{"model-value":pt.value,readonly:``,style:{width:`460px`}},null,8,[`model-value`]),y(h,{type:`primary`,onClick:Nn},{default:c(()=>[...i[53]||=[l(`复制链接`,-1)]]),_:1})]),_:1})]),_:1})]),_:1}),y(w,{orientation:`left`},{default:c(()=>[...i[54]||=[l(`本场参与场馆 · 6 位抢票核销口令`,-1)]]),_:1}),y(C,{data:mt.value,pagination:!1,size:`small`,"row-key":`venue_id`},{columns:c(()=>[y(b,{title:`场馆`,"data-index":`venue_name`}),y(b,{title:`6 位口令`,"data-index":`verify_portal_pin`}),y(b,{title:`操作`,width:100},{cell:c(({record:e})=>[y(h,{type:`text`,size:`mini`,onClick:t=>Pn(String(e.verify_portal_pin||``))},{default:c(()=>[...i[55]||=[l(`复制口令`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])])]),_:1})]),_:1},8,[`active-key`]),v(`div`,je,[y(h,{onClick:An},{default:c(()=>[...i[56]||=[l(`关闭`,-1)]]),_:1}),ee(y(h,{type:`primary`,loading:ct.value,disabled:!P.value?.venues?.length,onClick:Fn},{default:c(()=>[...i[57]||=[l(` 保存放票配置 `,-1)]]),_:1},8,[`loading`,`disabled`]),[[e,ut.value===`2`]])])]),_:1},8,[`visible`,`title`]),y(Y,{visible:k.value,"onUpdate:visible":i[21]||=e=>k.value=e,title:tt.value?`编辑抢票`:`新建抢票`,"ok-text":`下一步:放票配置`,width:`70%`,"body-style":rt,"ok-loading":et.value,"unmount-on-close":``,"on-before-ok":wn,onCancel:i[22]||=e=>k.value=!1},{default:c(()=>[y(St,{model:A,layout:`vertical`,class:`admin-modal-form`},{default:c(()=>[y(J,{label:`名称`,required:``},{default:c(()=>[y(a,{modelValue:A.title,"onUpdate:modelValue":i[9]||=e=>A.title=e},null,8,[`modelValue`])]),_:1}),y(J,{label:`活动日期`,required:``},{default:c(()=>[y(Ct,{modelValue:Mt.value,"onUpdate:modelValue":i[10]||=e=>Mt.value=e,format:`YYYY-MM-DD`,"value-format":`YYYY-MM-DD`,"exchange-time":!1,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),y(J,{label:`预约日期`,required:``},{default:c(()=>[y(Ct,{modelValue:Nt.value,"onUpdate:modelValue":i[11]||=e=>Nt.value=e,format:`YYYY-MM-DD`,"value-format":`YYYY-MM-DD`,"exchange-time":!1,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),y(J,{label:`每日放票时间`,required:``},{default:c(()=>[y(g,null,{default:c(()=>[y(Et,{modelValue:A.daily_release_start_time,"onUpdate:modelValue":i[12]||=e=>A.daily_release_start_time=e,format:`HH:mm`,placeholder:`开始时间`,style:{width:`160px`}},null,8,[`modelValue`]),i[58]||=v(`span`,{style:{color:`var(--color-text-3)`}},``,-1),y(Et,{modelValue:A.daily_release_end_time,"onUpdate:modelValue":i[13]||=e=>A.daily_release_end_time=e,format:`HH:mm`,placeholder:`结束时间`,style:{width:`160px`}},null,8,[`modelValue`])]),_:1})]),_:1}),y(J,{label:`预约人群`,required:``},{default:c(()=>[y(p,{modelValue:A.booking_audience,"onUpdate:modelValue":i[14]||=e=>A.booking_audience=e,placeholder:`请选择`},{default:c(()=>[y(o,{value:`all`},{default:c(()=>[...i[59]||=[l(`全部人员`,-1)]]),_:1}),y(o,{value:`school_age`},{default:c(()=>[...i[60]||=[l(`学龄内学生`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),y(J,{label:`年龄限制`,extra:`按身份证出生日期,可选;起止均为空表示不限制;单日可起止选同一天`},{default:c(()=>[y(Ct,{modelValue:Pt.value,"onUpdate:modelValue":i[15]||=e=>Pt.value=e,format:`YYYY-MM-DD`,"value-format":`YYYY-MM-DD`,"exchange-time":!1,"allow-clear":``,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),y(J,{label:`上架状态`,extra:`关闭后前台不展示该抢票活动`},{default:c(()=>[y(jt,{modelValue:A.is_active,"onUpdate:modelValue":i[16]||=e=>A.is_active=e},null,8,[`modelValue`])]),_:1}),y(J,{label:`标签`,class:`admin-modal-form__full`},{default:c(()=>[y(g,{style:{width:`100%`}},{default:c(()=>[y(a,{modelValue:I.value,"onUpdate:modelValue":i[17]||=e=>I.value=e,placeholder:`请输入标签内容`,onPressEnter:kt},null,8,[`modelValue`]),y(h,{type:`primary`,onClick:kt},{default:c(()=>[...i[61]||=[l(`保存标签`,-1)]]),_:1})]),_:1}),v(`div`,Me,[(r(!0),_(f,null,x(A.tags,(e,t)=>(r(),u(S,{key:`${e}-${t}`,closable:``,style:{"margin-bottom":`0`},onClose:e=>At(t)},{default:c(()=>[l(m(e),1)]),_:2},1032,[`onClose`]))),128)),A.tags.length?d(``,!0):(r(),_(`span`,Ne,`暂无标签`))])]),_:1}),y(J,{label:`封面与轮播`,class:`admin-modal-form__full`},{default:c(()=>[v(`div`,Pe,[v(`div`,Fe,[i[65]||=v(`div`,{class:`activity-cover-carousel-row__sub`},`封面图`,-1),y(g,{direction:`vertical`,fill:``,style:{width:`100%`}},{default:c(()=>[y(Ft,{"auto-upload":!1,"show-file-list":!1,accept:`image/*`,"before-upload":Lt,onChange:zt},{"upload-button":c(()=>[y(h,null,{default:c(()=>[...i[62]||=[l(`上传封面`,-1)]]),_:1})]),_:1}),y(X,{type:`secondary`},{default:c(()=>[...i[63]||=[l(`图片尺寸推荐 1200×600`,-1)]]),_:1}),A.cover_image?(r(),u(g,{key:0,direction:`vertical`,align:`start`},{default:c(()=>[v(`img`,{src:A.cover_image,class:`activity-cover-thumb`,onClick:i[18]||=e=>Z(`image`,A.cover_image)},null,8,Ie),y(h,{size:`mini`,status:`danger`,onClick:Vt},{default:c(()=>[...i[64]||=[l(`删除封面`,-1)]]),_:1})]),_:1})):d(``,!0)]),_:1})]),v(`div`,Le,[i[69]||=v(`div`,{class:`activity-cover-carousel-row__sub`},`轮播图`,-1),v(`div`,Re,[y(Ft,{"auto-upload":!1,"show-file-list":!1,multiple:``,accept:`image/*,video/*`,"before-upload":Rt,onChange:Bt},{"upload-button":c(()=>[y(h,{type:`primary`},{default:c(()=>[...i[66]||=[l(`新增轮播资源`,-1)]]),_:1})]),_:1}),y(X,{type:`secondary`,style:{"margin-top":`12px`,display:`block`}},{default:c(()=>[...i[67]||=[l(`图片尺寸推荐 1200×600`,-1)]]),_:1}),v(`div`,ze,[(r(!0),_(f,null,x(A.gallery_media,(e,t)=>(r(),_(`div`,{key:e.url+t,class:`activity-gallery-item`},[e.type===`image`?(r(),_(`img`,{key:0,src:e.url,class:`activity-gallery-thumb`,onClick:t=>Z(`image`,e.url)},null,8,Be)):(r(),_(`video`,{key:1,src:e.url,controls:``,class:`activity-gallery-thumb activity-gallery-thumb--video`,onClick:n(t=>Z(`video`,e.url),[`stop`])},null,8,Ve)),y(h,{size:`mini`,status:`danger`,onClick:e=>Ht(t)},{default:c(()=>[...i[68]||=[l(`删除`,-1)]]),_:1},8,[`onClick`])]))),128))])])])])]),_:1}),y(J,{label:`参与场馆与放票`,required:``,class:`admin-modal-form__full`},{default:c(()=>[v(`div`,He,[y(h,{type:`primary`,class:`tg-venue-block__add`,onClick:pn},{default:c(()=>[...i[70]||=[l(`新增场馆`,-1)]]),_:1}),v(`div`,Ue,[y(C,{class:`tg-venue-table`,data:A.venues,pagination:!1,"row-key":`_key`,size:`small`,bordered:{cell:!0},scroll:{x:1040}},{columns:c(()=>[y(b,{title:`场馆`,"min-width":200},{cell:c(({record:e})=>[y(p,{"model-value":e.venue_id,"allow-clear":``,"allow-search":``,placeholder:`选择场馆`,style:{width:`100%`},options:T.value.map(e=>({label:e.name,value:e.id})),"onUpdate:modelValue":t=>Tt(e,t)},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),_:1}),y(b,{title:`放票数`,width:200},{cell:c(({record:e})=>[y(G,{modelValue:e.venue_total_quota,"onUpdate:modelValue":t=>e.venue_total_quota=t,min:1,class:`tg-venue-quota-input`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),y(b,{title:`开放时间`,"min-width":120,ellipsis:!0,tooltip:!0},{cell:c(({record:e})=>[l(m(fn(e.opening_hours,20)),1)]),_:1}),y(b,{title:`地址`,"min-width":160,ellipsis:!0,tooltip:!0},{cell:c(({record:e})=>[l(m(fn(e.address,24)),1)]),_:1}),y(b,{title:`操作`,width:136,align:`center`},{cell:c(({record:e})=>[v(`div`,We,[y(h,{type:`text`,size:`small`,onClick:t=>rn(e)},{default:c(()=>[...i[71]||=[l(`编辑详情`,-1)]]),_:1},8,[`onClick`]),y(h,{type:`text`,size:`small`,status:`danger`,disabled:A.venues.length<=1,onClick:t=>mn(e)},{default:c(()=>[...i[72]||=[l(` 删除 `,-1)]]),_:1},8,[`disabled`,`onClick`])])]),_:1})]),_:1},8,[`data`])])])]),_:1}),y(J,{label:`预约须知`,class:`admin-modal-form__full`},{default:c(()=>[(r(),u(re,{modelValue:A.reservation_notice,"onUpdate:modelValue":i[19]||=e=>A.reservation_notice=e,"editor-options":Gt,"field-key":`tg-reservation`,key:`tg-r-${nt.value}`},null,8,[`modelValue`]))]),_:1}),y(J,{label:`活动详情`,class:`admin-modal-form__full`},{default:c(()=>[(r(),u(re,{modelValue:A.detail_html,"onUpdate:modelValue":i[20]||=e=>A.detail_html=e,"editor-options":Gt,"field-key":`tg-detail`,"min-height":280,key:`tg-d-${nt.value}`},null,8,[`modelValue`]))]),_:1})]),_:1},8,[`model`])]),_:1},8,[`visible`,`title`,`ok-loading`]),y(Y,{visible:ot.value,"onUpdate:visible":i[34]||=e=>ot.value=e,title:`编辑场馆详情`,width:`80%`,"body-style":rt,"unmount-on-close":``,"on-before-ok":xn,onOk:Q,onCancel:Q},{default:c(()=>[M.value?(r(),u(St,{layout:`vertical`,class:`admin-modal-form`,key:M.value._key},{default:c(()=>[y(J,{label:`开放时间`,required:``},{default:c(()=>[y(a,{modelValue:M.value.opening_hours,"onUpdate:modelValue":i[23]||=e=>M.value.opening_hours=e,placeholder:`可填写面向用户的开放时段说明`,"allow-clear":``},null,8,[`modelValue`])]),_:1}),y(J,{label:`所在单位`,required:``},{default:c(()=>[y(a,{modelValue:M.value.unit_name,"onUpdate:modelValue":i[24]||=e=>M.value.unit_name=e,"allow-clear":``},null,8,[`modelValue`])]),_:1}),y(J,{label:`联系人`,required:``},{default:c(()=>[y(a,{modelValue:M.value.contact_name,"onUpdate:modelValue":i[25]||=e=>M.value.contact_name=e,"allow-clear":``},null,8,[`modelValue`])]),_:1}),y(J,{label:`联系方式`,required:``},{default:c(()=>[y(a,{modelValue:M.value.contact_phone,"onUpdate:modelValue":i[26]||=e=>M.value.contact_phone=e,"allow-clear":``,placeholder:`电话等`},null,8,[`modelValue`])]),_:1}),y(J,{label:`核销方式说明`,required:``},{default:c(()=>[y(a,{modelValue:M.value.qr_verify_method,"onUpdate:modelValue":i[27]||=e=>M.value.qr_verify_method=e,"allow-clear":``,placeholder:`入馆核销方式说明`},null,8,[`modelValue`])]),_:1}),y(J,{label:`场馆地址与经纬度`,required:``,class:`admin-modal-form__full`},{default:c(()=>[v(`div`,Ge,[y(a,{modelValue:M.value.address,"onUpdate:modelValue":i[28]||=e=>M.value.address=e,class:`activity-address-coord-row__address`,placeholder:`场馆地址`,"allow-clear":``},null,8,[`modelValue`]),y(G,{modelValue:M.value.lng,"onUpdate:modelValue":i[29]||=e=>M.value.lng=e,class:`activity-address-coord-row__lng`,precision:7,placeholder:`经度`,"hide-button":``,disabled:``},null,8,[`modelValue`]),y(G,{modelValue:M.value.lat,"onUpdate:modelValue":i[30]||=e=>M.value.lat=e,class:`activity-address-coord-row__lat`,precision:7,placeholder:`纬度`,"hide-button":``,disabled:``},null,8,[`modelValue`]),y(h,{type:`primary`,class:`activity-address-coord-row__map`,onClick:i[31]||=e=>Qt(M.value)},{default:c(()=>[...i[73]||=[l(`地图选点`,-1)]]),_:1}),y(h,{class:`activity-address-coord-row__map`,onClick:i[32]||=e=>wt(M.value)},{default:c(()=>[...i[74]||=[l(`使用本馆地址`,-1)]]),_:1})])]),_:1}),y(J,{label:`详情`,class:`admin-modal-form__full`},{default:c(()=>[(r(),u(re,{modelValue:M.value.detail_html,"onUpdate:modelValue":i[33]||=e=>M.value.detail_html=e,"editor-options":Gt,"field-key":`tg-venue-d-${M.value._key}`,"min-height":200,key:`tg-vd-${at.value}-${M.value._key}`},null,8,[`modelValue`,`field-key`]))]),_:1})]),_:1})):d(``,!0)]),_:1},8,[`visible`]),y(Y,{visible:bt.value,"onUpdate:visible":i[35]||=e=>bt.value=e,title:`媒体预览`,width:`72%`,footer:!1},{default:c(()=>[xt.value===`image`&&W.value?(r(),_(`img`,{key:0,src:W.value,style:{display:`block`,"max-width":`100%`,"max-height":`72vh`,margin:`0 auto`}},null,8,Ke)):xt.value===`video`&&W.value?(r(),_(`video`,{key:1,src:W.value,controls:``,autoplay:``,style:{display:`block`,width:`100%`,"max-height":`72vh`}},null,8,qe)):d(``,!0)]),_:1},8,[`visible`]),y(Y,{visible:gt.value,"onUpdate:visible":i[37]||=e=>gt.value=e,title:`地图选点(腾讯地图)`,width:`70%`,"body-style":it,"on-before-ok":tn,"unmount-on-close":``,onCancel:nn},{default:c(()=>[y(g,{style:{"margin-bottom":`12px`,width:`100%`}},{default:c(()=>[y(a,{modelValue:z.value,"onUpdate:modelValue":i[36]||=e=>z.value=e,placeholder:`输入关键词搜索,如:苏州博物馆`,style:{width:`420px`}},null,8,[`modelValue`]),y(h,{type:`primary`,loading:R.value,onClick:$t},{default:c(()=>[...i[75]||=[l(`搜索`,-1)]]),_:1},8,[`loading`])]),_:1}),v(`div`,Je,[v(`div`,{ref_key:`mapContainerRef`,ref:vt,style:{height:`520px`,flex:`1`,border:`1px solid #e5e6eb`}},null,512),v(`div`,Ye,[i[76]||=v(`div`,{style:{"margin-bottom":`8px`,color:`#86909c`}},`搜索结果`,-1),y(Ut,{size:`small`},{default:c(()=>[(r(!0),_(f,null,x(_t.value,(e,t)=>(r(),u(It,{key:t,onClick:t=>en(e)},{default:c(()=>[y(U,{ellipsis:{rows:1}},{default:c(()=>[l(m(e.title),1)]),_:2},1024),y(X,{type:`secondary`},{default:c(()=>[l(m(e.address),1)]),_:2},1024)]),_:2},1032,[`onClick`]))),128))]),_:1})])]),V.value?(r(),u(q,{key:0,type:`info`,style:{"margin-top":`12px`}},{default:c(()=>[l(` 已选坐标:`+m(V.value.lng)+`, `+m(V.value.lat),1),i[77]||=v(`br`,null,null,-1),l(` 地址:`+m(V.value.address||`-`),1)]),_:1})):d(``,!0)]),_:1},8,[`visible`])]),_:1})}}}),[[`__scopeId`,`data-v-9e33a7fc`]]);export{Ze as default};