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