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
69 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{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,h as d,i as f,it as p,kt as m,l as h,nt as g,p as _,q as v,u as y,ut as ee,v as b,y as te,z as x}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as S}from"./http-LCi9aT1G.js";import{d as ne,l as re,s as ie,u as C}from"./index-qgqnWtdE.js";import{t as ae}from"./RichEditorField-cRyu3YNL.js";import{a as oe}from"./h5Http-2MvWKf2X.js";import{t as se}from"./listTableRowIndex-Bl-nc9Qt.js";function ce(e,t){return function(){return e()?window.confirm(t):!0}}function le(e,t=`当前有未保存改动,确定要离开吗?`){function n(t){e()&&(t.preventDefault(),t.returnValue=``)}re((n,r,i)=>{if(!e()){i();return}i(window.confirm(t))}),r(()=>{window.addEventListener(`beforeunload`,n)}),a(()=>{window.removeEventListener(`beforeunload`,n)})}var ue={key:0,style:{width:`100%`}},de={key:0,style:{"margin-bottom":`12px`,color:`var(--color-text-2)`,"font-size":`13px`}},fe={class:`activity-verify-inline-line`},pe={key:1,class:`activity-audit-readonly`},me={class:`activity-audit-inline`},he={class:`activity-audit-inline-row`},ge={class:`activity-audit-inline-value`},_e={class:`activity-audit-inline-row`},ve={class:`activity-audit-inline-value`},ye={class:`activity-audit-inline-row`},be={class:`activity-audit-inline-value`},xe={class:`activity-audit-inline-row`},Se={class:`activity-audit-inline-value`},Ce={class:`activity-audit-inline-row`},we={class:`activity-audit-inline-value`},Te={class:`activity-audit-inline-row`},Ee={class:`activity-audit-inline-value`},De={class:`activity-audit-inline-row`},Oe={class:`activity-audit-inline-value`},ke={class:`activity-audit-inline-row`},Ae={class:`activity-audit-inline-label`},je={class:`activity-audit-inline-value`},Me={class:`activity-audit-inline-row`},Ne={class:`activity-audit-inline-value`},Pe={key:0,class:`activity-audit-inline-row`},Fe={class:`activity-audit-inline-value activity-audit-break`},Ie={class:`activity-audit-inline-row activity-audit-inline-row--tags`},Le={class:`activity-audit-inline-value`},Re={class:`activity-form-tags__chips activity-form-tags__chips--readonly activity-form-tags__chips--inline`},ze={key:0,class:`activity-form-tags__empty`},Be={class:`activity-audit-inline-row`},Ve={class:`activity-audit-inline-value`},He={class:`activity-audit-inline-row`},Ue={class:`activity-audit-inline-value`},We={class:`activity-audit-inline-row activity-audit-inline-row--images`},Ge={class:`activity-audit-image-col`},Ke={class:`activity-audit-image-value`},qe=[`src`],Je={key:1},Ye={class:`activity-audit-image-col`},Xe={class:`activity-audit-image-value`},Ze={key:0,class:`activity-gallery-grid`},Qe=[`src`,`onClick`],$e=[`src`,`onClick`],et={key:1},tt={class:`activity-audit-stack`},nt={class:`activity-audit-stack__body`},rt=[`innerHTML`],it={key:1,class:`activity-audit-muted`},at={key:0,class:`activity-audit-stack`},ot={class:`activity-audit-stack__label`},st={class:`activity-audit-stack__body`},ct={key:1,class:`activity-audit-muted`},lt={key:1,class:`activity-audit-stack`},ut={class:`activity-audit-stack__body`},dt={class:`activity-verify-inline-line activity-verify-inline-line--wrap`},ft={class:`activity-audit-stack`},pt={class:`activity-audit-stack__body`},mt={class:`activity-audit-inline-row`,style:{"margin-bottom":`12px`}},ht={class:`activity-audit-inline-value`},gt={key:0,style:{"margin-left":`8px`,color:`var(--color-text-3)`}},_t={key:0,class:`activity-audit-static-text`},vt={key:0,style:{"margin-left":`8px`,color:`var(--color-text-2)`}},yt={key:0,class:`activity-audit-static-text`,style:{"margin-top":`6px`}},bt={key:1,class:`activity-audit-muted`},xt={key:0,class:`bts-preview-grid`},St=[`src`,`onClick`],Ct={class:`bts-preview-actions`},wt={style:{color:`#f53f3f`}},Tt={style:{color:`#f53f3f`}},Et={style:{color:`#f53f3f`}},Dt={style:{color:`#f53f3f`}},Ot={style:{color:`#f53f3f`}},kt={style:{color:`#f53f3f`}},At={style:{color:`#f53f3f`}},jt={style:{color:`#f53f3f`}},Mt={class:`activity-time-label-with-action`},Nt={key:0,class:`activity-time-slots-empty-hint`},Pt={style:{color:`#f53f3f`}},Ft={class:`activity-form-tags`},It={class:`activity-form-tags__line`},Lt={class:`activity-form-tags__chips`},Rt={key:0,class:`activity-form-tags__empty`},zt={class:`activity-address-coord-row activity-address-coord-row--hide-lnglat`},Bt={style:{color:`#f53f3f`}},Vt={class:`activity-cover-carousel-wrap`},Ht={class:`activity-cover-carousel-row__col`},Ut=[`src`],Wt={class:`activity-cover-carousel-row__col`},Gt={style:{display:`flex`,"flex-direction":`column`,"align-items":`flex-start`,width:`100%`}},Kt={style:{width:`100%`,"margin-bottom":`8px`}},qt={class:`activity-gallery-grid`},Jt=[`src`,`onClick`],Yt=[`src`,`onClick`],Xt={class:`admin-modal-form__full`,style:{width:`100%`,"margin-bottom":`8px`}},Zt={style:{"margin-bottom":`8px`,color:`var(--color-text-3)`,"font-size":`12px`}},Qt=[`src`],$t=[`src`],en={style:{display:`flex`,gap:`12px`}},tn={style:{width:`280px`,height:`520px`,overflow:`auto`,border:`1px solid #e5e6eb`,padding:`8px`}},nn=200,rn=C(te({__name:`ActivityList`,setup(a){let te=p([]),re=p([]),C=p(null),rn=p(!1),an=p(!1),w=p(!1),T=g({current:1,pageSize:10,total:0}),E=g({keyword:``,venue_id:void 0,reservation_type:void 0,is_active:void 0,schedule_status:void 0,audit_status:void 0}),D=p(!1),O=p(null),on=p(`view`),sn=p(!1),cn=p([]),ln=p(``),un=p([]),dn=p(``),fn=p(``),pn=p(!1),mn=p(``),hn=p(``),gn=p(``),k=p(null),A=p(!1),j=p(``),_n=p(``);v(D,e=>{e||(A.value=!1)});let vn=p(!1),yn=p(null),bn=p(`上传花絮`),M=p([]),xn=p(!1),Sn=p(!1),Cn=p(null),N=p(``),wn=p(``),Tn=p(``),En=p(``),P=p(null);function Dn(){navigator.clipboard.writeText(j.value),e.success(`核销入口链接已复制`)}function On(){navigator.clipboard.writeText(_n.value),e.success(`核销密码已复制`)}async function kn(e){let{data:t}=await S.get(`/activities/${e}/verify-portal`);Tn.value=oe(),En.value=String(t?.verify_portal_pin??``).trim()}function An(){navigator.clipboard.writeText(Tn.value),e.success(`核销入口链接已复制`)}function jn(){navigator.clipboard.writeText(En.value),e.success(`核销密码已复制`)}let F=p(!0),I=p(null),Mn=p(``),Nn={maxHeight:`70vh`,overflow:`auto`},Pn={maxHeight:`72vh`,overflow:`auto`},Fn={height:`520px`,overflowY:`auto`,overflowX:`hidden`,boxSizing:`border-box`},In=p(0),Ln=p(!1),Rn=p(`image`),zn=p(``),Bn=p(!1),Vn=p(!1),Hn=p(``),Un=p([]),Wn=p(null),L=null,R=null,z=p(null),Gn={lat:31.299379,lng:120.585315},Kn=ie();function qn(e){if(!e)return``;let t=new Date(String(e));return Number.isNaN(t.getTime())?String(e).slice(0,10):new Intl.DateTimeFormat(`en-CA`,{timeZone:`Asia/Shanghai`,year:`numeric`,month:`2-digit`,day:`2-digit`}).format(t)}function Jn(e){if(!e?.trim())return[];let t=e.trim();if(t.startsWith(`[`))try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>{if(typeof e!=`string`)return null;let t=String(e).split(`-`).map(e=>e.trim());return t.length>=2&&t[0]&&t[1]?{start:t[0].slice(0,5),end:t[1].slice(0,5)}:null}).filter(e=>e!=null)}catch{}let n=t.split(`-`).map(e=>e.trim());return n.length>=2&&n[0]&&n[1]?[{start:n[0].replace(/\s.*/,``).slice(0,5),end:n[1].replace(/\s.*/,``).slice(0,5)}]:[]}function Yn(e){let t=e.map(e=>{let t=String(e.start||``).trim(),n=String(e.end||``).trim();return!t||!n?``:`${t}-${n}`}).filter(Boolean);return t.length?JSON.stringify(t):null}function Xn(e){let t=Jn(e);return t.length?t.map(e=>`${e.start}-${e.end}`).join(``):String(e||``).trim()}function Zn(e,t){let n=String(e||``).trim().slice(0,10),r=String(t||``).trim().slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(n)||!/^\d{4}-\d{2}-\d{2}$/.test(r)||n>r)return[];let i=new Intl.DateTimeFormat(`en-CA`,{timeZone:`Asia/Shanghai`,year:`numeric`,month:`2-digit`,day:`2-digit`}),a=e=>{let[t,n,r]=e.split(`-`).map(Number),a=new Date(`${t}-${String(n).padStart(2,`0`)}-${String(r).padStart(2,`0`)}T12:00:00+08:00`).getTime()+864e5;return i.format(new Date(a))},o=[],s=n;for(;s<=r&&(o.push(s),s!==r);)s=a(s);return o}function Qn(e,t){let n=/^(\d{1,2}):(\d{2})$/,r=n.exec(String(e||``).trim()),i=n.exec(String(t||``).trim());if(!r||!i)return!1;let a=r[1]*60+ +r[2],o=i[1]*60+ +i[2];return o>a&&a>=0&&a<1440&&o<=1439}function $n(e,t){let n=/^(\d{1,2}):(\d{2})$/.exec(String(t||``).trim());if(!n)return`${e} 09:00:00`;let r=Math.min(23,Math.max(0,+n[1])),i=Math.min(59,Math.max(0,+n[2]));return`${e} ${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}:00`}function er(e){let t=String(e||``).trim().replace(` `,`T`);return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(t)&&(t+=`:00`),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(t)?new Date(`${t}+08:00`).getTime():NaN}function tr(e){if(!Number.isFinite(e))return``;let t=new Date(e),n=new Intl.DateTimeFormat(`en-CA`,{timeZone:`Asia/Shanghai`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}).formatToParts(t).reduce((e,t)=>(t.type!==`literal`&&(e[t.type]=t.value),e),{});return`${`${n.year}-${n.month}-${n.day}`} ${`${(n.hour||``).padStart(2,`0`)}:${(n.minute||``).padStart(2,`0`)}:${(n.second||`00`).padStart(2,`0`)}`}`}function nr(){let e=Zn(U.start_at,U.end_at),t=U.specific_time_slots.filter(e=>Qn(String(e.start||``).trim(),String(e.end||``).trim())),n=[];for(let r of e)for(let e of t)n.push({session_start_at:$n(r,e.start),session_end_at:$n(r,e.end)});return n}function rr(e){if(B(U.reservation_type)!==`online`)return;let t=er(e.session_start_at);if(!Number.isFinite(t))return;let n=e.session_start_at.trim().slice(0,10),r=String(e.booking_deadline_at||``).trim();if(!r){e.booking_opens_at=`${n} 00:00:00`;return}let i=er(r);if(!Number.isFinite(i))return;i=Math.min(i,t-60*1e3),e.booking_deadline_at=tr(i);let a=er(`${n} 00:00:00`);(!Number.isFinite(a)||a>i)&&(a=i-60*1e3),e.booking_opens_at=tr(a)}let ir=p(0);function ar(){if(!w.value||!K.value||ir.value>0)return;let e=nr();if(!e.length)return;let t=B(U.reservation_type);for(;e.length>G.days.length&&G.days.length<nn;)wr();let n=Math.min(e.length,G.days.length);for(let r=0;r<n;r++){let n=G.days[r];n.session_start_at=e[r].session_start_at,n.session_end_at=e[r].session_end_at,t===`online`&&rr(n)}}let or=h(()=>{if(!w.value||ir.value>0)return`__off__`;let e=U.specific_time_slots.map(e=>`${String(e.start??``).trim()}|${String(e.end??``).trim()}`).join(`;`);return`${U.start_at}\n${U.end_at}\n${U.reservation_type}\n${e}`}),sr=!1;v(or,e=>{if(!(e===`__off__`||sr)){sr=!0;try{ar()}finally{sr=!1}}},{flush:`post`});function B(e){let t=String(e||``).trim();return!t||t===`online`||t===`none`||t===`paid_study`?t||`online`:t}function V(e){let t=String(e??``).trim();return t===``?`online`:t}function H(e){return[`online`,`none`,`paid_study`].includes(V(e))}function cr(e){let t=e.start_at?qn(String(e.start_at)):``,n=e.end_at?qn(String(e.end_at)):``;return!t&&!n?`-`:t&&n?t===n?t:`${t}${n}`:t||n||`-`}let lr=h(()=>`本次活动日期 ${cr({id:I.value??0,venue_id:Number(U.venue_id)||0,title:U.title,start_at:U.start_at||void 0,end_at:U.end_at||void 0,is_active:!!U.is_active})},具体时间 ${Xn(U.specific_time).trim()||``},请配置场次,保存时将一并提交活动信息与场次。`);function ur(e){return e?e.submitter?.name?.trim()||(e.submitted_by!=null&&e.submitted_by!==void 0?`未知用户`:`平台录入`):``}function dr(e,t,n){let r=String(e||``).trim(),i=Number.isFinite(t)?Math.max(1,Math.floor(t)):1,a=Number.isFinite(n)?Math.max(i,Math.floor(n)):i;a<i&&(a=i);let o=`${i}${a}`;return r===`individual`?`个人`:r===`group`?`团体(每单 ${o}`:r===`both`?`个人+团体(每单 ${o}`:r?`${r}(每单 ${o}`:``}let U=g({venue_id:void 0,reservation_type:`online`,is_hot:!1,booking_method_note:``,fee_note:``,location:``,check_in_meeting_point:``,lat:void 0,lng:void 0,specific_time:``,specific_time_slots:[],external_url:``,title:``,contact_name:``,contact_phone:``,start_at:``,end_at:``,detail_html:``,cover_image:``,gallery_media:[],tags:[],sort:0,summary:``,is_active:!0,display_schedule_status:void 0}),fr=p(``);v(()=>U.reservation_type,()=>{let e=B(U.reservation_type);e===`online`?(U.booking_method_note=`平台预约`,U.fee_note=`免费`):e===`none`?(U.booking_method_note=``,U.fee_note=`免费`):e===`paid_study`&&(U.booking_method_note=``,U.fee_note=``)});let W=g({title:``,venue_id:``,start_at:``,end_at:``,reservation_type:``,booking_method_note:``,fee_note:``,external_url:``,location:``,cover_image:``,gallery_media:``,detail_html:``,contact_name:``,contact_phone:``,specific_time_slots:``}),pr=h({get(){if(U.start_at&&U.end_at)return[U.start_at,U.end_at]},set(e){Array.isArray(e)&&e.length>=2&&e[0]&&e[1]?(U.start_at=String(e[0]),U.end_at=String(e[1])):(U.start_at=``,U.end_at=``)}}),mr=h(()=>U.display_schedule_status==null?ri(U.start_at||``,U.end_at||``):U.display_schedule_status),G=g({booking_audience:`both`,min_people_per_order:1,max_people_per_order:10,days:[]}),hr=p(!1),K=h(()=>mr.value!==`ended`),gr=h(()=>{let e=B(U.reservation_type);return e===`online`?`预约方式`:e===`none`?`参与提示`:e===`paid_study`?`报名方式`:`预约方式`}),_r=h(()=>B(U.reservation_type)===`online`),vr=h(()=>B(U.reservation_type)===`online`),yr=h(()=>B(U.reservation_type)===`online`?`每场次的开始时间与结束时间须为同一天内;预约开始、预约截止时间须填写;预约截止时间须早于场次开始时间;预约开始不得晚于预约截止。更改名额不可低于已约人数。`:`每场次的开始时间与结束时间须为同一天内`),br=h(()=>_r.value?1280:760),xr=h(()=>F.value?`新增活动`:`编辑活动`);function Sr(){return!U.start_at&&!U.end_at?null:{id:I.value??0,venue_id:Number(U.venue_id)||0,title:U.title,start_at:U.start_at,end_at:U.end_at,reservation_type:U.reservation_type,is_active:!!U.is_active,schedule_status:U.display_schedule_status}}function Cr(e){let t=e?.start_at?qn(String(e.start_at)):new Intl.DateTimeFormat(`en-CA`,{timeZone:`Asia/Shanghai`,year:`numeric`,month:`2-digit`,day:`2-digit`}).format(new Date);return{start:`${t} 09:00:00`,end:`${t} 11:00:00`}}function wr(){let{start:e,end:t}=Cr(Sr()),n=e.slice(0,10);G.days.push({session_name:`场次 ${G.days.length+1}`,session_start_at:e,session_end_at:t,booking_opens_at:`${n} 00:00:00`,booking_deadline_at:``,day_quota:30,quota_note:``,booked_count:0})}function Tr(t){let n=G.days[t];if(n?.booked_count&&n.booked_count>0){e.warning(`该场次已有预约,无法删除`);return}G.days.splice(t,1)}function q(e){let t=String(e??``).trim().replace(`T`,` `);return t?t.length>=19?t.slice(0,19):t:``}async function Er(t){ir.value+=1,hr.value=!0;try{let{data:e}=await S.get(`/activities/${t}/booking-settings`);G.booking_audience=e?.booking_audience||`both`,G.min_people_per_order=Math.max(1,Number(e?.min_people_per_order)||1),G.max_people_per_order=Math.max(G.min_people_per_order,Number(e?.max_people_per_order)||Math.max(10,G.min_people_per_order)),G.days=(Array.isArray(e?.days)?e.days:[]).map(e=>{let t=Number(e.id);return{id:Number.isFinite(t)&&t>0?t:void 0,session_name:String(e.session_name??``),session_start_at:q(e.session_start_at),session_end_at:q(e.session_end_at),booking_opens_at:q(e.booking_opens_at),booking_deadline_at:q(e.booking_deadline_at),day_quota:Math.max(0,Number(e.day_quota)||0),quota_note:String(e.quota_note??``),booked_count:Math.max(0,Number(e.booked_count)||0)}})}catch(t){throw e.error(t?.response?.data?.message??`加载场次失败`),t}finally{hr.value=!1,i(()=>{--ir.value})}}function Dr(){let t=B(U.reservation_type),n=t===`none`||t===`paid_study`?`individual`:G.booking_audience;if(G.days.length===0)return e.warning(`请至少添加一个场次`),!1;for(let n=0;n<G.days.length;n++){let r=G.days[n];if(!r.session_name.trim())return e.warning(`${n+1} 行请填写场次名称`),!1;if(!r.session_start_at||!r.session_end_at)return e.warning(`${n+1} 行请填写场次开始与结束时间`),!1;if(t===`online`&&!String(r.booking_deadline_at||``).trim())return e.warning(`${n+1} 行请填写预约截止时间`),!1;if(t===`online`&&!String(r.booking_opens_at||``).trim())return e.warning(`${n+1} 行请填写预约开始时间`),!1;let i=Math.max(0,Number(r.booked_count)||0),a=Math.max(1,i);if(!r.day_quota||r.day_quota<a)return e.warning(`${n+1} 行预约名额须≥${a}${i>0?`(已约 ${i} 人)`:``}`),!1}return n!==`individual`&&G.max_people_per_order<G.min_people_per_order?(e.warning(`每单最多人数必须大于等于每单最少人数`),!1):n!==`individual`&&G.max_people_per_order===1?(e.warning(`团体或个人+团体时,每单最多人数不可为 1且须大于等于每单最少人数`),!1):!0}function Or(){let e=B(U.reservation_type),t=e===`none`||e===`paid_study`?`individual`:G.booking_audience,n={booking_audience:t,days:G.days.map(t=>{let n=String(t.session_start_at||``).trim(),r=e===`online`?String(t.booking_deadline_at||``).trim():String(t.booking_deadline_at||``).trim()||n,i={session_name:t.session_name.trim(),session_start_at:t.session_start_at,session_end_at:t.session_end_at,booking_deadline_at:r||null,day_quota:t.day_quota,quota_note:(t.quota_note||``).trim()||null};return e===`online`?i.booking_opens_at=(t.booking_opens_at||``).trim()||null:i.booking_opens_at=null,t.id&&t.id>0&&(i.id=t.id),i})};return t!==`individual`&&(n.min_people_per_order=G.min_people_per_order,n.max_people_per_order=G.max_people_per_order),n}function kr(e,t){let n=String(e||``).trim();if(n)return/^https?:\/\//i.test(n)?n:n.startsWith(`/`)?`${window.location.origin}${n}`:`${window.location.origin}/${n}`;let r=String(t||``).trim();if(!r)return``;let i=r.replace(/^\/+/,``);return`${window.location.origin}/storage/${i}`}async function Ar(e){let t=new FormData;t.append(`file`,e);let{data:n}=await S.post(`/upload`,t);return kr(n?.url,n?.path)}function jr(){In.value+=1}function J(e,t){t&&(Rn.value=e,zn.value=t,Ln.value=!0)}function Mr(){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 Ar(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 Nr(){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 Ar(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 Pr={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:Mr,video:Nr}}},placeholder:`请输入活动详情内容`};function Fr(){return JSON.stringify(U)}function Ir(){U.specific_time_slots.push({start:`09:00`,end:`10:00`})}function Lr(e){U.specific_time_slots.splice(e,1)}function Rr(){return JSON.stringify({form:Fr(),bookingAudience:G.booking_audience,minP:G.min_people_per_order,maxP:G.max_people_per_order,days:G.days.map(e=>({...e}))})}function zr(){Mn.value=Rr()}function Br(){return w.value&&Rr()!==Mn.value}let Vr=ce(Br,`活动表单有未保存改动,确认关闭吗?`);function Y(){return C.value?.role===`venue_admin`}function X(){return C.value?.full_admin_access===!0}let Hr=h(()=>{let e=1098;return Y()||(e+=180),X()&&(e+=160),e});function Z(e){let t=e.submitted_by;return t!=null&&Number(t)===Number(C.value?.id)}function Ur(e){if((e.approve_audit_logs_count??0)>0)return!1;let t=e.audit_status;return t!==`pending`&&t!==`rejected`?!1:X()?!0:Z(e)}function Wr(e){return e.submitted_by==null}function Gr(e){return e.schedule_status===`ended`?!1:e.audit_status===`pending`?Z(e)||X()&&Wr(e):!!(Z(e)||X()&&Wr(e))}function Kr(e){return e.audit_status===`rejected`&&Z(e)?`编辑并提交`:`编辑`}function qr(t){return Z(t)||X()&&Wr(t)?!0:(e.warning(Wr(t)?`该平台代录的活动仅超级管理员可编辑`:`仅活动创建人可编辑`),!1)}function Jr(e){if(!Y())return!1;let t=e.venue_id;return t==null?!1:(C.value?.venues??[]).some(e=>Number(e.id)===Number(t))}function Yr(e){return X()||Z(e)||Jr(e)}function Xr(t){return Yr(t)?!0:(Y()?e.warning(`仅可管理已绑定场馆举办的活动花絮`):e.warning(t.submitted_by==null?`该平台代录的活动仅超级管理员可管理花絮`:`只能管理本人提交的活动花絮`),!1)}function Zr(e){return X()||Z(e)?!0:Jr(e)}function Qr(t,n){if(Ur(t))return!0;if((t.approve_audit_logs_count??0)>0)return e.warning(`该活动曾审核通过,无法删除`),!1;let r=t.audit_status;return r!==`pending`&&r!==`rejected`?(e.warning(`只有待审核或已退回、且从未审核通过的活动可以删除`),!1):(e.warning(t.submitted_by==null?`该平台代录的活动仅超级管理员可删除`:`仅活动创建人可删除该活动(待审核或首次退回)`),!1)}function $r(e){return e===`pending`?`待审核`:e===`rejected`?`已退回`:e===`approved`?`已通过`:`-`}function ei(e){return e===`pending`?`orangered`:e===`rejected`?`red`:e===`approved`?`green`:`gray`}function ti(){return new Intl.DateTimeFormat(`en-CA`,{timeZone:`Asia/Shanghai`,year:`numeric`,month:`2-digit`,day:`2-digit`}).format(new Date)}function ni(e,t){return!e||!t?0:e<t?-1:e>t?1:0}function ri(e,t){let n=ti();return!e&&!t?null:e&&!t?ni(n,e)<0?`not_started`:`ongoing`:!e&&t?ni(n,t)>0?`ended`:`ongoing`:ni(n,e)<0?`not_started`:ni(n,t)>0?`ended`:`ongoing`}function ii(e){return e==null?``:e===`not_started`?`未开始`:e===`ended`?`已结束`:`进行中`}function ai(e){return e==null?`gray`:e===`not_started`?`arcoblue`:e===`ended`?`gray`:`green`}function oi(e){return X()?!0:Z(e)||Jr(e)}let si=h(()=>{if(A.value){let e=N.value||O.value?.title||``;return e?`审核通过 · 核销管理 · ${e}`:`审核通过 · 核销管理`}return on.value===`audit`?`审核活动`:`查看活动与审核记录`});function ci(e){return e===`approve`?`通过`:e===`reject`?`退回`:e===`edit_submit`?`编辑并提交`:e}async function li(t,n){O.value=t,on.value=n===`audit`&&t.audit_status===`pending`&&X()?`audit`:`view`,dn.value=``,fn.value=``,A.value=!1,j.value=``,_n.value=``,D.value=!0,sn.value=!0,cn.value=[],ln.value=``,un.value=[];try{let e=S.get(`/activities/${t.id}/activity-audit-logs`),n=H(t.reservation_type)?S.get(`/activities/${t.id}/booking-settings`):Promise.resolve(null),r=t.reservation_type===`online`&&t.audit_status===`approved`&&Zr(t)?S.get(`/activities/${t.id}/verify-portal`):Promise.resolve(null),[i,a,o]=await Promise.all([e,n,r]);if(un.value=i.data.data??[],a){let e=a.data,t=Math.max(1,Number(e?.min_people_per_order)||1),n=Math.max(t,Number(e?.max_people_per_order)||t);ln.value=dr(String(e?.booking_audience??``),t,n),cn.value=(Array.isArray(e?.days)?e.days:[]).map(e=>{let t=Number(e.id);return{id:Number.isFinite(t)&&t>0?t:void 0,session_name:String(e.session_name??``),session_start_at:q(e.session_start_at),session_end_at:q(e.session_end_at),booking_opens_at:q(e.booking_opens_at),booking_deadline_at:q(e.booking_deadline_at),day_quota:Math.max(0,Number(e.day_quota)||0),quota_note:String(e.quota_note??``),booked_count:Math.max(0,Number(e.booked_count)||0)}})}if(o){let e=o.data;j.value=oe(),_n.value=String(e?.verify_portal_pin??``).trim()}}catch(t){e.error(t?.response?.data?.message??`加载审核详情失败`),D.value=!1}finally{sn.value=!1}}function ui(){A.value=!1,D.value=!1,$()}function di(e){k.value=e,gn.value=``,e===`approve`?(mn.value=`通过审核`,hn.value=`请输入审核说明(选填)`):e===`approve_hot`?(mn.value=`通过并设为热门活动`,hn.value=`请输入审核说明(选填)`):(mn.value=`退回活动`,hn.value=`请输入退回说明(选填)`),pn.value=!0}async function fi(){let t=k.value;if(!t)return;let n=O.value;if(n?.id)if(pn.value=!1,t===`reject`)try{await S.post(`/activities/${n.id}/audit/reject`,{remark:gn.value.trim()||void 0}),e.success(`已退回`),D.value=!1,await $()}catch(t){e.error(t?.response?.data?.message??`操作失败`)}else{let r=t===`approve_hot`,i=n.id,a=X()&&n.reservation_type===`online`;try{if(await S.post(`/activities/${n.id}/audit/approve`,{mark_hot:r,remark:gn.value.trim()||void 0}),e.success(`审核已通过`),!a){D.value=!1,await $();return}sn.value=!0;try{await $();let e=te.value.find(e=>e.id===i);e&&(O.value=e),A.value=!0,Cn.value=i,N.value=e?.title||n.title||``,wn.value=e?.venue?.name||n.venue?.name||``,await kn(i)}catch(t){e.error(t?.response?.data?.message??`加载核销配置失败`),A.value=!1,D.value=!1}finally{sn.value=!1}}catch(t){e.error(t?.response?.data?.message??`操作失败`)}}}async function pi(t,n){if(typeof n==`boolean`)try{await S.post(`/activities/${t.id}/hot-flag`,{is_hot:n}),e.success(`已更新热门状态`),t.is_hot=n}catch(t){e.error(t?.response?.data?.message??`操作失败`)}}async function mi(t,n){if(typeof n==`boolean`)try{await S.post(`/activities/${t.id}/toggle`),e.success(n?`已上架`:`已下架`),t.is_active=n}catch(t){e.error(t?.response?.data?.message??`操作失败`)}}function hi(e){let t=e.behind_scenes_media;return Array.isArray(t)?t.some(e=>e&&e.type===`image`&&String(e.url||``).trim().length>0):!1}function gi(e){Xr(e)&&(yn.value=e.id,bn.value=hi(e)?`查看花絮`:`上传花絮`,M.value=(Array.isArray(e.behind_scenes_media)?e.behind_scenes_media:[]).filter(e=>e&&e.type===`image`&&String(e.url||``).trim()).map(e=>({type:`image`,url:String(e.url)})),vn.value=!0)}async function _i(t){try{let n=t instanceof File?t:Hi(t);if(!n)return!1;let r=await Ar(n);M.value=[...M.value,{type:`image`,url:r}],e.success(`已添加图片`)}catch(t){e.error(t?.response?.data?.message??`上传失败`)}return!1}function vi(e){let t=[...M.value];t.splice(e,1),M.value=t}function yi(e,t){let n=e+t;if(n<0||n>=M.value.length)return;let r=[...M.value],i=r[e];r[e]=r[n],r[n]=i,M.value=r}async function bi(){if(!yn.value)return!1;xn.value=!0;try{return await S.put(`/activities/${yn.value}/behind-scenes`,{behind_scenes_media:M.value}),e.success(`花絮已保存`),vn.value=!1,await $(),!0}catch(t){return e.error(t?.response?.data?.message??`保存失败`),!1}finally{xn.value=!1}}function xi(e){if(!e)return`预约方式`;let t=V(e.reservation_type);return t===`online`?`预约方式`:t===`none`?`参与提示`:t===`paid_study`?`报名方式`:`预约方式`}function Si(e){if(!e)return``;let t=V(e.reservation_type),n=String(e.ticket_fee_note??``).trim();return t===`online`||t===`none`?n||`免费`:n||``}function Ci(e){return(e.reservation_type||``)===`other`||!!String(e.external_url||``).trim()}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 wi(){return`CRFBZ-NTART-YU4XX-LCDGK-3J456-VKBK2`}function Ti(){let t=U.venue_id;if(!t){e.warning(`请先选择场馆`);return}let n=re.value.find(e=>e.id===t);if(!n)return;n.address?.trim()&&(U.location=n.address.trim());let r=Q(n.lat),i=Q(n.lng);r!==void 0&&i!==void 0?(U.lat=r,U.lng=i,e.success(`已填入本馆地址与坐标`)):n.address?.trim()?e.success(`已填入本馆地址,该馆尚未保存经纬度`):e.warning(`该场馆未设置地址与经纬度`)}async function Ei(){if(window.TMap)return;let e=wi();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 Di(e,t){let n=window.TMap;L&&(R&&R.setMap(null),R=new n.MultiMarker({map:L,styles:{marker:new n.MarkerStyle({width:24,height:35})},geometries:[{id:`picked`,styleId:`marker`,position:new n.LatLng(e,t)}]}),L.setCenter(new n.LatLng(e,t)))}function Oi(e,t){let n=window.TMap;if(!L||!n)return;let r=new n.LatLng(e,t);L.resize?.(),L.setCenter(r),L.setZoom(13),setTimeout(()=>{L.resize?.(),L.setCenter(r)},120)}async function ki(e,t){let{data:n}=await S.get(`/map/reverse-geocode`,{params:{lat:e,lng:t}});z.value={lat:e,lng:t,address:n.address||``}}async function Ai(){await Ei();let t=window.TMap,n=Q(U.lat)??Gn.lat,r=Q(U.lng)??Gn.lng,i=new t.LatLng(n,r);if(L?L.setCenter(i):(L=new t.Map(Wn.value,{center:i,zoom:13}),L.on(`click`,async t=>{let n=Number(t.latLng.getLat().toFixed(6)),r=Number(t.latLng.getLng().toFixed(6));Di(n,r);try{await ki(n,r)}catch(t){e.error(t?.response?.data?.message??`逆地理编码失败`)}})),Oi(n,r),Q(U.lat)!=null&&Q(U.lng)!=null){let e=Q(U.lat),t=Q(U.lng);Di(e,t),z.value={lat:e,lng:t,address:(U.location||``).trim()}}else R&&=(R.setMap(null),null),z.value=null}async function ji(){Bn.value=!0,Hn.value=``,Un.value=[],Vn.value=!0;try{await i(),setTimeout(async()=>{try{await Ai()}catch(t){e.error(t?.message??`地图初始化失败`)}finally{Vn.value=!1}},250)}catch{Vn.value=!1}}async function Mi(){if(!Hn.value.trim()){Un.value=[];return}Vn.value=!0;try{let{data:e}=await S.get(`/map/search`,{params:{keyword:Hn.value,region:`苏州`}});Un.value=e}catch(t){e.error(t?.response?.data?.message??`地图搜索失败`)}finally{Vn.value=!1}}async function Ni(e){Di(e.lat,e.lng),z.value={lat:e.lat,lng:e.lng,address:e.address||``};try{await ki(e.lat,e.lng)}catch{}}function Pi(){return z.value?(U.lat=z.value.lat,U.lng=z.value.lng,z.value.address?.trim()&&(U.location=z.value.address.trim()),Bn.value=!1,!0):(e.warning(`请先点击地图或选择搜索结果`),!1)}function Fi(e){let t=String(e||``).trim();return t===`online`?`公益性需预约活动`:t===`none`?`公益性无需预约活动`:t===`paid_study`?`收费科普研学活动`:t===`phone`?`电话预约`:t===`wechat_mp`?`公众号预约`:t===`offline_visit`||t===`offline`?`线下预约`:t===`other`?`外链跳转`:t||`公益性需预约活动`}function Ii(e){let t=Number(e);return Number.isFinite(t)?String(t):`0`}function Li(e){return`浏览 `+Ii(e.view_count)}async function $(){rn.value=!0;try{let[e,t]=await Promise.all([S.get(`/activities`,{params:{page:T.current,page_size:T.pageSize,keyword:E.keyword||void 0,venue_id:E.venue_id||void 0,reservation_type:E.reservation_type,is_active:E.is_active,schedule_status:E.schedule_status,audit_status:E.audit_status}}),S.get(`/venues`)]);te.value=e.data.data,T.total=e.data.total,re.value=t.data}catch(t){e.error(t?.response?.data?.message??`加载活动失败`)}finally{rn.value=!1}}async function Ri(){let{data:e}=await S.get(`/me`);if(C.value=e,e?.role===`venue_admin`){let t=e.venues?.[0]?.id;E.venue_id=t,U.venue_id=t}}function zi(){F.value=!0,I.value=null,Object.keys(W).forEach(e=>{W[e]=``}),U.venue_id=Y()?C.value?.venues?.[0]?.id:re.value[0]?.id,U.reservation_type=`online`,U.booking_method_note=`平台预约`,U.fee_note=`免费`,U.location=``,U.check_in_meeting_point=``,U.lat=void 0,U.lng=void 0,U.specific_time=``,U.specific_time_slots=[],U.external_url=``,U.title=``,U.contact_name=``,U.contact_phone=``,U.start_at=``,U.end_at=``,U.detail_html=``,U.cover_image=``,U.gallery_media=[],U.tags=[],U.summary=``,U.is_hot=!1,U.sort=0,U.is_active=!0,U.display_schedule_status=void 0,G.booking_audience=`both`,G.min_people_per_order=1,G.max_people_per_order=10,G.days=[],P.value=null,jr(),zr(),w.value=!0}function Bi(e){if(qr(e)){F.value=!1,I.value=e.id,G.booking_audience=`both`,G.min_people_per_order=1,G.max_people_per_order=10,G.days=[],P.value=e,Object.keys(W).forEach(e=>{W[e]=``}),U.venue_id=e.venue_id,U.reservation_type=String(e.reservation_type??`online`).trim()||`online`;{let t=V(U.reservation_type);U.booking_method_note=String(e.booking_method_note??``).trim()||(t===`online`?`平台预约`:``)}U.fee_note=e.ticket_fee_note?.trim()||([`online`,`none`].includes(V(U.reservation_type))?`免费`:``),U.location=e.location||``,U.check_in_meeting_point=e.check_in_meeting_point||``,U.lat=Q(e.lat),U.lng=Q(e.lng),U.specific_time=e.specific_time||``,U.specific_time_slots=Jn(e.specific_time),U.external_url=``,U.title=e.title,U.contact_name=e.contact_name??``,U.contact_phone=e.contact_phone??``,U.start_at=e.start_at?qn(e.start_at):``,U.end_at=e.end_at?qn(e.end_at):``,U.detail_html=e.detail_html||``,U.cover_image=e.cover_image||``,U.gallery_media=Array.isArray(e.gallery_media)?[...e.gallery_media]:[],U.tags=Array.isArray(e.tags)?[...e.tags]:[],U.sort=e.sort??0,U.summary=e.summary||``,U.is_active=e.is_active,U.is_hot=X()?e.is_hot===!0:!1,U.display_schedule_status=e.schedule_status,jr(),zr(),w.value=!0,Er(e.id).catch(()=>void 0)}}function Vi(){T.current=1,$()}function Hi(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 Ui(t){try{let n=Hi(t);if(!n)return!1;U.cover_image=await Ar(n),e.success(`封面上传成功`)}catch(t){e.error(t?.response?.data?.message??`封面上传失败`)}return!1}async function Wi(t){try{let n=Hi(t);if(!n)return!1;let r=await Ar(n),i=n.type.startsWith(`video/`);U.gallery_media.push({type:i?`video`:`image`,url:r}),e.success(`轮播资源上传成功`)}catch(t){e.error(t?.response?.data?.message??`轮播资源上传失败`)}return!1}function Gi(...e){Ui(e)}function Ki(...e){Wi(e)}function qi(){U.cover_image=``}function Ji(e){U.gallery_media.splice(e,1)}function Yi(){let t=fr.value.trim();if(!t){e.warning(`请输入标签内容`);return}if(U.tags.includes(t)){e.warning(`标签已存在`);return}U.tags=[...U.tags,t],fr.value=``}function Xi(e){let t=[...U.tags];t.splice(e,1),U.tags=t}function Zi(){Object.keys(W).forEach(e=>{W[e]=``});let e=!0;if(U.venue_id||(W.venue_id=`请选择场馆`,e=!1),U.title.trim()||(W.title=`请填写活动名称`,e=!1),U.contact_name.trim()||(W.contact_name=`请填写联系人`,e=!1),U.contact_phone.trim()||(W.contact_phone=`请填写联系电话`,e=!1),U.start_at||(W.start_at=`请选择开始日期`,e=!1),U.end_at||(W.end_at=`请选择结束日期`,e=!1),!U.location.trim())W.location=`请填写活动地点`,e=!1;else{let t=Q(U.lat),n=Q(U.lng);(t===void 0||n===void 0)&&(W.location=`请地图选点或使用本馆地址完善活动地点定位`,e=!1)}let t=V(U.reservation_type);return[`online`,`none`,`paid_study`].includes(t)&&t===`paid_study`&&(U.booking_method_note.trim()||(W.booking_method_note=`收费科普研学活动须填写报名方式`,e=!1),U.fee_note.trim()||(W.fee_note=`收费科普研学活动须填写费用`,e=!1)),H(U.reservation_type)&&(U.specific_time_slots.some(e=>Qn(String(e.start||``).trim(),String(e.end||``).trim()))||(W.specific_time_slots=`请至少添加一个具体时间时段,并完整填写开始与结束(格式 HH:mm结束须晚于开始`,e=!1)),e}function Qi(){Vr()&&(w.value=!1,P.value=null)}async function $i(t){let n=K.value&&H(U.reservation_type),r=String(U.reservation_type||``).trim(),i=V(r),a=[`online`,`none`].includes(i)?`免费`:U.fee_note.trim(),o=H(r),s={venue_id:U.venue_id,reservation_type:i,location:U.location.trim(),check_in_meeting_point:U.check_in_meeting_point.trim()||null,specific_time:t,external_url:null,title:U.title.trim(),summary:U.summary.trim()||null,quota:0,category:null,start_at:U.start_at||null,end_at:U.end_at||null,address:null,contact_name:U.contact_name.trim()||null,contact_phone:U.contact_phone.trim()||null,lat:Q(U.lat)??null,lng:Q(U.lng)??null,detail_html:U.detail_html||null,cover_image:U.cover_image||null,gallery_media:U.gallery_media,tags:U.tags,reservation_notice:null,open_time:null};if(o)s.offline_reservation_method=null,s.booking_method_note=i===`online`?`平台预约`:U.booking_method_note.trim()||null,s.ticket_fee_note=i===`paid_study`?a:[`online`,`none`].includes(i)?a||`免费`:null;else if(!F.value&&P.value){let e=P.value;s.offline_reservation_method=e.offline_reservation_method??null,s.ticket_fee_note=e.ticket_fee_note??null,s.booking_method_note=e.booking_method_note??null}else s.offline_reservation_method=null,s.ticket_fee_note=a||null,s.booking_method_note=U.booking_method_note.trim()||null;let c=null,l=I.value;if(F.value){let{data:e}=await S.post(`/activities`,s);c=e,l=e?.id??null}else{let{data:e}=await S.put(`/activities/${I.value}`,s);c=e??{audit_status:void 0},l=I.value}n&&l&&await S.put(`/activities/${l}/booking-settings`,Or()),!X()&&c?.audit_status===`pending`?e.success(`信息已保存,请等待管理员审核`):e.success(F.value?`创建活动成功`:`更新活动成功`),zr(),w.value=!1,P.value=null,await $()}function ea(){if(!Zi()){e.warning(`请填写所有必填项`);return}let t=Yn(U.specific_time_slots);U.specific_time=t??``,!(K.value&&H(U.reservation_type)&&!Dr())&&ne.confirm({title:`提交确认`,content:`请核对本次活动内容信息准确,再确认提交审核。`,okText:`确认提交`,cancelText:`取消`,async onBeforeOk(){an.value=!0;try{return await $i(t),!0}catch(t){return e.error(t?.response?.data?.message??`保存失败`),!1}finally{an.value=!1}}})}le(Br,`活动表单有未保存改动,确定要离开吗?`),r(async()=>{await Ri().catch(()=>void 0);let e=Kn.query.audit_status,t=Array.isArray(e)?e[0]:e;(t===`pending`||t===`approved`||t===`rejected`)&&(E.audit_status=t),await $()});function ta(e){T.current=e,$()}async function na(t){if(Qr(t,`删除`))try{await S.delete(`/activities/${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??`删除失败`)}}return(e,r)=>{let i=o(`a-input`),a=o(`a-option`),p=o(`a-select`),h=o(`a-button`),g=o(`a-space`),v=o(`a-table-column`),S=o(`a-tag`),ne=o(`a-switch`),ie=o(`a-tooltip`),C=o(`a-popconfirm`),oe=o(`a-table`),ce=o(`a-card`),le=o(`a-typography-paragraph`),nn=o(`a-spin`),dn=o(`a-timeline-item`),fn=o(`a-timeline`),k=o(`a-modal`),yn=o(`a-textarea`),N=o(`a-form-item`),P=o(`a-form`),kn=o(`a-upload`),F=o(`a-range-picker`),I=o(`a-col`),Mn=o(`a-time-picker`),L=o(`a-row`),R=o(`a-typography-text`),Gn=o(`a-input-number`),Kn=o(`a-date-picker`),qn=o(`a-list-item`),Jn=o(`a-list`),Yn=o(`a-alert`);return n(),_(f,null,[b(ce,{title:`活动管理 / 活动列表`},{default:s(()=>[b(g,{style:{"margin-bottom":`12px`},wrap:``},{default:s(()=>[b(i,{modelValue:E.keyword,"onUpdate:modelValue":r[0]||=e=>E.keyword=e,placeholder:`搜索活动名称`,style:{width:`220px`}},null,8,[`modelValue`]),Y()?u(``,!0):(n(),l(p,{key:0,modelValue:E.venue_id,"onUpdate:modelValue":r[1]||=e=>E.venue_id=e,"allow-clear":``,"allow-search":``,placeholder:`筛选场馆`,style:{width:`220px`}},{default:s(()=>[(n(!0),_(f,null,x(re.value,e=>(n(),l(a,{key:e.id,value:e.id},{default:s(()=>[c(m(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])),b(p,{modelValue:E.reservation_type,"onUpdate:modelValue":r[2]||=e=>E.reservation_type=e,"allow-clear":``,placeholder:`活动性质`,style:{width:`210px`}},{default:s(()=>[b(a,{value:`online`},{default:s(()=>[...r[36]||=[c(`公益性需预约活动`,-1)]]),_:1}),b(a,{value:`none`},{default:s(()=>[...r[37]||=[c(`公益性无需预约活动`,-1)]]),_:1}),b(a,{value:`paid_study`},{default:s(()=>[...r[38]||=[c(`收费科普研学活动`,-1)]]),_:1})]),_:1},8,[`modelValue`]),b(p,{modelValue:E.is_active,"onUpdate:modelValue":r[3]||=e=>E.is_active=e,"allow-clear":``,placeholder:`上架状态`,style:{width:`130px`}},{default:s(()=>[b(a,{value:`1`},{default:s(()=>[...r[39]||=[c(`上架`,-1)]]),_:1}),b(a,{value:`0`},{default:s(()=>[...r[40]||=[c(`下架`,-1)]]),_:1})]),_:1},8,[`modelValue`]),b(p,{modelValue:E.schedule_status,"onUpdate:modelValue":r[4]||=e=>E.schedule_status=e,"allow-clear":``,placeholder:`活动状态`,style:{width:`130px`}},{default:s(()=>[b(a,{value:`not_started`},{default:s(()=>[...r[41]||=[c(`未开始`,-1)]]),_:1}),b(a,{value:`ongoing`},{default:s(()=>[...r[42]||=[c(`进行中`,-1)]]),_:1}),b(a,{value:`ended`},{default:s(()=>[...r[43]||=[c(`已结束`,-1)]]),_:1})]),_:1},8,[`modelValue`]),b(p,{modelValue:E.audit_status,"onUpdate:modelValue":r[5]||=e=>E.audit_status=e,"allow-clear":``,placeholder:`审核状态`,style:{width:`130px`}},{default:s(()=>[b(a,{value:`approved`},{default:s(()=>[...r[44]||=[c(`已通过`,-1)]]),_:1}),b(a,{value:`pending`},{default:s(()=>[...r[45]||=[c(`待审核`,-1)]]),_:1}),b(a,{value:`rejected`},{default:s(()=>[...r[46]||=[c(`已退回`,-1)]]),_:1})]),_:1},8,[`modelValue`]),b(h,{type:`primary`,onClick:Vi},{default:s(()=>[...r[47]||=[c(`查询`,-1)]]),_:1}),b(h,{type:`primary`,onClick:zi},{default:s(()=>[...r[48]||=[c(`新增活动`,-1)]]),_:1})]),_:1}),b(oe,{class:`list-data-table`,scroll:{x:Hr.value},data:te.value,loading:rn.value,"row-key":`id`,pagination:{current:T.current,pageSize:T.pageSize,total:T.total,showTotal:!0},onPageChange:ta},{columns:s(()=>[b(v,{title:``,width:50,ellipsis:!0,tooltip:!0},{cell:s(({rowIndex:e})=>[c(m(ee(se)(e,T.current,T.pageSize)),1)]),_:1}),b(v,{title:`活动名称`,"data-index":`title`,width:220,"min-width":160,ellipsis:!0,tooltip:!0}),b(v,{title:`活动日期`,width:200,"min-width":150,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[c(m(cr(e)),1)]),_:1}),Y()?u(``,!0):(n(),l(v,{key:0,title:`场馆`,width:180,"min-width":120,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[c(m(e.venue?.name||`-`),1)]),_:1})),b(v,{title:`活动性质`,width:160},{cell:s(({record:e})=>[c(m(Fi(e.reservation_type)),1)]),_:1}),b(v,{title:`浏览量`,width:100},{cell:s(({record:e})=>[c(m(Li(e)),1)]),_:1}),b(v,{title:`活动状态`,width:80},{cell:s(({record:e})=>[b(S,{color:ai(e.schedule_status)},{default:s(()=>[c(m(ii(e.schedule_status)),1)]),_:2},1032,[`color`])]),_:1}),X()?(n(),l(v,{key:1,title:`上架`,width:80},{cell:s(({record:e})=>[b(ne,{"model-value":e.is_active===!0,size:`small`,onChange:t=>mi(e,t)},null,8,[`model-value`,`onChange`])]),_:1})):u(``,!0),b(v,{title:`审核状态`,width:88},{cell:s(({record:e})=>[e.audit_status===`rejected`&&e.audit_remark?(n(),l(ie,{key:0,content:e.audit_remark},{default:s(()=>[b(S,{color:ei(e.audit_status)},{default:s(()=>[c(m($r(e.audit_status)),1)]),_:2},1032,[`color`])]),_:2},1032,[`content`])):(n(),l(S,{key:1,color:ei(e.audit_status)},{default:s(()=>[c(m($r(e.audit_status)),1)]),_:2},1032,[`color`]))]),_:1}),X()?(n(),l(v,{key:2,title:`热门`,width:80},{cell:s(({record:e})=>[b(ne,{"model-value":e.is_hot===!0,size:`small`,onChange:t=>pi(e,t)},null,8,[`model-value`,`onChange`])]),_:1})):u(``,!0),b(v,{title:`操作`,width:230,"min-width":210,fixed:`right`,align:`left`},{cell:s(({record:e})=>[b(g,{wrap:``,size:4,justify:`start`},{default:s(()=>[Gr(e)?(n(),l(h,{key:0,type:`text`,onClick:t=>Bi(e)},{default:s(()=>[c(m(Kr(e)),1)]),_:2},1032,[`onClick`])):u(``,!0),X()&&e.audit_status===`pending`?(n(),l(h,{key:1,type:`text`,onClick:t=>li(e,`audit`)},{default:s(()=>[...r[49]||=[c(`审核`,-1)]]),_:1},8,[`onClick`])):oi(e)?(n(),l(h,{key:2,type:`text`,onClick:t=>li(e,`view`)},{default:s(()=>[...r[50]||=[c(`查看`,-1)]]),_:1},8,[`onClick`])):u(``,!0),Yr(e)&&e.schedule_status===`ended`?(n(),l(h,{key:3,type:`text`,onClick:t=>gi(e)},{default:s(()=>[c(m(hi(e)?`查看花絮`:`上传花絮`),1)]),_:2},1032,[`onClick`])):u(``,!0),Ur(e)?(n(),l(C,{key:4,content:`确认删除该活动?`,onOk:t=>na(e)},{default:s(()=>[b(h,{type:`text`,status:`danger`},{default:s(()=>[...r[51]||=[c(`删除`,-1)]]),_:1})]),_:1},8,[`onOk`])):u(``,!0)]),_:2},1024)]),_:1})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1}),b(k,{visible:D.value,"onUpdate:visible":r[12]||=e=>D.value=e,title:si.value,width:`72%`,"body-style":Pn},{footer:s(()=>[A.value?(n(),l(h,{key:0,type:`primary`,onClick:ui},{default:s(()=>[...r[52]||=[c(`完成`,-1)]]),_:1})):on.value===`audit`?(n(),l(g,{key:1,wrap:``},{default:s(()=>[b(h,{type:`primary`,status:`success`,onClick:r[6]||=e=>di(`approve`)},{default:s(()=>[...r[53]||=[c(`通过`,-1)]]),_:1}),b(h,{type:`primary`,onClick:r[7]||=e=>di(`approve_hot`)},{default:s(()=>[...r[54]||=[c(`通过且为热门活动`,-1)]]),_:1}),b(h,{status:`danger`,onClick:r[8]||=e=>di(`reject`)},{default:s(()=>[...r[55]||=[c(`退回`,-1)]]),_:1}),b(h,{onClick:r[9]||=e=>D.value=!1},{default:s(()=>[...r[56]||=[c(`取消`,-1)]]),_:1})]),_:1})):(n(),l(h,{key:2,onClick:r[10]||=e=>D.value=!1},{default:s(()=>[...r[57]||=[c(`关闭`,-1)]]),_:1}))]),default:s(()=>[b(nn,{style:{width:`100%`},loading:sn.value},{default:s(()=>[A.value&&Cn.value?(n(),_(`div`,ue,[b(nn,{loading:Sn.value,style:{width:`100%`}},{default:s(()=>[b(le,{type:`secondary`,style:{"margin-bottom":`12px`}},{default:s(()=>[...r[58]||=[c(` 所有活动共用`,-1),y(`strong`,null,`同一核销入口`,-1),c(`;每个活动有独立的 `,-1),y(`strong`,null,`6 位数字密码`,-1),c(`,无需用户名,支持多人同时登录核销;`,-1),y(`strong`,null,`场馆后台账号不可`,-1),c(`登录核销页。 `,-1)]]),_:1}),wn.value?(n(),_(`div`,de,` 举办场馆:`+m(wn.value),1)):u(``,!0),y(`div`,fe,[r[61]||=y(`span`,{class:`activity-verify-inline-line__label`},`核销入口链接`,-1),b(i,{"model-value":Tn.value,readonly:``,class:`activity-verify-inline-line__input activity-verify-inline-line__input--url`},null,8,[`model-value`]),b(h,{type:`primary`,onClick:An},{default:s(()=>[...r[59]||=[c(`复制链接`,-1)]]),_:1}),r[62]||=y(`span`,{class:`activity-verify-inline-line__label`},`本活动核销密码`,-1),b(i,{"model-value":En.value,readonly:``,class:`activity-verify-inline-line__input activity-verify-inline-line__input--pin`,style:{"font-variant-numeric":`tabular-nums`}},null,8,[`model-value`]),b(h,{type:`primary`,onClick:jn},{default:s(()=>[...r[60]||=[c(`复制密码`,-1)]]),_:1})])]),_:1},8,[`loading`])])):O.value?(n(),_(`div`,pe,[y(`div`,me,[y(`div`,he,[r[63]||=y(`span`,{class:`activity-audit-inline-label`},`活动名称`,-1),y(`div`,ge,m(O.value.title||``),1)]),y(`div`,_e,[r[64]||=y(`span`,{class:`activity-audit-inline-label`},`举办场馆`,-1),y(`div`,ve,m(O.value.venue?.name||``),1)]),y(`div`,ye,[r[65]||=y(`span`,{class:`activity-audit-inline-label`},`联系人`,-1),y(`div`,be,m(O.value.contact_name||``),1)]),y(`div`,xe,[r[66]||=y(`span`,{class:`activity-audit-inline-label`},`联系电话`,-1),y(`div`,Se,m(O.value.contact_phone||``),1)]),y(`div`,Ce,[r[67]||=y(`span`,{class:`activity-audit-inline-label`},`活动日期`,-1),y(`div`,we,m(cr(O.value)),1)]),y(`div`,Te,[r[68]||=y(`span`,{class:`activity-audit-inline-label`},`具体时间`,-1),y(`div`,Ee,m(Xn(O.value.specific_time)||``),1)]),y(`div`,De,[r[69]||=y(`span`,{class:`activity-audit-inline-label`},`活动性质`,-1),y(`div`,Oe,m(Fi(O.value.reservation_type)),1)]),y(`div`,ke,[y(`span`,Ae,m(xi(O.value)),1),y(`div`,je,m(O.value.booking_method_note?.trim()||``),1)]),y(`div`,Me,[r[70]||=y(`span`,{class:`activity-audit-inline-label`},`费用`,-1),y(`div`,Ne,m(Si(O.value)),1)]),Ci(O.value)?(n(),_(`div`,Pe,[r[71]||=y(`span`,{class:`activity-audit-inline-label`},`外链地址`,-1),y(`div`,Fe,m(O.value.external_url||``),1)])):u(``,!0),y(`div`,Ie,[r[72]||=y(`span`,{class:`activity-audit-inline-label`},`标签`,-1),y(`div`,Le,[y(`div`,Re,[(n(!0),_(f,null,x(O.value.tags||[],(e,t)=>(n(),l(S,{key:`${e}-${t}`,style:{"margin-bottom":`0`}},{default:s(()=>[c(m(e),1)]),_:2},1024))),128)),O.value.tags?.length?u(``,!0):(n(),_(`span`,ze,`暂无标签`))])])]),y(`div`,Be,[r[73]||=y(`span`,{class:`activity-audit-inline-label`},`活动地点`,-1),y(`div`,Ve,m(O.value.location?.trim()?O.value.location:O.value.address||``),1)]),y(`div`,He,[r[74]||=y(`span`,{class:`activity-audit-inline-label`},`活动报到集合地点`,-1),y(`div`,Ue,m(O.value.check_in_meeting_point?.trim()?O.value.check_in_meeting_point:``),1)]),y(`div`,We,[y(`div`,Ge,[r[75]||=y(`span`,{class:`activity-audit-inline-label`},`活动封面图`,-1),y(`div`,Ke,[O.value.cover_image?(n(),_(`img`,{key:0,src:O.value.cover_image,class:`activity-cover-thumb`,alt:``,onClick:r[11]||=e=>J(`image`,O.value.cover_image)},null,8,qe)):(n(),_(`span`,Je,``))])]),y(`div`,Ye,[r[76]||=y(`span`,{class:`activity-audit-inline-label`},`活动展示图片`,-1),y(`div`,Xe,[O.value.gallery_media?.length?(n(),_(`div`,Ze,[(n(!0),_(f,null,x(O.value.gallery_media,(e,r)=>(n(),_(`div`,{key:e.url+r,class:`activity-gallery-item`},[e.type===`image`?(n(),_(`img`,{key:0,src:e.url,class:`activity-gallery-thumb`,alt:``,onClick:t=>J(`image`,e.url)},null,8,Qe)):(n(),_(`video`,{key:1,src:e.url,controls:``,class:`activity-gallery-thumb activity-gallery-thumb--video`,onClick:t(t=>J(`video`,e.url),[`stop`])},null,8,$e))]))),128))])):(n(),_(`span`,et,``))])])])]),y(`div`,tt,[r[77]||=y(`div`,{class:`activity-audit-stack__label`},`活动详情`,-1),y(`div`,nt,[O.value.detail_html?.trim()?(n(),_(`div`,{key:0,class:`activity-audit-rich`,innerHTML:O.value.detail_html},null,8,rt)):(n(),_(`span`,it,``))])]),O.value&&H(O.value.reservation_type)?(n(),_(`div`,at,[y(`div`,ot,`场次信息(`+m(ln.value||``)+``,1),y(`div`,st,[cn.value.length?(n(),l(oe,{key:0,data:cn.value,pagination:!1,size:`small`,bordered:{cell:!0},scroll:{x:B(O.value.reservation_type)===`online`?1220:820}},{columns:s(()=>[b(v,{title:`场次名称`,"data-index":`session_name`,width:104}),b(v,{title:`场次开始`,"data-index":`session_start_at`,width:184}),b(v,{title:`场次结束`,"data-index":`session_end_at`,width:184}),B(O.value.reservation_type)===`online`?(n(),l(v,{key:0,title:`预约开始`,"data-index":`booking_opens_at`,width:184})):u(``,!0),B(O.value.reservation_type)===`online`?(n(),l(v,{key:1,title:`预约截止`,"data-index":`booking_deadline_at`,width:184})):u(``,!0),b(v,{title:`名额`,"data-index":`day_quota`,width:56}),b(v,{title:`说明`,width:160,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[y(`span`,null,m((e.quota_note||``).trim()||``),1)]),_:1}),B(O.value.reservation_type)===`online`?(n(),l(v,{key:2,title:`已约`,"data-index":`booked_count`,width:48})):u(``,!0)]),_:1},8,[`data`,`scroll`])):(n(),_(`span`,ct,`暂无场次`))])])):u(``,!0),O.value.reservation_type===`online`&&O.value.audit_status===`approved`&&(j.value||_n.value)?(n(),_(`div`,lt,[r[82]||=y(`div`,{class:`activity-audit-stack__label`},`核销信息`,-1),y(`div`,ut,[y(`div`,dt,[r[80]||=y(`span`,{class:`activity-verify-inline-line__label`},`核销入口链接`,-1),b(i,{"model-value":j.value,readonly:``,class:`activity-verify-inline-line__input activity-verify-inline-line__input--url`,disabled:!j.value},null,8,[`model-value`,`disabled`]),b(h,{type:`primary`,disabled:!j.value,onClick:Dn},{default:s(()=>[...r[78]||=[c(`复制链接`,-1)]]),_:1},8,[`disabled`]),r[81]||=y(`span`,{class:`activity-verify-inline-line__label`},`本活动核销密码`,-1),b(i,{"model-value":_n.value,readonly:``,class:`activity-verify-inline-line__input activity-verify-inline-line__input--pin`,style:{"font-variant-numeric":`tabular-nums`},disabled:!_n.value},null,8,[`model-value`,`disabled`]),b(h,{type:`primary`,disabled:!_n.value,onClick:On},{default:s(()=>[...r[79]||=[c(`复制密码`,-1)]]),_:1},8,[`disabled`])])])])):u(``,!0),y(`div`,ft,[r[84]||=y(`div`,{class:`activity-audit-stack__label`},`审核记录`,-1),y(`div`,pt,[y(`div`,mt,[r[83]||=y(`span`,{class:`activity-audit-inline-label`,style:{flex:`none`,"text-align":`left`,"margin-right":`8px`}},`提交人`,-1),y(`div`,ht,[y(`span`,null,m(ur(O.value)),1),O.value.created_at?(n(),_(`span`,gt,m(String(O.value.created_at).replace(`T`,` `).slice(0,19)),1)):u(``,!0)])]),un.value.length?(n(),l(fn,{key:0,mode:`left`},{default:s(()=>[(n(!0),_(f,null,x(un.value,e=>(n(),l(dn,{key:e.id,label:e.created_at?String(e.created_at).replace(`T`,` `).slice(0,19):``},{default:s(()=>[y(`div`,null,[e.action===`edit_submit`?(n(),_(`span`,_t,`用户 `+m(e.admin_user?.name||``)+` 编辑并提交`,1)):(n(),_(f,{key:1},[b(S,{color:e.action===`approve`?`green`:`red`},{default:s(()=>[c(m(ci(e.action)),1)]),_:2},1032,[`color`]),e.admin_user?.name?(n(),_(`span`,vt,m(e.admin_user.name),1)):u(``,!0)],64))]),e.remark?(n(),_(`div`,yt,m(e.remark),1)):u(``,!0)]),_:2},1032,[`label`]))),128))]),_:1})):(n(),_(`span`,bt,`暂无平台审核记录(不含本次待提交的说明)`))])])])):u(``,!0)]),_:1},8,[`loading`])]),_:1},8,[`visible`,`title`]),b(k,{visible:pn.value,"onUpdate:visible":r[14]||=e=>pn.value=e,title:mn.value,width:`500px`,"on-before-ok":fi},{default:s(()=>[b(P,{layout:`vertical`},{default:s(()=>[b(N,null,{default:s(()=>[b(yn,{modelValue:gn.value,"onUpdate:modelValue":r[13]||=e=>gn.value=e,placeholder:hn.value,"max-length":2e3,"allow-clear":``,"show-word-limit":``,"auto-size":{minRows:3,maxRows:6}},null,8,[`modelValue`,`placeholder`])]),_:1})]),_:1})]),_:1},8,[`visible`,`title`]),b(k,{visible:vn.value,"onUpdate:visible":r[15]||=e=>vn.value=e,title:bn.value,width:`1000px`,"body-style":Fn,"confirm-loading":xn.value,"on-before-ok":bi},{default:s(()=>[b(g,{direction:`vertical`,fill:``,style:{width:`100%`}},{default:s(()=>[b(kn,{"auto-upload":!1,"show-file-list":!1,accept:`image/*`,multiple:``,"on-before-upload":_i},{"upload-button":s(()=>[b(h,{type:`outline`},{default:s(()=>[...r[85]||=[c(`添加图片`,-1)]]),_:1})]),_:1}),M.value.length?(n(),_(`div`,xt,[(n(!0),_(f,null,x(M.value,(e,t)=>(n(),_(`div`,{key:t+`-`+e.url,class:`bts-preview-item`},[y(`img`,{class:`bts-preview-img`,src:e.url,onClick:t=>J(`image`,e.url)},null,8,St),y(`div`,Ct,[b(h,{size:`mini`,class:`bts-act-btn`,disabled:t===0,onClick:e=>yi(t,-1)},{default:s(()=>[...r[86]||=[c(`上移`,-1)]]),_:1},8,[`disabled`,`onClick`]),b(h,{size:`mini`,class:`bts-act-btn`,disabled:t===M.value.length-1,onClick:e=>yi(t,1)},{default:s(()=>[...r[87]||=[c(`下移`,-1)]]),_:1},8,[`disabled`,`onClick`]),b(h,{size:`mini`,class:`bts-act-btn`,status:`danger`,onClick:e=>vi(t)},{default:s(()=>[...r[88]||=[c(`删除`,-1)]]),_:1},8,[`onClick`])])]))),128))])):u(``,!0)]),_:1})]),_:1},8,[`visible`,`title`,`confirm-loading`]),b(k,{visible:w.value,"onUpdate:visible":r[32]||=e=>w.value=e,title:xr.value,width:`70%`,"body-style":Nn,"on-before-cancel":ee(Vr)},{footer:s(()=>[b(h,{onClick:Qi},{default:s(()=>[...r[115]||=[c(`取消`,-1)]]),_:1}),b(h,{type:`primary`,loading:an.value,onClick:ea},{default:s(()=>[...r[116]||=[c(`提交`,-1)]]),_:1},8,[`loading`])]),default:s(()=>[b(nn,{class:`activity-edit-spin`,style:{width:`100%`},loading:hr.value},{default:s(()=>[b(P,{model:U,layout:`vertical`,class:`admin-modal-form`},{default:s(()=>[b(N,{label:`活动名称`,required:``,help:W.title},d({default:s(()=>[b(i,{modelValue:U.title,"onUpdate:modelValue":r[16]||=e=>U.title=e},null,8,[`modelValue`])]),_:2},[W.title?{name:`help`,fn:s(()=>[y(`span`,wt,m(W.title),1)]),key:`0`}:void 0]),1032,[`help`]),b(N,{label:`活动性质`,required:``,help:W.reservation_type},d({default:s(()=>[b(p,{modelValue:U.reservation_type,"onUpdate:modelValue":r[17]||=e=>U.reservation_type=e,placeholder:`请选择活动性质`},{default:s(()=>[b(a,{value:`online`},{default:s(()=>[...r[89]||=[c(`公益性需预约活动`,-1)]]),_:1}),b(a,{value:`none`},{default:s(()=>[...r[90]||=[c(`公益性无需预约活动`,-1)]]),_:1}),b(a,{value:`paid_study`},{default:s(()=>[...r[91]||=[c(`收费科普研学活动`,-1)]]),_:1}),String(U.reservation_type||``).trim()&&![`online`,`none`,`paid_study`].includes(B(U.reservation_type))?(n(),l(a,{key:0,value:U.reservation_type},{default:s(()=>[c(` (历史类型)`+m(Fi(B(U.reservation_type))),1)]),_:1},8,[`value`])):u(``,!0)]),_:1},8,[`modelValue`])]),_:2},[W.reservation_type?{name:`help`,fn:s(()=>[y(`span`,Tt,m(W.reservation_type),1)]),key:`0`}:void 0]),1032,[`help`]),b(N,{label:gr.value,required:B(U.reservation_type)===`paid_study`},d({default:s(()=>[b(i,{modelValue:U.booking_method_note,"onUpdate:modelValue":r[18]||=e=>U.booking_method_note=e,"allow-clear":B(U.reservation_type)!==`online`,disabled:B(U.reservation_type)===`online`,placeholder:B(U.reservation_type)===`paid_study`?`请填写报名方式说明`:B(U.reservation_type)===`none`?`请填写参与提示`:`平台预约(不可修改)`},null,8,[`modelValue`,`allow-clear`,`disabled`,`placeholder`])]),_:2},[W.booking_method_note?{name:`help`,fn:s(()=>[y(`span`,Et,m(W.booking_method_note),1)]),key:`0`}:void 0]),1032,[`label`,`required`]),Y()?u(``,!0):(n(),l(N,{key:0,label:`举办场馆`,required:``,help:W.venue_id},d({default:s(()=>[b(p,{modelValue:U.venue_id,"onUpdate:modelValue":r[19]||=e=>U.venue_id=e,"allow-search":``},{default:s(()=>[(n(!0),_(f,null,x(re.value,e=>(n(),l(a,{key:e.id,value:e.id},{default:s(()=>[c(m(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),_:2},[W.venue_id?{name:`help`,fn:s(()=>[y(`span`,Dt,m(W.venue_id),1)]),key:`0`}:void 0]),1032,[`help`])),b(N,{label:`联系人`,required:``,help:W.contact_name},d({default:s(()=>[b(i,{modelValue:U.contact_name,"onUpdate:modelValue":r[20]||=e=>U.contact_name=e,placeholder:`请输入联系人`,"allow-clear":``},null,8,[`modelValue`])]),_:2},[W.contact_name?{name:`help`,fn:s(()=>[y(`span`,Ot,m(W.contact_name),1)]),key:`0`}:void 0]),1032,[`help`]),b(N,{label:`联系电话`,required:``,help:W.contact_phone},d({default:s(()=>[b(i,{modelValue:U.contact_phone,"onUpdate:modelValue":r[21]||=e=>U.contact_phone=e,placeholder:`请输入联系电话`,"allow-clear":``},null,8,[`modelValue`])]),_:2},[W.contact_phone?{name:`help`,fn:s(()=>[y(`span`,kt,m(W.contact_phone),1)]),key:`0`}:void 0]),1032,[`help`]),b(N,{label:`费用`,required:B(U.reservation_type)===`paid_study`},d({default:s(()=>[[`online`,`none`].includes(B(U.reservation_type))?(n(),l(i,{key:0,"model-value":`免费`,disabled:``,style:{width:`100%`}})):(n(),l(i,{key:1,modelValue:U.fee_note,"onUpdate:modelValue":r[22]||=e=>U.fee_note=e,placeholder:`必填,如收费标准说明`,style:{width:`100%`},"max-length":1e3,"allow-clear":``},null,8,[`modelValue`]))]),_:2},[W.fee_note?{name:`help`,fn:s(()=>[y(`span`,At,m(W.fee_note),1)]),key:`0`}:void 0]),1032,[`required`]),b(L,{gutter:16,class:`admin-modal-form__full`},{default:s(()=>[b(I,{xs:24,md:8},{default:s(()=>[b(N,{label:`活动日期`,required:``,help:W.start_at||W.end_at},d({default:s(()=>[b(F,{modelValue:pr.value,"onUpdate:modelValue":r[23]||=e=>pr.value=e,format:`YYYY-MM-DD`,"value-format":`YYYY-MM-DD`,"exchange-time":!1,style:{width:`100%`}},null,8,[`modelValue`])]),_:2},[W.start_at||W.end_at?{name:`help`,fn:s(()=>[y(`span`,jt,m(W.start_at||W.end_at),1)]),key:`0`}:void 0]),1032,[`help`])]),_:1}),b(I,{xs:24,md:8},{default:s(()=>[b(N,{required:H(U.reservation_type),"validate-status":W.specific_time_slots?`error`:void 0},d({label:s(()=>[y(`span`,Mt,[r[93]||=y(`span`,null,`具体时间`,-1),b(h,{type:`primary`,size:`mini`,class:`activity-add-time-slot-btn`,onClick:Ir},{default:s(()=>[...r[92]||=[c(` 添加时段 `,-1)]]),_:1})])]),default:s(()=>[b(g,{direction:`vertical`,fill:``,style:{width:`100%`}},{default:s(()=>[(n(!0),_(f,null,x(U.specific_time_slots,(e,t)=>(n(),_(`div`,{key:`slot-`+t,class:`activity-time-slot-row`},[b(Mn,{modelValue:e.start,"onUpdate:modelValue":t=>e.start=t,class:`activity-specific-time-slot-picker`,format:`HH:mm`,"value-format":`HH:mm`,placeholder:`开始`,size:`small`},null,8,[`modelValue`,`onUpdate:modelValue`]),r[95]||=y(`span`,{class:`activity-time-slot-row__tilde`},``,-1),b(Mn,{modelValue:e.end,"onUpdate:modelValue":t=>e.end=t,class:`activity-specific-time-slot-picker`,format:`HH:mm`,"value-format":`HH:mm`,placeholder:`结束`,size:`small`},null,8,[`modelValue`,`onUpdate:modelValue`]),b(h,{class:`activity-time-slot-row__del`,size:`mini`,status:`danger`,onClick:e=>Lr(t)},{default:s(()=>[...r[94]||=[c(` 删除 `,-1)]]),_:1},8,[`onClick`])]))),128)),U.specific_time_slots.length?u(``,!0):(n(),_(`span`,Nt,`暂无时段,点击「添加时段」`))]),_:1})]),_:2},[W.specific_time_slots?{name:`help`,fn:s(()=>[y(`span`,Pt,m(W.specific_time_slots),1)]),key:`0`}:void 0]),1032,[`required`,`validate-status`])]),_:1}),b(I,{xs:24,md:8},{default:s(()=>[b(N,{label:`标签`},{default:s(()=>[y(`div`,Ft,[y(`div`,It,[b(i,{modelValue:fr.value,"onUpdate:modelValue":r[24]||=e=>fr.value=e,class:`activity-form-tags__input`,placeholder:`请输入标签内容`},null,8,[`modelValue`]),b(h,{type:`primary`,class:`activity-form-tags__save`,onClick:Yi},{default:s(()=>[...r[96]||=[c(`保存标签`,-1)]]),_:1})]),y(`div`,Lt,[(n(!0),_(f,null,x(U.tags,(e,t)=>(n(),l(S,{key:`${e}-${t}`,closable:``,style:{"margin-bottom":`0`},onClose:e=>Xi(t)},{default:s(()=>[c(m(e),1)]),_:2},1032,[`onClose`]))),128)),U.tags.length?u(``,!0):(n(),_(`span`,Rt,`暂无标签`))])])]),_:1})]),_:1})]),_:1}),b(L,{class:`admin-modal-form__full`,gutter:16},{default:s(()=>[b(I,{xs:24,md:12},{default:s(()=>[b(N,{label:`活动地点`,required:``,help:W.location},d({default:s(()=>[y(`div`,zt,[b(i,{modelValue:U.location,"onUpdate:modelValue":r[25]||=e=>U.location=e,class:`activity-address-coord-row__address`,placeholder:`请输入活动地点`,"allow-clear":``},null,8,[`modelValue`]),b(h,{type:`primary`,class:`activity-address-coord-row__map`,onClick:ji},{default:s(()=>[...r[97]||=[c(`地图选点`,-1)]]),_:1}),b(h,{onClick:Ti},{default:s(()=>[...r[98]||=[c(`使用本馆地址`,-1)]]),_:1})])]),_:2},[W.location?{name:`help`,fn:s(()=>[y(`span`,Bt,m(W.location),1)]),key:`0`}:void 0]),1032,[`help`])]),_:1}),b(I,{xs:24,md:12},{default:s(()=>[b(N,{label:`活动报到集合地点`},{default:s(()=>[b(i,{modelValue:U.check_in_meeting_point,"onUpdate:modelValue":r[26]||=e=>U.check_in_meeting_point=e,placeholder:`请输入活动报到集合地点`,"allow-clear":``},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1}),b(N,{label:`活动图片`,class:`admin-modal-form__full`},{default:s(()=>[y(`div`,Vt,[y(`div`,Ht,[r[102]||=y(`div`,{class:`activity-cover-carousel-row__sub`},`活动封面图`,-1),b(g,{direction:`vertical`,fill:``,style:{width:`100%`}},{default:s(()=>[b(kn,{"auto-upload":!1,"show-file-list":!1,accept:`image/*`,"before-upload":Ui,onChange:Gi},{"upload-button":s(()=>[b(h,null,{default:s(()=>[...r[99]||=[c(`上传封面`,-1)]]),_:1})]),_:1}),b(R,{type:`secondary`},{default:s(()=>[...r[100]||=[c(`图片尺寸推荐 1200×600`,-1)]]),_:1}),U.cover_image?(n(),l(g,{key:0,direction:`vertical`,align:`start`},{default:s(()=>[y(`img`,{src:U.cover_image,class:`activity-cover-thumb`,onClick:r[27]||=e=>J(`image`,U.cover_image)},null,8,Ut),b(h,{size:`mini`,status:`danger`,onClick:qi},{default:s(()=>[...r[101]||=[c(`删除封面`,-1)]]),_:1})]),_:1})):u(``,!0)]),_:1})]),y(`div`,Wt,[r[106]||=y(`div`,{class:`activity-cover-carousel-row__sub`},`活动展示图片`,-1),y(`div`,Gt,[y(`div`,Kt,[b(kn,{"auto-upload":!1,"show-file-list":!1,multiple:``,accept:`image/*,video/*`,"before-upload":Wi,onChange:Ki},{"upload-button":s(()=>[b(h,{type:`primary`},{default:s(()=>[...r[103]||=[c(`新增展示资源`,-1)]]),_:1})]),_:1}),b(R,{type:`secondary`,style:{"margin-top":`12px`,display:`block`}},{default:s(()=>[...r[104]||=[c(`图片尺寸推荐 1200×600`,-1)]]),_:1})]),y(`div`,qt,[(n(!0),_(f,null,x(U.gallery_media,(e,i)=>(n(),_(`div`,{key:e.url+i,class:`activity-gallery-item`},[e.type===`image`?(n(),_(`img`,{key:0,src:e.url,class:`activity-gallery-thumb`,onClick:t=>J(`image`,e.url)},null,8,Jt)):(n(),_(`video`,{key:1,src:e.url,controls:``,class:`activity-gallery-thumb activity-gallery-thumb--video`,onClick:t(t=>J(`video`,e.url),[`stop`])},null,8,Yt)),b(h,{size:`mini`,status:`danger`,onClick:e=>Ji(i)},{default:s(()=>[...r[105]||=[c(`删除`,-1)]]),_:1},8,[`onClick`])]))),128))])])])])]),_:1}),y(`div`,Xt,[r[114]||=y(`div`,{style:{"font-weight":`600`,"margin-bottom":`8px`}},`场次信息`,-1),K.value?(n(),l(R,{key:0,type:`secondary`,style:{display:`block`,"margin-bottom":`12px`}},{default:s(()=>[c(m(lr.value),1)]),_:1})):(n(),l(R,{key:1,type:`warning`,style:{display:`block`,"margin-bottom":`12px`}},{default:s(()=>[...r[107]||=[c(` 活动已结束:本次保存将不更新场次与预约名额(仅活动基本信息)。 `,-1)]]),_:1})),vr.value?(n(),l(P,{key:2,layout:`vertical`},{default:s(()=>[b(L,{gutter:16},{default:s(()=>[b(I,{span:8},{default:s(()=>[b(N,{label:`预约对象`},{default:s(()=>[b(p,{modelValue:G.booking_audience,"onUpdate:modelValue":r[28]||=e=>G.booking_audience=e},{default:s(()=>[b(a,{value:`individual`},{default:s(()=>[...r[108]||=[c(`个人`,-1)]]),_:1}),b(a,{value:`group`},{default:s(()=>[...r[109]||=[c(`团体`,-1)]]),_:1}),b(a,{value:`both`},{default:s(()=>[...r[110]||=[c(`个人+团体`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1})]),_:1}),G.booking_audience===`individual`?u(``,!0):(n(),l(I,{key:0,span:8},{default:s(()=>[b(N,{label:`每单最少人数`},{default:s(()=>[b(Gn,{modelValue:G.min_people_per_order,"onUpdate:modelValue":r[29]||=e=>G.min_people_per_order=e,min:1,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1})),G.booking_audience===`individual`?u(``,!0):(n(),l(I,{key:1,span:8},{default:s(()=>[b(N,{label:`每单最多人数`},{default:s(()=>[b(Gn,{modelValue:G.max_people_per_order,"onUpdate:modelValue":r[30]||=e=>G.max_people_per_order=e,min:2,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}))]),_:1})]),_:1})):u(``,!0),y(`div`,Zt,m(yr.value),1),b(h,{type:`primary`,class:`activity-form-tags__save activity-add-session-btn`,style:{"margin-bottom":`12px`},disabled:!K.value,onClick:wr},{default:s(()=>[...r[111]||=[c(` 添加场次 `,-1)]]),_:1},8,[`disabled`]),b(oe,{data:G.days,pagination:!1,bordered:{cell:!0},size:`small`,scroll:{x:br.value}},{columns:s(()=>[b(v,{title:`场次名称`,width:104},{cell:s(({rowIndex:e})=>[b(i,{modelValue:G.days[e].session_name,"onUpdate:modelValue":t=>G.days[e].session_name=t,placeholder:`名称`,disabled:!K.value},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`])]),_:1}),b(v,{title:`场次开始`,width:184},{cell:s(({rowIndex:e})=>[b(Kn,{modelValue:G.days[e].session_start_at,"onUpdate:modelValue":t=>G.days[e].session_start_at=t,"show-time":``,format:`YYYY-MM-DD HH:mm`,"value-format":`YYYY-MM-DD HH:mm:ss`,style:{width:`100%`},disabled:!K.value},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`])]),_:1}),b(v,{title:`场次结束`,width:184},{cell:s(({rowIndex:e})=>[b(Kn,{modelValue:G.days[e].session_end_at,"onUpdate:modelValue":t=>G.days[e].session_end_at=t,"show-time":``,format:`YYYY-MM-DD HH:mm`,"value-format":`YYYY-MM-DD HH:mm:ss`,style:{width:`100%`},disabled:!K.value},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`])]),_:1}),_r.value?(n(),l(v,{key:0,title:`预约开始`,width:184},{cell:s(({rowIndex:e})=>[b(Kn,{modelValue:G.days[e].booking_opens_at,"onUpdate:modelValue":t=>G.days[e].booking_opens_at=t,"show-time":``,format:`YYYY-MM-DD HH:mm`,"value-format":`YYYY-MM-DD HH:mm:ss`,style:{width:`100%`},disabled:!K.value},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`])]),_:1})):u(``,!0),_r.value?(n(),l(v,{key:1,title:`预约截止`,width:184},{cell:s(({rowIndex:e})=>[b(Kn,{modelValue:G.days[e].booking_deadline_at,"onUpdate:modelValue":t=>G.days[e].booking_deadline_at=t,"show-time":``,format:`YYYY-MM-DD HH:mm`,"value-format":`YYYY-MM-DD HH:mm:ss`,style:{width:`100%`},disabled:!K.value},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`])]),_:1})):u(``,!0),b(v,{title:`名额`,width:60},{cell:s(({rowIndex:e})=>[b(Gn,{modelValue:G.days[e].day_quota,"onUpdate:modelValue":t=>G.days[e].day_quota=t,min:Math.max(1,Number(G.days[e].booked_count)||0),style:{width:`100%`},disabled:!K.value},null,8,[`modelValue`,`onUpdate:modelValue`,`min`,`disabled`])]),_:1}),b(v,{title:`说明`,width:140},{title:s(()=>[...r[112]||=[y(`span`,null,`说明`,-1),y(`span`,{style:{color:`var(--color-text-3)`,"font-weight":`normal`,"font-size":`12px`}},`(可选)`,-1)]]),cell:s(({rowIndex:e})=>[b(i,{modelValue:G.days[e].quota_note,"onUpdate:modelValue":t=>G.days[e].quota_note=t,placeholder:`可与名额配合说明`,"allow-clear":``,disabled:!K.value},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`])]),_:1}),_r.value?(n(),l(v,{key:2,title:`已约`,width:48},{cell:s(({rowIndex:e})=>[c(m(G.days[e].booked_count??0),1)]),_:1})):u(``,!0),b(v,{title:``,width:68,fixed:`right`},{cell:s(({rowIndex:e})=>[b(h,{type:`text`,status:`danger`,disabled:!K.value,onClick:t=>Tr(e)},{default:s(()=>[...r[113]||=[c(`删除`,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:1})]),_:1},8,[`data`,`scroll`])]),b(N,{label:`活动详情`,class:`admin-modal-form__full`},{default:s(()=>[(n(),l(ae,{modelValue:U.detail_html,"onUpdate:modelValue":r[31]||=e=>U.detail_html=e,"editor-options":Pr,"field-key":`activity-detail`,"min-height":280,key:`activity-detail-${In.value}`},null,8,[`modelValue`]))]),_:1})]),_:1},8,[`model`])]),_:1},8,[`loading`])]),_:1},8,[`visible`,`title`,`on-before-cancel`]),b(k,{visible:Ln.value,"onUpdate:visible":r[33]||=e=>Ln.value=e,title:`媒体预览`,width:`72%`,footer:!1},{default:s(()=>[Rn.value===`image`&&zn.value?(n(),_(`img`,{key:0,src:zn.value,style:{display:`block`,"max-width":`100%`,"max-height":`72vh`,margin:`0 auto`}},null,8,Qt)):Rn.value===`video`&&zn.value?(n(),_(`video`,{key:1,src:zn.value,controls:``,autoplay:``,style:{display:`block`,width:`100%`,"max-height":`72vh`}},null,8,$t)):u(``,!0)]),_:1},8,[`visible`]),b(k,{visible:Bn.value,"onUpdate:visible":r[35]||=e=>Bn.value=e,title:`地图选点(腾讯地图)`,width:`70%`,"body-style":Nn,"on-before-ok":Pi},{default:s(()=>[b(g,{style:{"margin-bottom":`12px`,width:`100%`}},{default:s(()=>[b(i,{modelValue:Hn.value,"onUpdate:modelValue":r[34]||=e=>Hn.value=e,placeholder:`输入关键词搜索,如:苏州博物馆`,style:{width:`420px`}},null,8,[`modelValue`]),b(h,{type:`primary`,loading:Vn.value,onClick:Mi},{default:s(()=>[...r[117]||=[c(`搜索`,-1)]]),_:1},8,[`loading`])]),_:1}),y(`div`,en,[y(`div`,{ref_key:`mapContainerRef`,ref:Wn,style:{height:`520px`,flex:`1`,border:`1px solid #e5e6eb`}},null,512),y(`div`,tn,[r[118]||=y(`div`,{style:{"margin-bottom":`8px`,color:`#86909c`}},`搜索结果`,-1),b(Jn,{size:`small`},{default:s(()=>[(n(!0),_(f,null,x(Un.value,(e,t)=>(n(),l(qn,{key:t,onClick:t=>Ni(e)},{default:s(()=>[b(le,{ellipsis:{rows:1}},{default:s(()=>[c(m(e.title),1)]),_:2},1024),b(R,{type:`secondary`},{default:s(()=>[c(m(e.address),1)]),_:2},1024)]),_:2},1032,[`onClick`]))),128))]),_:1})])]),z.value?(n(),l(Yn,{key:0,type:`info`,style:{"margin-top":`12px`}},{default:s(()=>[c(` 已选坐标:`+m(z.value.lng)+`, `+m(z.value.lat),1),r[119]||=y(`br`,null,null,-1),c(` 地址:`+m(z.value.address||`-`),1)]),_:1})):u(``,!0)]),_:1},8,[`visible`])],64)}}}),[[`__scopeId`,`data-v-6fc4f69a`]]);export{rn as default};