|
|
import{I as e,N as t,O as n,P as r,V as i,Y as a,_ as o,d as s,f as c,h as l,i as u,it as d,kt as f,l as p,nt as m,p as h,u as g,ut as ee,v as _,y as te,z as v}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{ot as ne,t as y}from"./message-Dh9377vh.js";import{n as b}from"./http-BWP--XXK.js";import{a as x,i as S}from"./index-t2Vqy-bK.js";import{t as re}from"./RichEditorField-D640yvr0.js";import{t as ie}from"./listTableRowIndex-ekx2Z6yT.js";function ae(e,t){return function(){return e()?window.confirm(t):!0}}function oe(e,n=`当前有未保存改动,确定要离开吗?`){function i(t){e()&&(t.preventDefault(),t.returnValue=``)}S((t,r,i)=>{if(!e()){i();return}i(window.confirm(n))}),t(()=>{window.addEventListener(`beforeunload`,i)}),r(()=>{window.removeEventListener(`beforeunload`,i)})}var se={style:{color:`#f53f3f`}},ce={style:{color:`#f53f3f`}},le={style:{color:`#f53f3f`}},ue={style:{color:`#f53f3f`}},de={style:{color:`#f53f3f`}},fe={style:{color:`#f53f3f`}},pe={style:{color:`#f53f3f`}},me={class:`activity-form-tags`},he={class:`activity-form-tags__line`},ge={class:`activity-form-tags__chips`},_e={key:0,class:`activity-form-tags__empty`},ve={key:1,style:{color:`var(--color-text-3)`}},ye={style:{"margin-left":`8px`,color:`var(--color-text-3)`}},be={class:`activity-address-coord-row`},xe={style:{color:`#f53f3f`}},Se={class:`activity-cover-carousel-wrap`},Ce={class:`activity-cover-carousel-row__col`},we=[`src`],Te={class:`activity-cover-carousel-row__col`},Ee={style:{display:`flex`,"flex-direction":`column`,"align-items":`flex-start`,width:`100%`}},De={style:{width:`100%`,"margin-bottom":`8px`}},Oe={class:`activity-gallery-grid`},ke=[`src`,`onClick`],Ae=[`src`,`onClick`],je=[`src`],Me=[`src`],Ne={style:{display:`flex`,gap:`12px`}},Pe={style:{width:`280px`,height:`520px`,overflow:`auto`,border:`1px solid #e5e6eb`,padding:`8px`}},Fe=1420,C=x(te({__name:`ActivityList`,setup(r){let te=d([]),x=d([]),S=d(null),C=d(!1),Ie=d(!1),w=d(!1),T=m({current:1,pageSize:10,total:0}),E=m({keyword:``,venue_id:void 0,reservation_type:void 0,is_active:void 0,schedule_status:void 0,audit_status:void 0}),D=d(null),O=d(``),k=d(!1),A=d(!0),j=d(null),Le=d(``),Re={maxHeight:`70vh`,overflow:`auto`},ze=d(0),M=d(!1),Be=d(`image`),N=d(``),P=d(!1),F=d(!1),I=d(``),L=d([]),Ve=d(null),R=null,z=null,B=d(null),He={lat:31.299379,lng:120.585315};function V(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 Ue(e){let t=e.start_at?V(String(e.start_at)):``,n=e.end_at?V(String(e.end_at)):``;return!t&&!n?`-`:t&&n?t===n?t:`${t} 至 ${n}`:t||n||`-`}let H=m({venue_id:void 0,reservation_type:`phone`,ticket_note:`free`,location:``,lat:void 0,lng:void 0,specific_time:``,offline_reservation_method:``,external_url:``,title:``,contact_name:``,contact_phone:``,start_at:``,end_at:``,detail_html:``,cover_image:``,gallery_media:[],tags:[],sort:0,summary:``,is_active:!0}),U=d(``),W=m({title:``,venue_id:``,start_at:``,end_at:``,reservation_type:``,ticket_note:``,offline_reservation_method:``,external_url:``,location:``,cover_image:``,gallery_media:``,detail_html:``,contact_name:``,contact_phone:``}),We=p({get(){if(H.start_at&&H.end_at)return[H.start_at,H.end_at]},set(e){Array.isArray(e)&&e.length>=2&&e[0]&&e[1]?(H.start_at=String(e[0]),H.end_at=String(e[1])):(H.start_at=``,H.end_at=``)}}),G=p(()=>nt(H.start_at||``,H.end_at||``));function Ge(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 K(e){let t=new FormData;t.append(`file`,e);let{data:n}=await b.post(`/upload`,t);return Ge(n?.url,n?.path)}function Ke(){ze.value+=1}function q(e,t){t&&(Be.value=e,N.value=t,M.value=!0)}function qe(){let e=this.quill,t=document.createElement(`input`);t.type=`file`,t.accept=`image/*`,t.onchange=async()=>{let n=t.files?.[0];if(n)try{let t=await K(n),r=e.getSelection(!0)?.index??Math.max(0,e.getLength()-1);e.insertEmbed(r,`image`,t,`user`),e.setSelection(r+1,0)}catch(e){y.error(e?.response?.data?.message??`图片上传失败`)}},t.click()}function J(){let e=this.quill,t=document.createElement(`input`);t.type=`file`,t.accept=`video/*`,t.onchange=async()=>{let n=t.files?.[0];if(n)try{let t=await K(n),r=e.getSelection(!0)?.index??Math.max(0,e.getLength()-1);e.insertEmbed(r,`video`,t,`user`),e.setSelection(r+1,0)}catch(e){y.error(e?.response?.data?.message??`视频上传失败`)}},t.click()}let Je={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:qe,video:J}}},placeholder:`请输入活动详情内容`};function Ye(){return JSON.stringify(H)}function Y(){Le.value=Ye()}function Xe(){return w.value&&Ye()!==Le.value}let Ze=ae(Xe,`活动表单有未保存改动,确认关闭吗?`);function X(){return S.value?.role===`venue_admin`}function Qe(){return S.value?.full_admin_access===!0}function $e(e){return e===`pending`?`待审核`:e===`rejected`?`已退回`:e===`approved`?`已通过`:`-`}function et(e){return e===`pending`?`orangered`:e===`rejected`?`red`:e===`approved`?`green`:`gray`}function tt(){return new Intl.DateTimeFormat(`en-CA`,{timeZone:`Asia/Shanghai`,year:`numeric`,month:`2-digit`,day:`2-digit`}).format(new Date)}function Z(e,t){return!e||!t?0:e<t?-1:e>t?1:0}function nt(e,t){let n=tt();return!e&&!t?null:e&&!t?Z(n,e)<0?`not_started`:`ongoing`:!e&&t?Z(n,t)>0?`ended`:`ongoing`:Z(n,e)<0?`not_started`:Z(n,t)>0?`ended`:`ongoing`}function rt(e){return e==null?``:e===`not_started`?`未开始`:e===`ended`?`已结束`:`进行中`}function it(e){return e==null?`gray`:e===`not_started`?`arcoblue`:e===`ended`?`gray`:`green`}async function at(e){try{await b.post(`/activities/${e.id}/audit/approve`),y.success(`已通过审核`),await $()}catch(e){y.error(e?.response?.data?.message??`操作失败`)}}function ot(e){D.value=e.id,O.value=``,k.value=!0}async function st(){if(!D.value)return!1;try{return await b.post(`/activities/${D.value}/audit/reject`,{remark:O.value||void 0}),y.success(`已退回`),k.value=!1,await $(),!0}catch(e){return y.error(e?.response?.data?.message??`操作失败`),!1}}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 ct(){return`CRFBZ-NTART-YU4XX-LCDGK-3J456-VKBK2`}function lt(){let e=H.venue_id;if(!e){y.warning(`请先选择场馆`);return}let t=x.value.find(t=>t.id===e);if(!t)return;t.address?.trim()&&(H.location=t.address.trim());let n=Q(t.lat),r=Q(t.lng);n!==void 0&&r!==void 0?(H.lat=n,H.lng=r,y.success(`已填入本馆地址与坐标`)):t.address?.trim()?y.success(`已填入本馆地址,该馆尚未保存经纬度`):y.warning(`该场馆未设置地址与经纬度`)}async function ut(){if(window.TMap)return;let e=ct();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 dt(e,t){let n=window.TMap;R&&(z&&z.setMap(null),z=new n.MultiMarker({map:R,styles:{marker:new n.MarkerStyle({width:24,height:35})},geometries:[{id:`picked`,styleId:`marker`,position:new n.LatLng(e,t)}]}),R.setCenter(new n.LatLng(e,t)))}function ft(e,t){let n=window.TMap;if(!R||!n)return;let r=new n.LatLng(e,t);R.resize?.(),R.setCenter(r),R.setZoom(13),setTimeout(()=>{R.resize?.(),R.setCenter(r)},120)}async function pt(e,t){let{data:n}=await b.get(`/map/reverse-geocode`,{params:{lat:e,lng:t}});B.value={lat:e,lng:t,address:n.address||``}}async function mt(){await ut();let e=window.TMap,t=Q(H.lat)??He.lat,n=Q(H.lng)??He.lng,r=new e.LatLng(t,n);if(R?R.setCenter(r):(R=new e.Map(Ve.value,{center:r,zoom:13}),R.on(`click`,async e=>{let t=Number(e.latLng.getLat().toFixed(6)),n=Number(e.latLng.getLng().toFixed(6));dt(t,n);try{await pt(t,n)}catch(e){y.error(e?.response?.data?.message??`逆地理编码失败`)}})),ft(t,n),Q(H.lat)!=null&&Q(H.lng)!=null){let e=Q(H.lat),t=Q(H.lng);dt(e,t),B.value={lat:e,lng:t,address:(H.location||``).trim()}}else z&&=(z.setMap(null),null),B.value=null}async function ht(){P.value=!0,I.value=``,L.value=[],F.value=!0;try{await n(),setTimeout(async()=>{try{await mt()}catch(e){y.error(e?.message??`地图初始化失败`)}finally{F.value=!1}},250)}catch{F.value=!1}}async function gt(){if(!I.value.trim()){L.value=[];return}F.value=!0;try{let{data:e}=await b.get(`/map/search`,{params:{keyword:I.value,region:`苏州`}});L.value=e}catch(e){y.error(e?.response?.data?.message??`地图搜索失败`)}finally{F.value=!1}}async function _t(e){dt(e.lat,e.lng),B.value={lat:e.lat,lng:e.lng,address:e.address||``};try{await pt(e.lat,e.lng)}catch{}}function vt(){return B.value?(H.lat=B.value.lat,H.lng=B.value.lng,B.value.address?.trim()&&(H.location=B.value.address.trim()),P.value=!1,!0):(y.warning(`请先点击地图或选择搜索结果`),!1)}function yt(e){return e===`phone`?`电话预约`:e===`wechat_mp`?`公众号预约`:e===`offline_visit`||e===`offline`?`线下预约`:e===`other`?`外链跳转`:e===`online`?`线上预约`:e||`—`}function bt(e){let t=Number(e);return Number.isFinite(t)?String(t):`0`}function xt(e){return`浏览 `+bt(e.view_count)}async function $(){C.value=!0;try{let[e,t]=await Promise.all([b.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}}),b.get(`/venues`)]);te.value=e.data.data,T.total=e.data.total,x.value=t.data}catch(e){y.error(e?.response?.data?.message??`加载活动失败`)}finally{C.value=!1}}async function St(){let{data:e}=await b.get(`/me`);if(S.value=e,e?.role===`venue_admin`){let t=e.venues?.[0]?.id;E.venue_id=t,H.venue_id=t}}function Ct(){A.value=!0,j.value=null,Object.keys(W).forEach(e=>{W[e]=``}),H.venue_id=X()?S.value?.venues?.[0]?.id:x.value[0]?.id,H.reservation_type=`phone`,H.ticket_note=`free`,H.location=``,H.lat=void 0,H.lng=void 0,H.specific_time=``,H.offline_reservation_method=``,H.external_url=``,H.title=``,H.contact_name=``,H.contact_phone=``,H.start_at=``,H.end_at=``,H.detail_html=``,H.cover_image=``,H.gallery_media=[],H.tags=[],H.summary=``,H.sort=0,H.is_active=!0,Ke(),Y(),w.value=!0}function wt(e){A.value=!1,j.value=e.id,Object.keys(W).forEach(e=>{W[e]=``}),H.venue_id=e.venue_id;let t=e.reservation_type||`phone`;t===`online`?(H.reservation_type=`phone`,H.ticket_note=`free`):t===`offline`?(H.reservation_type=`offline_visit`,H.ticket_note=String(e.offline_reservation_method||``)===`paid`?`paid`:`free`):t===`other`?(H.reservation_type=`wechat_mp`,H.ticket_note=`free`):t===`phone`||t===`wechat_mp`||t===`offline_visit`?(H.reservation_type=t,H.ticket_note=e.offline_reservation_method===`paid`?`paid`:`free`):(H.reservation_type=`phone`,H.ticket_note=`free`),H.location=e.location||``,H.lat=Q(e.lat),H.lng=Q(e.lng),H.specific_time=e.specific_time||``,H.offline_reservation_method=``,H.external_url=``,H.title=e.title,H.contact_name=e.contact_name??``,H.contact_phone=e.contact_phone??``,H.start_at=e.start_at?V(e.start_at):``,H.end_at=e.end_at?V(e.end_at):``,H.detail_html=e.detail_html||``,H.cover_image=e.cover_image||``,H.gallery_media=Array.isArray(e.gallery_media)?[...e.gallery_media]:[],H.tags=Array.isArray(e.tags)?[...e.tags]:[],H.sort=e.sort??0,H.summary=e.summary||``,H.is_active=e.is_active,Ke(),Y(),w.value=!0}function Tt(){T.current=1,$()}function Et(){E.keyword=``,E.venue_id=X()?S.value?.venues?.[0]?.id:void 0,E.reservation_type=void 0,E.is_active=void 0,E.schedule_status=void 0,E.audit_status=void 0,T.current=1,$()}function Dt(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 Ot(e){try{let t=Dt(e);if(!t)return!1;H.cover_image=await K(t),y.success(`封面上传成功`)}catch(e){y.error(e?.response?.data?.message??`封面上传失败`)}return!1}async function kt(e){try{let t=Dt(e);if(!t)return!1;let n=await K(t),r=t.type.startsWith(`video/`);H.gallery_media.push({type:r?`video`:`image`,url:n}),y.success(`轮播资源上传成功`)}catch(e){y.error(e?.response?.data?.message??`轮播资源上传失败`)}return!1}function At(...e){Ot(e)}function jt(...e){kt(e)}function Mt(){H.cover_image=``}function Nt(e){H.gallery_media.splice(e,1)}function Pt(){let e=U.value.trim();if(!e){y.warning(`请输入标签内容`);return}if(H.tags.includes(e)){y.warning(`标签已存在`);return}H.tags=[...H.tags,e],U.value=``}function Ft(e){let t=[...H.tags];t.splice(e,1),H.tags=t}function It(){Object.keys(W).forEach(e=>{W[e]=``});let e=!0;return H.venue_id||(W.venue_id=`请选择场馆`,e=!1),H.title.trim()||(W.title=`请填写活动名称`,e=!1),H.contact_name.trim()||(W.contact_name=`请填写联系人`,e=!1),H.contact_phone.trim()||(W.contact_phone=`请填写联系电话`,e=!1),H.start_at||(W.start_at=`请选择开始日期`,e=!1),H.end_at||(W.end_at=`请选择结束日期`,e=!1),H.location.trim()||(W.location=`请填写活动地点`,e=!1),H.ticket_note||(W.ticket_note=`请选择门票说明`,e=!1),e}async function Lt(){try{if(!It())return y.warning(`请填写所有必填项`),!1;let e={venue_id:H.venue_id,reservation_type:H.reservation_type,location:H.location.trim(),specific_time:H.specific_time.trim()||null,offline_reservation_method:H.ticket_note===`paid`?`paid`:`free`,external_url:null,title:H.title.trim(),summary:H.summary.trim()||null,quota:0,category:null,start_at:H.start_at||null,end_at:H.end_at||null,address:null,contact_name:H.contact_name.trim()||null,contact_phone:H.contact_phone.trim()||null,lat:Q(H.lat)??null,lng:Q(H.lng)??null,detail_html:H.detail_html||null,cover_image:H.cover_image||null,gallery_media:H.gallery_media,tags:H.tags,reservation_notice:null,open_time:null,sort:Qe()?H.sort:void 0,is_active:H.is_active};return A.value?(await b.post(`/activities`,e),y.success(`创建活动成功`)):(await b.put(`/activities/${j.value}`,e),y.success(`更新活动成功`)),Y(),w.value=!1,await $(),!0}catch(e){return y.error(e?.response?.data?.message??`保存失败`),!1}}oe(Xe,`活动表单有未保存改动,确定要离开吗?`),t(async()=>{await St().catch(()=>void 0),await $()});function Rt(e){T.current=e,$()}async function zt(e){try{await b.post(`/activities/${e.id}/toggle`),y.success(`状态已切换`),await $()}catch(e){y.error(e?.response?.data?.message??`操作失败`)}}async function Bt(e){try{await b.delete(`/activities/${e.id}`),y.success(`删除成功`),await $()}catch(e){let t=e?.response?.data;if(t?.message&&t?.reservation_count!==void 0){y.error(`${t.message}(关联报名数:${t.reservation_count})`);return}y.error(t?.message??`删除失败`)}}return(t,n)=>{let r=i(`a-input`),d=i(`a-option`),p=i(`a-select`),m=i(`a-button`),y=i(`a-space`),b=i(`a-table-column`),S=i(`a-tag`),ae=i(`a-tooltip`),oe=i(`a-popconfirm`),D=i(`a-table`),j=i(`a-card`),Le=i(`a-textarea`),R=i(`a-modal`),z=i(`a-form-item`),He=i(`a-range-picker`),V=i(`a-col`),Ge=i(`a-switch`),K=i(`a-input-number`),Ke=i(`a-row`),qe=i(`a-upload`),J=i(`a-typography-text`),Ye=i(`a-form`),Y=i(`a-typography-paragraph`),Xe=i(`a-list-item`),tt=i(`a-list`),Z=i(`a-alert`);return e(),h(u,null,[_(j,{title:`活动管理 / 活动列表`},{default:a(()=>[_(y,{style:{"margin-bottom":`12px`},wrap:``},{default:a(()=>[_(r,{modelValue:E.keyword,"onUpdate:modelValue":n[0]||=e=>E.keyword=e,placeholder:`搜索活动名称`,style:{width:`220px`}},null,8,[`modelValue`]),_(p,{modelValue:E.venue_id,"onUpdate:modelValue":n[1]||=e=>E.venue_id=e,"allow-clear":``,"allow-search":``,placeholder:`筛选场馆`,style:{width:`220px`},disabled:X()},{default:a(()=>[(e(!0),h(u,null,v(x.value,t=>(e(),s(d,{key:t.id,value:t.id},{default:a(()=>[o(f(t.name),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`,`disabled`]),_(p,{modelValue:E.is_active,"onUpdate:modelValue":n[2]||=e=>E.is_active=e,"allow-clear":``,placeholder:`上架状态`,style:{width:`130px`}},{default:a(()=>[_(d,{value:`1`},{default:a(()=>[...n[28]||=[o(`上架`,-1)]]),_:1}),_(d,{value:`0`},{default:a(()=>[...n[29]||=[o(`下架`,-1)]]),_:1})]),_:1},8,[`modelValue`]),_(p,{modelValue:E.schedule_status,"onUpdate:modelValue":n[3]||=e=>E.schedule_status=e,"allow-clear":``,placeholder:`活动状态`,style:{width:`130px`}},{default:a(()=>[_(d,{value:`not_started`},{default:a(()=>[...n[30]||=[o(`未开始`,-1)]]),_:1}),_(d,{value:`ongoing`},{default:a(()=>[...n[31]||=[o(`进行中`,-1)]]),_:1}),_(d,{value:`ended`},{default:a(()=>[...n[32]||=[o(`已结束`,-1)]]),_:1})]),_:1},8,[`modelValue`]),_(p,{modelValue:E.reservation_type,"onUpdate:modelValue":n[4]||=e=>E.reservation_type=e,"allow-clear":``,placeholder:`报名方式`,style:{width:`140px`}},{default:a(()=>[_(d,{value:`phone`},{default:a(()=>[...n[33]||=[o(`电话预约`,-1)]]),_:1}),_(d,{value:`wechat_mp`},{default:a(()=>[...n[34]||=[o(`公众号预约`,-1)]]),_:1}),_(d,{value:`offline_visit`},{default:a(()=>[...n[35]||=[o(`线下预约`,-1)]]),_:1})]),_:1},8,[`modelValue`]),_(p,{modelValue:E.audit_status,"onUpdate:modelValue":n[5]||=e=>E.audit_status=e,"allow-clear":``,placeholder:`审核状态`,style:{width:`130px`}},{default:a(()=>[_(d,{value:`approved`},{default:a(()=>[...n[36]||=[o(`已通过`,-1)]]),_:1}),_(d,{value:`pending`},{default:a(()=>[...n[37]||=[o(`待审核`,-1)]]),_:1}),_(d,{value:`rejected`},{default:a(()=>[...n[38]||=[o(`已退回`,-1)]]),_:1})]),_:1},8,[`modelValue`]),_(m,{type:`primary`,onClick:Tt},{default:a(()=>[...n[39]||=[o(`查询`,-1)]]),_:1}),_(m,{onClick:Et},{default:a(()=>[...n[40]||=[o(`重置`,-1)]]),_:1}),_(m,{type:`primary`,onClick:Ct},{default:a(()=>[...n[41]||=[o(`新增活动`,-1)]]),_:1})]),_:1}),_(D,{class:`list-data-table`,scroll:{x:Fe},data:te.value,loading:C.value,"row-key":`id`,pagination:{current:T.current,pageSize:T.pageSize,total:T.total,showTotal:!0},onPageChange:Rt},{columns:a(()=>[_(b,{title:``,width:50,ellipsis:!0,tooltip:!0},{cell:a(({rowIndex:e})=>[o(f(ee(ie)(e,T.current,T.pageSize)),1)]),_:1}),_(b,{title:`活动名称`,"data-index":`title`,width:220,"min-width":160,ellipsis:!0,tooltip:!0}),_(b,{title:`活动日期`,width:200,"min-width":160,ellipsis:!0,tooltip:!0},{cell:a(({record:e})=>[o(f(Ue(e)),1)]),_:1}),_(b,{title:`场馆`,width:180,"min-width":120,ellipsis:!0,tooltip:!0},{cell:a(({record:e})=>[o(f(e.venue?.name||`-`),1)]),_:1}),_(b,{title:`报名方式`,width:130},{cell:a(({record:e})=>[o(f(yt(e.reservation_type)),1)]),_:1}),_(b,{title:`浏览量`,width:100},{cell:a(({record:e})=>[o(f(xt(e)),1)]),_:1}),_(b,{title:`活动状态`,width:80},{cell:a(({record:e})=>[_(S,{color:it(e.schedule_status)},{default:a(()=>[o(f(rt(e.schedule_status)),1)]),_:2},1032,[`color`])]),_:1}),_(b,{title:`上架状态`,width:72},{cell:a(({record:e})=>[_(S,{color:e.is_active?`green`:`gray`},{default:a(()=>[o(f(e.is_active?`上架`:`下架`),1)]),_:2},1032,[`color`])]),_:1}),_(b,{title:`审核状态`,width:88},{cell:a(({record:t})=>[t.audit_status===`rejected`&&t.audit_remark?(e(),s(ae,{key:0,content:t.audit_remark},{default:a(()=>[_(S,{color:et(t.audit_status)},{default:a(()=>[o(f($e(t.audit_status)),1)]),_:2},1032,[`color`])]),_:2},1032,[`content`])):(e(),s(S,{key:1,color:et(t.audit_status)},{default:a(()=>[o(f($e(t.audit_status)),1)]),_:2},1032,[`color`]))]),_:1}),_(b,{title:`操作`,width:300,"min-width":280,fixed:`right`,align:`left`},{cell:a(({record:t})=>[_(y,{wrap:``,size:4,justify:`start`},{default:a(()=>[_(m,{type:`text`,onClick:e=>wt(t)},{default:a(()=>[...n[42]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),Qe()&&(t.audit_status===`pending`||t.audit_status===`rejected`)?(e(),h(u,{key:0},[_(m,{type:`text`,status:`success`,onClick:e=>at(t)},{default:a(()=>[...n[43]||=[o(`通过`,-1)]]),_:1},8,[`onClick`]),_(m,{type:`text`,status:`danger`,onClick:e=>ot(t)},{default:a(()=>[...n[44]||=[o(`退回`,-1)]]),_:1},8,[`onClick`])],64)):c(``,!0),_(m,{type:`text`,status:`warning`,onClick:e=>zt(t)},{default:a(()=>[o(f(t.is_active?`下架`:`上架`),1)]),_:2},1032,[`onClick`]),_(oe,{content:`确认删除该活动?`,onOk:e=>Bt(t)},{default:a(()=>[_(m,{type:`text`,status:`danger`},{default:a(()=>[...n[45]||=[o(`删除`,-1)]]),_:1})]),_:1},8,[`onOk`])]),_:2},1024)]),_:1})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1}),_(R,{visible:k.value,"onUpdate:visible":n[7]||=e=>k.value=e,title:`退回活动`,"on-before-ok":st},{default:a(()=>[_(Le,{modelValue:O.value,"onUpdate:modelValue":n[6]||=e=>O.value=e,placeholder:`退回说明(选填)`,"auto-size":{minRows:3,maxRows:8}},null,8,[`modelValue`])]),_:1},8,[`visible`]),_(R,{visible:w.value,"onUpdate:visible":n[24]||=e=>w.value=e,title:A.value?`新增活动`:`编辑活动`,width:`70%`,"body-style":Re,"on-before-cancel":ee(Ze),"confirm-loading":Ie.value,"on-before-ok":Lt},{default:a(()=>[_(Ye,{model:H,layout:`vertical`,class:`admin-modal-form`},{default:a(()=>[_(z,{label:`活动名称`,required:``,help:W.title},l({default:a(()=>[_(r,{modelValue:H.title,"onUpdate:modelValue":n[8]||=e=>H.title=e},null,8,[`modelValue`])]),_:2},[W.title?{name:`help`,fn:a(()=>[g(`span`,se,f(W.title),1)]),key:`0`}:void 0]),1032,[`help`]),_(z,{label:`举办场馆`,required:``,help:W.venue_id},l({default:a(()=>[_(p,{modelValue:H.venue_id,"onUpdate:modelValue":n[9]||=e=>H.venue_id=e,"allow-search":``,disabled:X()},{default:a(()=>[(e(!0),h(u,null,v(x.value,t=>(e(),s(d,{key:t.id,value:t.id},{default:a(()=>[o(f(t.name),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`,`disabled`])]),_:2},[W.venue_id?{name:`help`,fn:a(()=>[g(`span`,ce,f(W.venue_id),1)]),key:`0`}:void 0]),1032,[`help`]),_(z,{label:`联系人`,required:``,help:W.contact_name},l({default:a(()=>[_(r,{modelValue:H.contact_name,"onUpdate:modelValue":n[10]||=e=>H.contact_name=e,placeholder:`请输入联系人`,"allow-clear":``},null,8,[`modelValue`])]),_:2},[W.contact_name?{name:`help`,fn:a(()=>[g(`span`,le,f(W.contact_name),1)]),key:`0`}:void 0]),1032,[`help`]),_(z,{label:`联系电话`,required:``,help:W.contact_phone},l({default:a(()=>[_(r,{modelValue:H.contact_phone,"onUpdate:modelValue":n[11]||=e=>H.contact_phone=e,placeholder:`请输入联系电话`,"allow-clear":``},null,8,[`modelValue`])]),_:2},[W.contact_phone?{name:`help`,fn:a(()=>[g(`span`,ue,f(W.contact_phone),1)]),key:`0`}:void 0]),1032,[`help`]),_(z,{label:`活动日期`,required:``,help:W.start_at||W.end_at},l({default:a(()=>[_(He,{modelValue:We.value,"onUpdate:modelValue":n[12]||=e=>We.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:a(()=>[g(`span`,de,f(W.start_at||W.end_at),1)]),key:`0`}:void 0]),1032,[`help`]),_(z,{label:`具体时间`},{default:a(()=>[_(r,{modelValue:H.specific_time,"onUpdate:modelValue":n[13]||=e=>H.specific_time=e,placeholder:`如:每日 14:00–16:00;或 活动当日上午`,"allow-clear":``},null,8,[`modelValue`])]),_:1}),_(z,{label:`报名方式`,required:``,help:W.reservation_type},l({default:a(()=>[_(p,{modelValue:H.reservation_type,"onUpdate:modelValue":n[14]||=e=>H.reservation_type=e},{default:a(()=>[_(d,{value:`phone`},{default:a(()=>[...n[46]||=[o(`电话预约`,-1)]]),_:1}),_(d,{value:`wechat_mp`},{default:a(()=>[...n[47]||=[o(`公众号预约`,-1)]]),_:1}),_(d,{value:`offline_visit`},{default:a(()=>[...n[48]||=[o(`线下预约`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:2},[W.reservation_type?{name:`help`,fn:a(()=>[g(`span`,fe,f(W.reservation_type),1)]),key:`0`}:void 0]),1032,[`help`]),_(z,{label:`门票说明`,required:``,help:W.ticket_note},l({default:a(()=>[_(p,{modelValue:H.ticket_note,"onUpdate:modelValue":n[15]||=e=>H.ticket_note=e},{default:a(()=>[_(d,{value:`free`},{default:a(()=>[...n[49]||=[o(`免费`,-1)]]),_:1}),_(d,{value:`paid`},{default:a(()=>[...n[50]||=[o(`收费`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:2},[W.ticket_note?{name:`help`,fn:a(()=>[g(`span`,pe,f(W.ticket_note),1)]),key:`0`}:void 0]),1032,[`help`]),_(z,{label:`标签`},{default:a(()=>[g(`div`,me,[g(`div`,he,[_(r,{modelValue:U.value,"onUpdate:modelValue":n[16]||=e=>U.value=e,class:`activity-form-tags__input`,placeholder:`请输入标签内容`},null,8,[`modelValue`]),_(m,{type:`primary`,class:`activity-form-tags__save`,onClick:Pt},{default:a(()=>[...n[51]||=[o(`保存标签`,-1)]]),_:1})]),g(`div`,ge,[(e(!0),h(u,null,v(H.tags,(t,n)=>(e(),s(S,{key:`${t}-${n}`,closable:``,style:{"margin-bottom":`0`},onClose:e=>Ft(n)},{default:a(()=>[o(f(t),1)]),_:2},1032,[`onClose`]))),128)),H.tags.length?c(``,!0):(e(),h(`span`,_e,`暂无标签`))])])]),_:1}),_(Ke,{class:`admin-modal-form__full`,gutter:16},{default:a(()=>[_(V,{xs:24,sm:8},{default:a(()=>[_(z,{label:`活动状态`},{default:a(()=>[G.value?(e(),s(S,{key:0,color:it(G.value)},{default:a(()=>[o(f(rt(G.value)),1)]),_:1},8,[`color`])):(e(),h(`span`,ve,`—`))]),_:1})]),_:1}),_(V,{xs:24,sm:8},{default:a(()=>[_(z,{label:`上架状态`},{default:a(()=>[_(Ge,{modelValue:H.is_active,"onUpdate:modelValue":n[17]||=e=>H.is_active=e},null,8,[`modelValue`]),g(`span`,ye,f(H.is_active?`上架`:`下架`),1)]),_:1})]),_:1}),_(V,{xs:24,sm:8},{default:a(()=>[_(z,{label:`排序`},{default:a(()=>[_(K,{modelValue:H.sort,"onUpdate:modelValue":n[18]||=e=>H.sort=e,min:0,disabled:!Qe(),style:{width:`100%`}},null,8,[`modelValue`,`disabled`])]),_:1})]),_:1})]),_:1}),_(z,{label:`活动地点`,required:``,class:`admin-modal-form__full`,help:W.location},l({extra:a(()=>[n[54]||=o(`可地图选点自动填写地址与经纬度,或一键带入当前所选场馆的地址与坐标(若已配置)。`,-1)]),default:a(()=>[g(`div`,be,[_(r,{modelValue:H.location,"onUpdate:modelValue":n[19]||=e=>H.location=e,class:`activity-address-coord-row__address`,placeholder:`如:××区××路××号 或 线上平台`,"allow-clear":``},null,8,[`modelValue`]),_(K,{modelValue:H.lng,"onUpdate:modelValue":n[20]||=e=>H.lng=e,precision:6,placeholder:`经度`,class:`activity-address-coord-row__lng`,"hide-button":``,disabled:``},null,8,[`modelValue`]),_(K,{modelValue:H.lat,"onUpdate:modelValue":n[21]||=e=>H.lat=e,precision:6,placeholder:`纬度`,class:`activity-address-coord-row__lat`,"hide-button":``,disabled:``},null,8,[`modelValue`]),_(m,{type:`primary`,class:`activity-address-coord-row__map`,onClick:ht},{default:a(()=>[...n[52]||=[o(`地图选点`,-1)]]),_:1}),_(m,{onClick:lt},{default:a(()=>[...n[53]||=[o(`使用本馆地址`,-1)]]),_:1})])]),_:2},[W.location?{name:`help`,fn:a(()=>[g(`span`,xe,f(W.location),1)]),key:`0`}:void 0]),1032,[`help`]),_(z,{label:`活动图片`,class:`admin-modal-form__full`},{default:a(()=>[g(`div`,Se,[g(`div`,Ce,[n[58]||=g(`div`,{class:`activity-cover-carousel-row__sub`},`活动封面图`,-1),_(y,{direction:`vertical`,fill:``,style:{width:`100%`}},{default:a(()=>[_(qe,{"auto-upload":!1,"show-file-list":!1,accept:`image/*`,"before-upload":Ot,onChange:At},{"upload-button":a(()=>[_(m,null,{default:a(()=>[...n[55]||=[o(`上传封面`,-1)]]),_:1})]),_:1}),_(J,{type:`secondary`},{default:a(()=>[...n[56]||=[o(`图片尺寸推荐 1200×600`,-1)]]),_:1}),H.cover_image?(e(),s(y,{key:0,direction:`vertical`,align:`start`},{default:a(()=>[g(`img`,{src:H.cover_image,class:`activity-cover-thumb`,onClick:n[22]||=e=>q(`image`,H.cover_image)},null,8,we),_(m,{size:`mini`,status:`danger`,onClick:Mt},{default:a(()=>[...n[57]||=[o(`删除封面`,-1)]]),_:1})]),_:1})):c(``,!0)]),_:1})]),g(`div`,Te,[n[62]||=g(`div`,{class:`activity-cover-carousel-row__sub`},`活动展示图片`,-1),g(`div`,Ee,[g(`div`,De,[_(qe,{"auto-upload":!1,"show-file-list":!1,multiple:``,accept:`image/*,video/*`,"before-upload":kt,onChange:jt},{"upload-button":a(()=>[_(m,{type:`primary`},{default:a(()=>[...n[59]||=[o(`新增展示资源`,-1)]]),_:1})]),_:1}),_(J,{type:`secondary`,style:{"margin-top":`12px`,display:`block`}},{default:a(()=>[...n[60]||=[o(`图片尺寸推荐 1200×600`,-1)]]),_:1})]),g(`div`,Oe,[(e(!0),h(u,null,v(H.gallery_media,(t,r)=>(e(),h(`div`,{key:t.url+r,class:`activity-gallery-item`},[t.type===`image`?(e(),h(`img`,{key:0,src:t.url,class:`activity-gallery-thumb`,onClick:e=>q(`image`,t.url)},null,8,ke)):(e(),h(`video`,{key:1,src:t.url,controls:``,class:`activity-gallery-thumb activity-gallery-thumb--video`,onClick:ne(e=>q(`video`,t.url),[`stop`])},null,8,Ae)),_(m,{size:`mini`,status:`danger`,onClick:e=>Nt(r)},{default:a(()=>[...n[61]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]))),128))])])])])]),_:1}),_(z,{label:`活动详情`,class:`admin-modal-form__full`},{default:a(()=>[(e(),s(re,{modelValue:H.detail_html,"onUpdate:modelValue":n[23]||=e=>H.detail_html=e,"editor-options":Je,"field-key":`activity-detail`,"min-height":280,key:`activity-detail-${ze.value}`},null,8,[`modelValue`]))]),_:1})]),_:1},8,[`model`])]),_:1},8,[`visible`,`title`,`on-before-cancel`,`confirm-loading`]),_(R,{visible:M.value,"onUpdate:visible":n[25]||=e=>M.value=e,title:`媒体预览`,width:`72%`,footer:!1},{default:a(()=>[Be.value===`image`&&N.value?(e(),h(`img`,{key:0,src:N.value,style:{display:`block`,"max-width":`100%`,"max-height":`72vh`,margin:`0 auto`}},null,8,je)):Be.value===`video`&&N.value?(e(),h(`video`,{key:1,src:N.value,controls:``,autoplay:``,style:{display:`block`,width:`100%`,"max-height":`72vh`}},null,8,Me)):c(``,!0)]),_:1},8,[`visible`]),_(R,{visible:P.value,"onUpdate:visible":n[27]||=e=>P.value=e,title:`地图选点(腾讯地图)`,width:`70%`,"body-style":Re,"on-before-ok":vt},{default:a(()=>[_(y,{style:{"margin-bottom":`12px`,width:`100%`}},{default:a(()=>[_(r,{modelValue:I.value,"onUpdate:modelValue":n[26]||=e=>I.value=e,placeholder:`输入关键词搜索,如:苏州博物馆`,style:{width:`420px`}},null,8,[`modelValue`]),_(m,{type:`primary`,loading:F.value,onClick:gt},{default:a(()=>[...n[63]||=[o(`搜索`,-1)]]),_:1},8,[`loading`])]),_:1}),g(`div`,Ne,[g(`div`,{ref_key:`mapContainerRef`,ref:Ve,style:{height:`520px`,flex:`1`,border:`1px solid #e5e6eb`}},null,512),g(`div`,Pe,[n[64]||=g(`div`,{style:{"margin-bottom":`8px`,color:`#86909c`}},`搜索结果`,-1),_(tt,{size:`small`},{default:a(()=>[(e(!0),h(u,null,v(L.value,(t,n)=>(e(),s(Xe,{key:n,onClick:e=>_t(t)},{default:a(()=>[_(Y,{ellipsis:{rows:1}},{default:a(()=>[o(f(t.title),1)]),_:2},1024),_(J,{type:`secondary`},{default:a(()=>[o(f(t.address),1)]),_:2},1024)]),_:2},1032,[`onClick`]))),128))]),_:1})])]),B.value?(e(),s(Z,{key:0,type:`info`,style:{"margin-top":`12px`}},{default:a(()=>[o(` 已选坐标:`+f(B.value.lng)+`, `+f(B.value.lat),1),n[65]||=g(`br`,null,null,-1),o(` 地址:`+f(B.value.address||`-`),1)]),_:1})):c(``,!0)]),_:1},8,[`visible`])],64)}}}),[[`__scopeId`,`data-v-93c1b4e3`]]);export{C as default}; |