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.

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