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