|
|
import{n as e,st as t}from"./axios-CiYFffbI.js";import{I as n,N as r,O as i,Tt 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 y,v as b,y as x,z as S}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as C}from"./http-LCi9aT1G.js";import{d as w,s as ee,u as te}from"./index-VU3bhAhI.js";import{t as ne}from"./RichEditorField-CsUyj0Tm.js";import{n as re,t as ie}from"./adminMediaLimits-BbvlGcmA.js";import{t as ae}from"./listTableRowIndex-IQDARgc9.js";import{a as oe,c as se,i as T,n as E,o as ce,r as le,s as D,t as ue}from"./mapGeo-ARgXuZ-4.js";import{t as O}from"./mediaUrl-DMUQQoCr.js";var de={key:1},fe={key:0,class:`venue-audit-panel`},pe={style:{display:`flex`,gap:`16px`,width:`100%`}},me={style:{flex:`1 1 50%`,"min-width":`0`}},he={style:{flex:`1 1 50%`,"min-width":`0`}},ge=[`src`],_e={class:`venue-address-coord-row venue-audit-address-row`},ve={class:`venue-cover-carousel-wrap`},ye={class:`venue-cover-carousel-row__col`},be=[`src`],xe={class:`venue-cover-carousel-row__col`},Se=[`src`],Ce=[`src`],we={key:0,style:{"margin-left":`8px`}},Te={key:1,style:{"margin-top":`4px`,color:`var(--color-text-3)`}},Ee={key:1,style:{color:`var(--color-text-3)`}},De={style:{color:`#f53f3f`}},Oe={style:{color:`#f53f3f`}},ke={style:{color:`#f53f3f`}},Ae={style:{color:`#f53f3f`}},je={style:{color:`#f53f3f`}},Me={style:{color:`#f53f3f`}},Ne={style:{color:`#f53f3f`}},Pe={style:{color:`#f53f3f`}},Fe={style:{color:`#f53f3f`}},Ie={style:{color:`#f53f3f`}},Le={style:{color:`#f53f3f`}},Re={style:{"margin-left":`8px`,color:`var(--color-text-3)`}},ze={style:{"margin-left":`8px`,color:`var(--color-text-3)`}},Be={style:{display:`flex`,gap:`16px`,width:`100%`}},Ve={style:{flex:`1 1 50%`,"min-width":`0`}},He={style:{flex:`1 1 50%`,"min-width":`0`}},Ue={key:0,class:`venue-gallery-grid`,style:{"margin-top":`8px`}},We=[`src`,`onClick`],Ge={key:0,style:{color:`#f53f3f`}},Ke={style:{color:`#f53f3f`}},qe={class:`venue-address-coord-row`},Je={key:0,style:{color:`#f53f3f`}},Ye={class:`venue-cover-carousel-wrap`},Xe={class:`venue-cover-carousel-row__col`},Ze=[`src`],Qe={key:0,style:{color:`#f53f3f`,"margin-top":`4px`,"font-size":`12px`}},$e={class:`venue-cover-carousel-row__col`},et={style:{display:`flex`,"flex-direction":`column`,"align-items":`flex-start`,width:`100%`}},tt={style:{width:`100%`,"margin-bottom":`8px`}},nt={class:`venue-gallery-grid`},rt=[`src`,`onClick`],it=[`src`,`onClick`],at={key:0,style:{color:`#f53f3f`,"margin-top":`4px`,"font-size":`12px`}},ot={key:0,style:{color:`#f53f3f`}},st=[`src`],ct=[`src`],lt={style:{display:`flex`,gap:`12px`}},ut={style:{width:`280px`,height:`520px`,overflow:`auto`,border:`1px solid #e5e6eb`,padding:`8px`}},dt=2130,ft=te(x({__name:`VenueList`,setup(x){let te=p(!1),ft=p(!1),pt=p(!1),mt=p(!1),k=p(!1),ht=p(``),gt=p([]),_t=p(!1),A=p(null),vt=p([]),j=p([]),M=p([]),yt=p([]),N=p([]),P=p([]),F=p([]),bt=p(null),xt=p(null),St=p(0),Ct=p(!1),wt=p(`image`),Tt=p(``),I=null,L={overlay:null},R=p(null),z={lat:31.299379,lng:120.585315},Et={maxHeight:`70vh`,overflow:`auto`},Dt={height:`70vh`,overflow:`auto`},B=g({name:``,venue_types:``,district:``,unit_name:``,ticket_type:``,booking_mode:``,open_mode:``,visit_form:``,open_time:``,consultation_hours:``,contact_phone:``,address:``,lat:``,lng:``,booking_method:``,ticket_content:``,cover_image:``,gallery_media:``,detail_html:``});function Ot(){Object.keys(B).forEach(e=>{B[e]=``})}let V=g({keyword:``,district:``,venue_type:``,ticket_type:``,booking_mode:``,open_mode:``,appointment_type:``,is_active:``,is_included_in_stats:``,audit_status:``}),H=g({current:1,pageSize:10,total:0}),kt=ee(),At=p(null),jt=p(``),Mt=p(!1),U=p(!1),W=p(`view`),Nt=p(!1),G=p(null),Pt=p([]),Ft=p([]),It=h(()=>new Set(Ft.value.map(e=>e.field)));function Lt(e){return It.value.has(e)}function K(e){return W.value===`audit`&&Lt(e)}let Rt=h(()=>W.value===`audit`?`场馆审核`:`查看场馆`);function zt(e){if(e==null)return`—`;let t=String(e);return t=t.replace(/<[^>]+>/g,` `),t=t.replace(/ /gi,` `),t=t.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),t=t.replace(/\s+/g,` `).trim(),t||`—`}function Bt(e){return e===!0||e===1||e===`1`?`是`:`否`}function Vt(e){if(!e)return`—`;let t=sn(e);return t.length?t.map(e=>Q(M.value,e)).join(`、`):`—`}function Ht(e){return e==null?`—`:String(e).trim()||`—`}function q(e){let t=e.last_approved_snapshot;return(e.audit_status===`pending`||e.audit_status===`rejected`)&&t&&typeof t==`object`&&!Array.isArray(t)?{...e,...t,id:e.id,audit_status:e.audit_status,audit_remark:e.audit_remark,last_approved_snapshot:e.last_approved_snapshot}:e}let J=h(()=>{let e=G.value;return e?W.value===`audit`?e:q(e):null});function Y(e,t=!1){let n=J.value;if(!n)return`—`;if(e===`venue_types`)return Vt(n);if(e===`district`)return Q(j.value,n.district)||`—`;if(e===`ticket_type`)return Q(F.value,n.ticket_type)||`—`;if(e===`booking_mode`)return Q(N.value,n.booking_mode)||`—`;if(e===`open_mode`)return Q(P.value,n.open_mode)||`—`;if(e===`is_active`)return Bt(n.is_active);if(e===`is_included_in_stats`)return Bt(n.is_included_in_stats);let r=n[e];return t?zt(r):Ht(r)}function Ut(e){if(e==null||e===``)return;let t=typeof e==`number`?e:parseFloat(String(e).trim());return Number.isFinite(t)?t:void 0}function Wt(){let t=this.quill,n=document.createElement(`input`);n.type=`file`,n.accept=`image/*`,n.onchange=async()=>{let r=n.files?.[0];if(!r)return;let i=re(r);if(i){e.warning(i);return}try{let n=await ln(r),i=t.getSelection(!0)?.index??Math.max(0,t.getLength()-1);t.insertEmbed(i,`image`,n,`user`),t.setSelection(i+1,0),e.success(`图片已上传并插入`)}catch(t){e.error(t?.response?.data?.message??`图片上传失败`)}},n.click()}function Gt(){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 n=await ln(r),i=t.getSelection(!0)?.index??Math.max(0,t.getLength()-1);t.insertEmbed(i,`video`,n,`user`),t.setSelection(i+1,0),e.success(`视频已上传并插入`)}catch(t){e.error(t?.response?.data?.message??`视频上传失败`)}},n.click()}let Kt={toolbar:{container:[[{header:[1,2,3,!1]}],[`bold`,`italic`,`underline`,`strike`],[{color:[]},{background:[]}],[{list:`ordered`},{list:`bullet`}],[{align:[]}],[`link`,`image`,`video`],[`clean`]],handlers:{image:Wt,video:Gt}}},qt={modules:Kt,placeholder:`请输入场馆详情内容`},Jt={modules:Kt,placeholder:``},X=g({name:``,venue_types:[],unit_name:``,district:``,ticket_type:``,appointment_type:``,booking_mode:``,open_mode:``,open_time:``,reservation_notice:``,ticket_content:``,booking_method:``,visit_form:``,consultation_hours:``,booking_qr_media:[],address:``,contact_phone:``,lat:void 0,lng:void 0,cover_image:``,gallery_media:[],detail_html:``,sort:0,is_active:!0,is_included_in_stats:!1});function Z(){return bt.value?.full_admin_access===!0}function Yt(e){return e===`pending`?`待审核`:e===`rejected`?`已退回`:e===`approved`?`已通过`:e||`—`}function Xt(e){return e===`approve`?`通过`:e===`reject`?`退回`:e===`edit_submit`?`提交审核`:e}async function Zt(t,n=`view`){W.value=n===`audit`&&t.audit_status===`pending`&&Z()?`audit`:`view`,U.value=!0,Nt.value=!0,G.value=t,Pt.value=[],Ft.value=[];try{let[{data:e},{data:n}]=await Promise.all([C.get(`/venues/${t.id}/audit-detail`),C.get(`/venues/${t.id}/audit-logs`)]);G.value=e.venue??t,Ft.value=Array.isArray(e.changes)?e.changes:[],Pt.value=Array.isArray(n)?n:[]}catch(t){e.error(t?.response?.data?.message??`加载场馆详情失败`)}finally{Nt.value=!1}}async function Qt(){let t=G.value;if(t)try{await C.post(`/venues/${t.id}/audit/approve`),e.success(`已通过审核`),U.value=!1,await $()}catch(t){e.error(t?.response?.data?.message??`操作失败`)}}function $t(e){At.value=e.id,jt.value=``,Mt.value=!0}async function en(){if(!At.value)return!1;try{return await C.post(`/venues/${At.value}/audit/reject`,{remark:jt.value||void 0}),e.success(`已退回`),Mt.value=!1,await $(),!0}catch(t){return e.error(t?.response?.data?.message??`操作失败`),!1}}async function tn(t){try{await C.delete(`/venues/${t.id}`),e.success(`删除成功`),await $()}catch(t){e.error(t?.response?.data?.message??`删除失败`)}}let nn=p(!1);async function rn(){nn.value=!0;try{let t=await C.get(`/venues/export`,{responseType:`blob`,timeout:12e4}),n=t.data;if(n.type&&(n.type.includes(`json`)||n.type.includes(`text/html`))){let t=await n.text(),r=`导出失败`;try{let e=JSON.parse(t);e?.message&&(r=e.message)}catch{}e.error(r);return}let r=t.headers[`content-disposition`],i=`场馆导出-${new Date().toISOString().slice(0,10)}.csv`;if(r){let e=/filename\*=(?:UTF-8'')?([^;]+)|filename="?([^";]+)/i.exec(r),t=decodeURIComponent((e?.[1]||e?.[2]||``).trim().replace(/^"+|"+$/g,``));t&&(i=t)}let a=URL.createObjectURL(n),o=document.createElement(`a`);o.href=a,o.download=i,o.click(),URL.revokeObjectURL(a),e.success(`已导出`)}catch(t){e.error(t?.response?.data?.message??t?.message??`导出失败`)}finally{nn.value=!1}}function an(e){let t=(e||``).trim();return t?t.replace(/<[^>]+>/g,` `).replace(/\s+/g,` `):`-`}function Q(e,t){return t?e.find(e=>e.item_value===t)?.item_label||t:`-`}function on(e,t,n=`arcoblue`){return t&&e.find(e=>e.item_value===t)?.item_remark||n}function sn(e){let t=e.venue_types;return Array.isArray(t)&&t.length?t.map(e=>String(e)):e.venue_type?[String(e.venue_type)]:[]}function cn(e,t){let n=String(e||``).trim();if(n)return O(n);let r=String(t||``).trim();return r?O(r):``}async function ln(e){let t=new FormData;t.append(`file`,e);let n=(await C.post(`/upload`,t))?.data||{};return cn(n.url,n.path)}function un(){St.value+=1}function dn(e,t){t&&(wt.value=e,Tt.value=O(t),Ct.value=!0)}function fn(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)){for(let t of e)n.push(t);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`||Array.isArray(t))&&n.push(t)}}}return null}async function $(){te.value=!0;try{let{data:e}=await C.get(`/venues`,{params:{keyword:V.keyword||void 0,district:V.district||void 0,venue_type:V.venue_type||void 0,ticket_type:V.ticket_type||void 0,booking_mode:V.booking_mode||void 0,open_mode:V.open_mode||void 0,appointment_type:V.appointment_type||void 0,is_active:V.is_active||void 0,is_included_in_stats:V.is_included_in_stats||void 0,audit_status:V.audit_status||void 0}});vt.value=e,H.total=e.length}catch(t){e.error(t?.response?.data?.message??`加载场馆失败`)}finally{te.value=!1}}async function pn(){let{data:e}=await C.get(`/dict-items`,{params:{dict_type:`district`,active_only:1}});j.value=e}async function mn(){let{data:e}=await C.get(`/dict-items`,{params:{dict_type:`venue_type`,active_only:1}});M.value=e}async function hn(){let{data:e}=await C.get(`/dict-items`,{params:{dict_type:`venue_appointment_type`,active_only:1}});yt.value=e}async function gn(){let{data:e}=await C.get(`/dict-items`,{params:{dict_type:`venue_open_mode`,active_only:1}});P.value=e}async function _n(){let{data:e}=await C.get(`/dict-items`,{params:{dict_type:`venue_booking_mode`,active_only:1}});N.value=e}async function vn(){let{data:e}=await C.get(`/dict-items`,{params:{dict_type:`ticket_type`,active_only:1}});F.value=e}async function yn(){let{data:e}=await C.get(`/me`);bt.value=e}function bn(){_t.value=!0,A.value=null,Ot(),X.name=``,X.venue_types=[],X.unit_name=``,X.district=``,X.ticket_type=``,X.booking_mode=``,X.open_mode=``,X.open_time=``,X.reservation_notice=``,X.ticket_content=``,X.booking_method=``,X.visit_form=``,X.consultation_hours=``,X.booking_qr_media=[],X.address=``,X.contact_phone=``,X.lat=void 0,X.lng=void 0,X.cover_image=``,X.gallery_media=[],X.detail_html=``,X.sort=0,X.is_active=!0,X.is_included_in_stats=!1,un(),pt.value=!0}function xn(e){_t.value=!1,A.value=e.id,Ot(),X.name=e.name,X.venue_types=Array.isArray(e.venue_types)&&e.venue_types.length?[...e.venue_types]:e.venue_type?[e.venue_type]:[],X.unit_name=e.unit_name??``,X.district=e.district??``,X.ticket_type=e.ticket_type??``,X.appointment_type=e.appointment_type??``,X.booking_mode=e.booking_mode??``,X.open_mode=e.open_mode??``,X.open_time=e.open_time??``,X.reservation_notice=e.reservation_notice??``,X.ticket_content=e.ticket_content??``,X.booking_method=e.booking_method??``,X.visit_form=e.visit_form??``,X.consultation_hours=e.consultation_hours??``;{let t=e.booking_qr_media;Array.isArray(t)&&t.length?X.booking_qr_media=t.filter(e=>e&&e.url&&e.type===`image`).map(e=>({type:`image`,url:String(e.url)})):X.booking_qr_media=[]}X.address=e.address??``,X.contact_phone=e.contact_phone??``,X.lat=Ut(e.lat),X.lng=Ut(e.lng),X.cover_image=e.cover_image??``,X.gallery_media=Array.isArray(e.gallery_media)?[...e.gallery_media]:[],X.detail_html=e.detail_html??``;let t=e.sort;X.sort=typeof t==`number`&&Number.isFinite(t)?t:parseInt(String(t??`0`),10)||0,X.is_active=e.is_active,X.is_included_in_stats=e.is_included_in_stats??!1,un(),pt.value=!0}async function Sn(t){try{let n=fn(t);if(!n)return e.warning(`未识别到上传文件`),!1;let r=re(n);if(r)return e.warning(r),!1;X.cover_image=await ln(n),e.success(`封面上传成功`)}catch(t){e.error(t?.response?.data?.message??`封面上传失败`)}return!1}async function Cn(t){try{let n=fn(t);if(!n)return e.warning(`未识别到上传文件`),!1;let r=re(n);if(r)return e.warning(r),!1;let i=await ln(n);if(!i)return e.error(`上传成功但未返回可用地址`),!1;let a=n.type.startsWith(`video/`);X.gallery_media.push({type:a?`video`:`image`,url:i}),e.success(`轮播资源上传成功`)}catch(t){e.error(t?.response?.data?.message??`轮播资源上传失败`)}return!1}function wn(...e){Sn(e)}function Tn(...e){Cn(e)}function En(e){X.gallery_media.splice(e,1)}async function Dn(t){try{if(!t)return e.warning(`未识别到上传文件`),!1;if(!t.type.startsWith(`image/`))return e.warning(`仅支持图片`),!1;let n=re(t);if(n)return e.warning(n),!1;let r=await ln(t);if(!r)return e.error(`上传成功但未返回可用地址`),!1;X.booking_qr_media.push({type:`image`,url:r}),e.success(`已上传`)}catch(t){e.error(t?.response?.data?.message??`上传失败`)}return!1}function On(e){X.booking_qr_media.splice(e,1)}function kn(){X.cover_image=``}function An(t){let n=t?.target,r=(n?.getAttribute?.(`src`)||n?.src||``).trim();!r||r===`about:blank`||e.error(`图片地址无法访问,请检查后端 storage 访问配置`)}function jn(){H.current=1,$()}function Mn(e){H.current=e}function Nn(e,t){I&&(se(I,L,e,t),D(I,t,e,13))}async function Pn(e,t){let n=R.value?.address||``,r=await ue(e,t);R.value={lat:e,lng:t,address:(r.address||``).trim()||n},r.district&&j.value.some(e=>e.item_value===r.district)&&(X.district=r.district)}async function Fn(){await ce();let t=typeof X.lat==`number`?X.lat:z.lat,n=typeof X.lng==`number`?X.lng:z.lng;xt.value&&(I?D(I,n,t,13):(I=oe(xt.value,n,t,13),le(I,async(t,n)=>{Nn(t,n),R.value={lat:t,lng:n,address:``};try{await Pn(t,n)}catch(t){e.error(t?.message??t?.response?.data?.message??`逆地理编码失败`)}})),D(I,n,t,13),X.lat!==void 0&&X.lng!==void 0?(Nn(X.lat,X.lng),R.value={lat:X.lat,lng:X.lng,address:X.address||``}):(T(I,L.overlay),L.overlay=null,R.value=null))}async function In(){mt.value=!0,ht.value=``,gt.value=[],k.value=!0;try{await i(),setTimeout(async()=>{try{await Fn()}catch(t){e.error(t?.message??`地图初始化失败`)}finally{k.value=!1}},250)}catch{k.value=!1}}async function Ln(){if(!ht.value.trim()){gt.value=[];return}k.value=!0;try{if(!I)throw Error(`地图未初始化`);gt.value=await E(I,ht.value)}catch(t){e.error(t?.message??t?.response?.data?.message??`地图搜索失败`)}finally{k.value=!1}}async function Rn(e){Nn(e.lat,e.lng);let t=[e.title,e.address].filter(Boolean).join(` · `);R.value={lat:e.lat,lng:e.lng,address:t};try{await Pn(e.lat,e.lng)}catch{}}function zn(){return R.value?(X.lat=R.value.lat,X.lng=R.value.lng,X.address=R.value.address||X.address,mt.value=!1,!0):(e.warning(`请先点击地图或选择搜索结果`),!1)}function Bn(){Ot();let e=!0;return X.name.trim()||(B.name=`场馆名称为必填项`,e=!1),X.district.trim()||(B.district=`行政区为必填项`,e=!1),X.address.trim()||(B.address=`场馆地址为必填项`,e=!1),(typeof X.lat!=`number`||typeof X.lng!=`number`)&&(B.lat=`经纬度为必填项`,e=!1),X.venue_types.length||(B.venue_types=`主题为必填项`,e=!1),X.unit_name.trim()||(B.unit_name=`所属单位为必填项`,e=!1),X.ticket_type||(B.ticket_type=`门票类型为必填项`,e=!1),X.open_mode||(B.open_mode=`开放模式为必填项`,e=!1),X.visit_form.trim()||(B.visit_form=`参观形式为必填项`,e=!1),X.open_time.trim()||(B.open_time=`开放时间为必填项`,e=!1),X.consultation_hours.trim()||(B.consultation_hours=`咨询时间为必填项`,e=!1),X.contact_phone.trim()||(B.contact_phone=`咨询电话为必填项`,e=!1),X.booking_method.trim()||(B.booking_method=`预约方式为必填项`,e=!1),X.ticket_content.trim()||(B.ticket_content=`门票说明为必填项`,e=!1),X.cover_image||(B.cover_image=`科普场馆主图为必填项`,e=!1),X.gallery_media.length||(B.gallery_media=`科普场馆展示图片为必填项`,e=!1),(!X.detail_html||!X.detail_html.trim())&&(B.detail_html=`场馆简介为必填项`,e=!1),e}async function Vn(){ft.value=!0;try{if(!Bn())return e.warning(`请填写所有必填项`),!1;let t={...X,booking_qr_media:X.booking_qr_media||[],sort:Z()?X.sort:void 0};if(_t.value)await C.post(`/venues`,t),e.success(`创建场馆成功`);else if(A.value){let{data:n}=await C.put(`/venues/${A.value}`,t);!Z()&&n?.audit_status===`pending`?e.success(`信息已保存,请等待管理员审核`):e.success(`更新场馆成功`)}return await $(),!0}catch(t){return e.error(t?.response?.data?.message??`保存失败`),!1}finally{ft.value=!1}}async function Hn(){return Bn()?!Z()&&!_t.value?new Promise(e=>{w.confirm({title:`提交确认`,content:`请核对本次修改内容信息准确,再确认提交审核。`,okText:`确认提交`,cancelText:`取消`,async onBeforeOk(){let t=await Vn();return e(t),t},onCancel:()=>e(!1)})}):await Vn():(e.warning(`请填写所有必填项`),!1)}return r(async()=>{let e=typeof kt.query.audit_status==`string`?kt.query.audit_status:``;(e===`pending`||e===`approved`||e===`rejected`)&&(V.audit_status=e),await yn(),await Promise.all([$(),pn(),mn(),hn(),_n(),gn(),vn()])}),(e,r)=>{let i=o(`a-input`),p=o(`a-option`),h=o(`a-select`),g=o(`a-button`),x=o(`a-space`),C=o(`a-table-column`),w=o(`a-tag`),ee=o(`a-popconfirm`),re=o(`a-table`),oe=o(`a-card`),se=o(`a-textarea`),T=o(`a-modal`),E=o(`a-form-item`),ce=o(`a-col`),le=o(`a-row`),D=o(`a-form`),ue=o(`a-timeline-item`),A=o(`a-timeline`),yt=o(`a-spin`),bt=o(`a-input-number`),I=o(`a-switch`),L=o(`a-upload`),z=o(`a-typography-text`),Ot=o(`a-typography-paragraph`),kt=o(`a-list-item`),At=o(`a-list`),Ft=o(`a-alert`);return n(),_(f,null,[b(oe,{title:`场馆管理 / 场馆列表`},{extra:s(()=>[b(x,{wrap:``},{default:s(()=>[b(i,{modelValue:V.keyword,"onUpdate:modelValue":r[0]||=e=>V.keyword=e,placeholder:`搜索名称/地址/开放时间/预约须知等`,style:{width:`260px`}},null,8,[`modelValue`]),b(h,{modelValue:V.venue_type,"onUpdate:modelValue":r[1]||=e=>V.venue_type=e,"allow-clear":``,placeholder:`筛选主题`,style:{width:`180px`}},{default:s(()=>[(n(!0),_(f,null,S(M.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),b(h,{modelValue:V.district,"onUpdate:modelValue":r[2]||=e=>V.district=e,"allow-clear":``,placeholder:`筛选行政区`,style:{width:`180px`}},{default:s(()=>[(n(!0),_(f,null,S(j.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),b(h,{modelValue:V.ticket_type,"onUpdate:modelValue":r[3]||=e=>V.ticket_type=e,"allow-clear":``,placeholder:`筛选门票类型`,style:{width:`180px`}},{default:s(()=>[(n(!0),_(f,null,S(F.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),b(h,{modelValue:V.booking_mode,"onUpdate:modelValue":r[4]||=e=>V.booking_mode=e,"allow-clear":``,placeholder:`筛选预约模式`,style:{width:`180px`}},{default:s(()=>[(n(!0),_(f,null,S(N.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),b(h,{modelValue:V.open_mode,"onUpdate:modelValue":r[5]||=e=>V.open_mode=e,"allow-clear":``,placeholder:`筛选开放模式`,style:{width:`180px`}},{default:s(()=>[(n(!0),_(f,null,S(P.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),b(h,{modelValue:V.is_included_in_stats,"onUpdate:modelValue":r[6]||=e=>V.is_included_in_stats=e,"allow-clear":``,placeholder:`纳入市科协人数统计系统`,style:{width:`180px`}},{default:s(()=>[b(p,{value:`1`},{default:s(()=>[...r[40]||=[c(`纳入统计`,-1)]]),_:1}),b(p,{value:`0`},{default:s(()=>[...r[41]||=[c(`不纳入`,-1)]]),_:1})]),_:1},8,[`modelValue`]),b(h,{modelValue:V.is_active,"onUpdate:modelValue":r[7]||=e=>V.is_active=e,"allow-clear":``,placeholder:`上架状态`,style:{width:`130px`}},{default:s(()=>[b(p,{value:`1`},{default:s(()=>[...r[42]||=[c(`上架`,-1)]]),_:1}),b(p,{value:`0`},{default:s(()=>[...r[43]||=[c(`下架`,-1)]]),_:1})]),_:1},8,[`modelValue`]),Z()?(n(),l(h,{key:0,modelValue:V.audit_status,"onUpdate:modelValue":r[8]||=e=>V.audit_status=e,"allow-clear":``,placeholder:`审核状态`,style:{width:`130px`}},{default:s(()=>[b(p,{value:`pending`},{default:s(()=>[...r[44]||=[c(`待审核`,-1)]]),_:1}),b(p,{value:`approved`},{default:s(()=>[...r[45]||=[c(`已通过`,-1)]]),_:1}),b(p,{value:`rejected`},{default:s(()=>[...r[46]||=[c(`已退回`,-1)]]),_:1})]),_:1},8,[`modelValue`])):u(``,!0),b(g,{type:`primary`,onClick:jn},{default:s(()=>[...r[47]||=[c(`查询`,-1)]]),_:1}),b(g,{type:`primary`,onClick:bn},{default:s(()=>[...r[48]||=[c(`新增场馆`,-1)]]),_:1}),Z()?(n(),l(g,{key:1,loading:nn.value,onClick:rn},{default:s(()=>[...r[49]||=[c(`导出场馆`,-1)]]),_:1},8,[`loading`])):u(``,!0)]),_:1})]),default:s(()=>[b(re,{class:`list-data-table`,scroll:{x:dt},data:vt.value,loading:te.value,"row-key":`id`,pagination:{current:H.current,pageSize:H.pageSize,total:H.total,showTotal:!0,showJumper:!0},onPageChange:Mn},{columns:s(()=>[b(C,{title:``,width:72,ellipsis:!0,tooltip:!0},{cell:s(({rowIndex:e})=>[c(m(y(ae)(e,H.current,H.pageSize)),1)]),_:1}),b(C,{title:`场馆名称`,width:220,"min-width":160,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[c(m(q(e).name),1)]),_:1}),b(C,{title:`主题`,width:130},{cell:s(({record:e})=>[sn(q(e)).length?(n(),l(x,{key:0,wrap:``,size:4},{default:s(()=>[(n(!0),_(f,null,S(sn(q(e)),(t,r)=>(n(),l(w,{key:e.id+`-vt-`+r,color:on(M.value,t,`arcoblue`)},{default:s(()=>[c(m(Q(M.value,t)),1)]),_:2},1032,[`color`]))),128))]),_:2},1024)):(n(),_(`span`,de,`-`))]),_:1}),b(C,{title:`行政区`,width:120,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[c(m(Q(j.value,q(e).district)),1)]),_:1}),b(C,{title:`所属单位`,width:200,"min-width":140,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[c(m(q(e).unit_name||`—`),1)]),_:1}),b(C,{title:`门票类型`,width:120},{cell:s(({record:e})=>[b(w,{color:on(F.value,q(e).ticket_type,`green`)},{default:s(()=>[c(m(Q(F.value,q(e).ticket_type)),1)]),_:2},1032,[`color`])]),_:1}),b(C,{title:`预约模式`,width:180},{cell:s(({record:e})=>[v(`span`,null,m(Q(N.value,q(e).booking_mode)),1)]),_:1}),b(C,{title:`开放模式`,width:150},{cell:s(({record:e})=>[v(`span`,null,m(Q(P.value,q(e).open_mode)),1)]),_:1}),b(C,{title:`开放时间`,width:220,"min-width":160,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[c(m(an(q(e).open_time)),1)]),_:1}),b(C,{title:`地址`,width:280,"min-width":200,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[c(m(q(e).address||`—`),1)]),_:1}),b(C,{title:`排序`,width:90,ellipsis:!0,tooltip:!0},{cell:s(({record:e})=>[c(m(q(e).sort??0),1)]),_:1}),b(C,{title:`上架状态`,width:100},{cell:s(({record:e})=>[b(w,{color:q(e).is_active?`green`:`gray`},{default:s(()=>[c(m(q(e).is_active?`上架`:`下架`),1)]),_:2},1032,[`color`])]),_:1}),Z()?(n(),l(C,{key:0,title:`审核状态`,width:100},{cell:s(({record:e})=>[b(w,{color:e.audit_status===`approved`?`green`:e.audit_status===`pending`?`orange`:`red`},{default:s(()=>[c(m(Yt(e.audit_status)),1)]),_:2},1032,[`color`])]),_:1})):u(``,!0),b(C,{title:`操作`,width:320,fixed:`right`,align:`left`},{cell:s(({record:e})=>[b(x,{wrap:``,justify:`start`},{default:s(()=>[b(g,{type:`text`,onClick:t=>xn(e)},{default:s(()=>[...r[50]||=[c(`编辑`,-1)]]),_:1},8,[`onClick`]),Z()&&e.audit_status===`pending`?(n(),l(g,{key:0,type:`text`,status:`success`,onClick:t=>Zt(e,`audit`)},{default:s(()=>[...r[51]||=[c(`审核`,-1)]]),_:1},8,[`onClick`])):(n(),l(g,{key:1,type:`text`,onClick:t=>Zt(e,`view`)},{default:s(()=>[...r[52]||=[c(`查看`,-1)]]),_:1},8,[`onClick`])),Z()?(n(),l(ee,{key:2,content:`删除后该场馆关联的活动、预约等数据将一并删除,且不可恢复,确认删除?`,onOk:t=>tn(e)},{default:s(()=>[b(g,{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:Mt.value,"onUpdate:visible":r[10]||=e=>Mt.value=e,title:`退回场馆`,"on-before-ok":en},{default:s(()=>[b(se,{modelValue:jt.value,"onUpdate:modelValue":r[9]||=e=>jt.value=e,placeholder:`退回说明(选填)`,"auto-size":{minRows:3,maxRows:8}},null,8,[`modelValue`])]),_:1},8,[`visible`]),b(T,{visible:U.value,"onUpdate:visible":r[13]||=e=>U.value=e,title:Rt.value,width:`70%`,"body-style":Dt},{footer:s(()=>[b(x,null,{default:s(()=>[b(g,{onClick:r[11]||=e=>U.value=!1},{default:s(()=>[...r[59]||=[c(`关闭`,-1)]]),_:1}),W.value===`audit`?(n(),_(f,{key:0},[b(g,{type:`primary`,onClick:Qt},{default:s(()=>[...r[60]||=[c(`通过`,-1)]]),_:1}),b(g,{status:`danger`,onClick:r[12]||=e=>G.value&&$t(G.value)},{default:s(()=>[...r[61]||=[c(`退回`,-1)]]),_:1})],64)):u(``,!0)]),_:1})]),default:s(()=>[b(yt,{loading:Nt.value},{default:s(()=>[G.value?(n(),_(`div`,fe,[b(D,{layout:`vertical`,class:`admin-modal-form venue-audit-form`},{default:s(()=>[b(E,{label:`场馆名称`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`name`)}])},m(Y(`name`)),3)]),_:1}),b(E,{label:`主题(可多选)`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`venue_types`)}])},m(Y(`venue_types`)),3)]),_:1}),b(E,{label:`行政区`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`district`)}])},m(Y(`district`)),3)]),_:1}),b(E,{label:`所属单位`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`unit_name`)}])},m(Y(`unit_name`)),3)]),_:1}),b(E,{label:`门票类型`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`ticket_type`)}])},m(Y(`ticket_type`)),3)]),_:1}),b(E,{label:`预约模式`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`booking_mode`)}])},m(Y(`booking_mode`)),3)]),_:1}),b(E,{label:`开放模式`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`open_mode`)}])},m(Y(`open_mode`)),3)]),_:1}),b(E,{label:`参观形式`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`visit_form`)}])},m(Y(`visit_form`)),3)]),_:1}),b(E,{label:`开放时间`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`open_time`)}])},m(Y(`open_time`)),3)]),_:1}),b(E,{label:`咨询时间`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`consultation_hours`)}])},m(Y(`consultation_hours`)),3)]),_:1}),b(E,{label:`咨询电话`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`contact_phone`)}])},m(Y(`contact_phone`)),3)]),_:1}),b(E,{label:`排序`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`sort`)}])},m(Y(`sort`)),3)]),_:1}),b(le,{gutter:16},{default:s(()=>[b(ce,{span:12},{default:s(()=>[b(E,{label:`上架状态`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`is_active`)}])},m(Y(`is_active`)),3)]),_:1})]),_:1}),b(ce,{span:12},{default:s(()=>[b(E,{label:`纳入市科协人数统计系统`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`is_included_in_stats`)}])},m(Y(`is_included_in_stats`)),3)]),_:1})]),_:1})]),_:1}),b(E,{label:`预约方式与预约二维码`,class:`admin-modal-form__full`},{default:s(()=>[v(`div`,pe,[v(`div`,me,[r[54]||=v(`div`,{class:`venue-form-split-label`},`预约方式`,-1),v(`div`,{class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`booking_method`)}])},m(Y(`booking_method`)),3)]),v(`div`,he,[r[55]||=v(`div`,{class:`venue-form-split-label`},`预约二维码`,-1),J.value?.booking_qr_media?.length?(n(),_(`div`,{key:0,class:a([`venue-gallery-grid`,{"venue-audit-media--changed":K(`booking_qr_media`)}])},[(n(!0),_(f,null,S(J.value.booking_qr_media,(e,t)=>(n(),_(`img`,{key:`qr-${t}`,src:y(O)(e.url),class:`venue-gallery-thumb`,alt:``},null,8,ge))),128))],2)):(n(),_(`div`,{key:1,class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`booking_qr_media`)}])},`—`,2))])])]),_:1}),b(E,{label:`门票说明`,class:`admin-modal-form__full`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box venue-audit-value-box--multiline`,{"venue-audit-value-box--changed":K(`ticket_content`)}])},m(Y(`ticket_content`)),3)]),_:1}),b(E,{label:`场馆地址与经纬度`,class:`admin-modal-form__full`},{default:s(()=>[v(`div`,_e,[v(`div`,{class:a([`venue-audit-value-box venue-address-coord-row__address`,{"venue-audit-value-box--changed":K(`address`)}])},m(Y(`address`)),3),v(`div`,{class:a([`venue-audit-value-box venue-address-coord-row__lng`,{"venue-audit-value-box--changed":K(`lng`)}])},m(Ht(J.value?.lng)),3),v(`div`,{class:a([`venue-audit-value-box venue-address-coord-row__lat`,{"venue-audit-value-box--changed":K(`lat`)}])},m(Ht(J.value?.lat)),3)])]),_:1}),b(E,{label:`科普场馆图片`,class:`admin-modal-form__full`},{default:s(()=>[v(`div`,ve,[v(`div`,ye,[r[56]||=v(`div`,{class:`venue-cover-carousel-row__sub`},`科普场馆主图`,-1),J.value?.cover_image?(n(),_(`img`,{key:0,src:y(O)(J.value.cover_image),class:a([`venue-cover-thumb`,{"venue-audit-media--changed":K(`cover_image`)}]),alt:``},null,10,be)):(n(),_(`div`,{key:1,class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`cover_image`)}])},`—`,2))]),v(`div`,xe,[r[57]||=v(`div`,{class:`venue-cover-carousel-row__sub`},`科普场馆展示图片`,-1),J.value?.gallery_media?.length?(n(),_(`div`,{key:0,class:a([`venue-gallery-grid`,{"venue-audit-media--changed":K(`gallery_media`)}])},[(n(!0),_(f,null,S(J.value.gallery_media,(e,t)=>(n(),_(f,{key:e.url+t},[e.type===`image`?(n(),_(`img`,{key:0,src:y(O)(e.url),class:`venue-gallery-thumb`,alt:``},null,8,Se)):(n(),_(`video`,{key:1,src:y(O)(e.url),controls:``,class:`venue-gallery-thumb venue-gallery-thumb--video`},null,8,Ce))],64))),128))],2)):(n(),_(`div`,{key:1,class:a([`venue-audit-value-box`,{"venue-audit-value-box--changed":K(`gallery_media`)}])},`—`,2))])])]),_:1}),b(E,{label:`预约须知`,class:`admin-modal-form__full`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box venue-audit-value-box--multiline`,{"venue-audit-value-box--changed":K(`reservation_notice`)}])},m(Y(`reservation_notice`,!0)),3)]),_:1}),b(E,{label:`场馆简介`,class:`admin-modal-form__full`},{default:s(()=>[v(`div`,{class:a([`venue-audit-value-box venue-audit-value-box--multiline`,{"venue-audit-value-box--changed":K(`detail_html`)}])},m(Y(`detail_html`,!0)),3)]),_:1})]),_:1}),r[58]||=v(`div`,{style:{margin:`16px 0 8px`,color:`var(--color-text-2)`}},`审核记录`,-1),Pt.value.length?(n(),l(A,{key:0},{default:s(()=>[(n(!0),_(f,null,S(Pt.value,e=>(n(),l(ue,{key:e.id},{default:s(()=>[b(w,{color:e.action===`approve`?`green`:e.action===`reject`?`red`:`arcoblue`},{default:s(()=>[c(m(Xt(e.action)),1)]),_:2},1032,[`color`]),e.admin_user?.name?(n(),_(`span`,we,m(e.admin_user.name),1)):u(``,!0),e.remark?(n(),_(`div`,Te,m(e.remark),1)):u(``,!0)]),_:2},1024))),128))]),_:1})):(n(),_(`span`,Ee,`暂无审核记录`))])):u(``,!0)]),_:1},8,[`loading`])]),_:1},8,[`visible`,`title`]),b(T,{visible:pt.value,"onUpdate:visible":r[36]||=e=>pt.value=e,title:_t.value?`新增场馆`:`编辑场馆`,width:`70%`,"body-style":Et,"confirm-loading":ft.value,"on-before-ok":Hn},{default:s(()=>[b(D,{model:X,layout:`vertical`,class:`admin-modal-form`},{default:s(()=>[b(E,{label:`场馆名称`,required:``,help:B.name},d({default:s(()=>[b(i,{modelValue:X.name,"onUpdate:modelValue":r[14]||=e=>X.name=e},null,8,[`modelValue`])]),_:2},[B.name?{name:`help`,fn:s(()=>[v(`span`,De,m(B.name),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`主题(可多选)`,required:``,help:B.venue_types},d({default:s(()=>[b(h,{modelValue:X.venue_types,"onUpdate:modelValue":r[15]||=e=>X.venue_types=e,multiple:``,placeholder:`请选择主题`},{default:s(()=>[(n(!0),_(f,null,S(M.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),_:2},[B.venue_types?{name:`help`,fn:s(()=>[v(`span`,Oe,m(B.venue_types),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`行政区`,required:``,help:B.district},d({default:s(()=>[b(h,{modelValue:X.district,"onUpdate:modelValue":r[16]||=e=>X.district=e,"allow-clear":``,placeholder:`请选择行政区`},{default:s(()=>[(n(!0),_(f,null,S(j.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),_:2},[B.district?{name:`help`,fn:s(()=>[v(`span`,ke,m(B.district),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`所属单位`,required:``,help:B.unit_name},d({default:s(()=>[b(i,{modelValue:X.unit_name,"onUpdate:modelValue":r[17]||=e=>X.unit_name=e,placeholder:`所属单位名称`},null,8,[`modelValue`])]),_:2},[B.unit_name?{name:`help`,fn:s(()=>[v(`span`,Ae,m(B.unit_name),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`门票类型`,required:``,help:B.ticket_type},d({default:s(()=>[b(h,{modelValue:X.ticket_type,"onUpdate:modelValue":r[18]||=e=>X.ticket_type=e,placeholder:`请选择门票类型`},{default:s(()=>[(n(!0),_(f,null,S(F.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),_:2},[B.ticket_type?{name:`help`,fn:s(()=>[v(`span`,je,m(B.ticket_type),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`预约模式`,help:B.booking_mode},d({default:s(()=>[b(h,{modelValue:X.booking_mode,"onUpdate:modelValue":r[19]||=e=>X.booking_mode=e,"allow-clear":``,placeholder:`请选择预约模式`},{default:s(()=>[(n(!0),_(f,null,S(N.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),_:2},[B.booking_mode?{name:`help`,fn:s(()=>[v(`span`,Me,m(B.booking_mode),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`开放模式`,required:``,help:B.open_mode},d({default:s(()=>[b(h,{modelValue:X.open_mode,"onUpdate:modelValue":r[20]||=e=>X.open_mode=e,placeholder:`请选择开放模式`},{default:s(()=>[(n(!0),_(f,null,S(P.value,e=>(n(),l(p,{key:e.id,value:e.item_value},{default:s(()=>[c(m(e.item_label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),_:2},[B.open_mode?{name:`help`,fn:s(()=>[v(`span`,Ne,m(B.open_mode),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`参观形式`,required:``,help:B.visit_form},d({default:s(()=>[b(i,{modelValue:X.visit_form,"onUpdate:modelValue":r[21]||=e=>X.visit_form=e,placeholder:`参观形式说明`},null,8,[`modelValue`])]),_:2},[B.visit_form?{name:`help`,fn:s(()=>[v(`span`,Pe,m(B.visit_form),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`开放时间`,required:``,help:B.open_time},d({default:s(()=>[b(i,{modelValue:X.open_time,"onUpdate:modelValue":r[22]||=e=>X.open_time=e,placeholder:`如:周一至周五 09:00-17:00,周末 09:00-18:00`},null,8,[`modelValue`])]),_:2},[B.open_time?{name:`help`,fn:s(()=>[v(`span`,Fe,m(B.open_time),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`咨询时间`,required:``,help:B.consultation_hours},d({default:s(()=>[b(i,{modelValue:X.consultation_hours,"onUpdate:modelValue":r[23]||=e=>X.consultation_hours=e,placeholder:`咨询时间说明`},null,8,[`modelValue`])]),_:2},[B.consultation_hours?{name:`help`,fn:s(()=>[v(`span`,Ie,m(B.consultation_hours),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`咨询电话`,required:``,help:B.contact_phone},d({default:s(()=>[b(i,{modelValue:X.contact_phone,"onUpdate:modelValue":r[24]||=e=>X.contact_phone=e,placeholder:`多个电话请用、分隔`},null,8,[`modelValue`])]),_:2},[B.contact_phone?{name:`help`,fn:s(()=>[v(`span`,Le,m(B.contact_phone),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`排序`},{default:s(()=>[b(bt,{modelValue:X.sort,"onUpdate:modelValue":r[25]||=e=>X.sort=e,min:0,disabled:!Z()},null,8,[`modelValue`,`disabled`])]),_:1}),b(le,{gutter:16},{default:s(()=>[b(ce,{span:12},{default:s(()=>[b(E,{label:`上架状态`},{default:s(()=>[b(I,{modelValue:X.is_active,"onUpdate:modelValue":r[26]||=e=>X.is_active=e},null,8,[`modelValue`]),v(`span`,Re,m(X.is_active?`上架`:`下架`),1)]),_:1})]),_:1}),b(ce,{span:12},{default:s(()=>[b(E,{label:`纳入市科协人数统计系统`},{default:s(()=>[b(I,{modelValue:X.is_included_in_stats,"onUpdate:modelValue":r[27]||=e=>X.is_included_in_stats=e},null,8,[`modelValue`]),v(`span`,ze,m(X.is_included_in_stats?`是`:`否`),1)]),_:1})]),_:1})]),_:1}),b(E,{label:`预约方式与预约二维码`,required:``,class:`admin-modal-form__full`},{help:s(()=>[B.booking_method?(n(),_(`span`,Ge,m(B.booking_method),1)):u(``,!0)]),default:s(()=>[v(`div`,Be,[v(`div`,Ve,[r[62]||=v(`div`,{class:`venue-form-split-label`},[c(`预约方式 `),v(`span`,{style:{color:`#f53f3f`}},`*`)],-1),b(i,{modelValue:X.booking_method,"onUpdate:modelValue":r[28]||=e=>X.booking_method=e,placeholder:`单行文字说明`,style:{width:`100%`}},null,8,[`modelValue`])]),v(`div`,He,[r[65]||=v(`div`,{class:`venue-form-split-label`},`预约二维码`,-1),b(L,{"auto-upload":!1,"show-file-list":!1,limit:20,multiple:``,accept:`image/*`,"on-before-upload":Dn},{"upload-button":s(()=>[b(g,{type:`primary`,size:`small`},{default:s(()=>[...r[63]||=[c(`上传图片`,-1)]]),_:1})]),_:1}),b(z,{type:`secondary`,style:{"margin-top":`8px`,display:`block`,"font-size":`12px`}},{default:s(()=>[c(m(y(ie)),1)]),_:1}),X.booking_qr_media.length?(n(),_(`div`,Ue,[(n(!0),_(f,null,S(X.booking_qr_media,(e,t)=>(n(),_(`div`,{key:`booking-qr-${t}`,class:`venue-gallery-item`},[v(`img`,{src:y(O)(e.url),class:`venue-gallery-thumb`,onError:An,onClick:t=>dn(`image`,e.url)},null,40,We),b(g,{size:`mini`,status:`danger`,onClick:e=>On(t)},{default:s(()=>[...r[64]||=[c(`删除`,-1)]]),_:1},8,[`onClick`])]))),128))])):u(``,!0)])])]),_:1}),b(E,{label:`门票说明`,required:``,class:`admin-modal-form__full`,help:B.ticket_content},d({default:s(()=>[b(se,{modelValue:X.ticket_content,"onUpdate:modelValue":r[29]||=e=>X.ticket_content=e,"auto-size":{minRows:3,maxRows:12},placeholder:`门票说明`},null,8,[`modelValue`])]),_:2},[B.ticket_content?{name:`help`,fn:s(()=>[v(`span`,Ke,m(B.ticket_content),1)]),key:`0`}:void 0]),1032,[`help`]),b(E,{label:`场馆地址与经纬度`,required:``,class:`admin-modal-form__full`},{extra:s(()=>[...r[67]||=[c(`经纬度不可手动编辑,请使用地图选点自动填充。`,-1)]]),help:s(()=>[B.address||B.lat||B.lng?(n(),_(`span`,Je,m(B.address||B.lat||B.lng),1)):u(``,!0)]),default:s(()=>[v(`div`,qe,[b(i,{modelValue:X.address,"onUpdate:modelValue":r[30]||=e=>X.address=e,class:`venue-address-coord-row__address`,placeholder:`场馆地址`,"allow-clear":``},null,8,[`modelValue`]),b(bt,{modelValue:X.lng,"onUpdate:modelValue":r[31]||=e=>X.lng=e,class:`venue-address-coord-row__lng`,precision:7,placeholder:`经度`,"hide-button":``,disabled:``},null,8,[`modelValue`]),b(bt,{modelValue:X.lat,"onUpdate:modelValue":r[32]||=e=>X.lat=e,class:`venue-address-coord-row__lat`,precision:7,placeholder:`纬度`,"hide-button":``,disabled:``},null,8,[`modelValue`]),b(g,{type:`primary`,class:`venue-address-coord-row__map`,onClick:In},{default:s(()=>[...r[66]||=[c(`地图选点`,-1)]]),_:1})])]),_:1}),b(E,{label:`科普场馆图片`,required:``,class:`admin-modal-form__full`},{default:s(()=>[v(`div`,Ye,[v(`div`,Xe,[r[70]||=v(`div`,{class:`venue-cover-carousel-row__sub`},[c(`科普场馆主图 `),v(`span`,{style:{color:`#f53f3f`}},`*`)],-1),b(x,{direction:`vertical`,fill:``,style:{width:`100%`}},{default:s(()=>[b(L,{"auto-upload":!1,"show-file-list":!1,accept:`image/*`,"before-upload":Sn,onChange:wn},{"upload-button":s(()=>[b(g,null,{default:s(()=>[...r[68]||=[c(`上传封面`,-1)]]),_:1})]),_:1}),b(z,{type:`secondary`},{default:s(()=>[c(m(y(ie)),1)]),_:1}),X.cover_image?(n(),l(x,{key:0,direction:`vertical`,align:`start`},{default:s(()=>[v(`img`,{src:y(O)(X.cover_image),style:{width:`80px`,border:`1px solid #e5e6eb`,"border-radius":`4px`,cursor:`zoom-in`},onError:An,onClick:r[33]||=e=>dn(`image`,X.cover_image)},null,40,Ze),b(g,{size:`mini`,status:`danger`,onClick:kn},{default:s(()=>[...r[69]||=[c(`删除封面`,-1)]]),_:1})]),_:1})):u(``,!0)]),_:1}),B.cover_image?(n(),_(`div`,Qe,m(B.cover_image),1)):u(``,!0)]),v(`div`,$e,[r[73]||=v(`div`,{class:`venue-cover-carousel-row__sub`},[c(`科普场馆展示图片 `),v(`span`,{style:{color:`#f53f3f`}},`*`)],-1),v(`div`,et,[v(`div`,tt,[b(L,{"auto-upload":!1,"show-file-list":!1,multiple:``,accept:`image/*,video/*`,"before-upload":Cn,onChange:Tn},{"upload-button":s(()=>[b(g,{type:`primary`},{default:s(()=>[...r[71]||=[c(`新增轮播资源`,-1)]]),_:1})]),_:1}),b(z,{type:`secondary`,style:{"margin-top":`12px`,display:`block`}},{default:s(()=>[c(m(y(ie)),1)]),_:1})]),v(`div`,nt,[(n(!0),_(f,null,S(X.gallery_media,(e,i)=>(n(),_(`div`,{key:e.url+i,class:`venue-gallery-item`},[e.type===`image`?(n(),_(`img`,{key:0,src:y(O)(e.url),class:`venue-gallery-thumb`,onError:An,onClick:t=>dn(`image`,e.url)},null,40,rt)):(n(),_(`video`,{key:1,src:y(O)(e.url),controls:``,class:`venue-gallery-thumb venue-gallery-thumb--video`,onClick:t(t=>dn(`video`,e.url),[`stop`])},null,8,it)),b(g,{size:`mini`,status:`danger`,onClick:e=>En(i)},{default:s(()=>[...r[72]||=[c(`删除`,-1)]]),_:1},8,[`onClick`])]))),128))])]),B.gallery_media?(n(),_(`div`,at,m(B.gallery_media),1)):u(``,!0)])])]),_:1}),b(E,{label:`预约须知`,class:`admin-modal-form__full`},{default:s(()=>[(n(),l(ne,{modelValue:X.reservation_notice,"onUpdate:modelValue":r[34]||=e=>X.reservation_notice=e,"editor-options":Jt,"field-key":`venue-reservation`,key:`venue-reservation-${St.value}`},null,8,[`modelValue`]))]),_:1}),b(E,{label:`场馆简介`,required:``,class:`admin-modal-form__full`},{help:s(()=>[B.detail_html?(n(),_(`span`,ot,m(B.detail_html),1)):u(``,!0)]),default:s(()=>[(n(),l(ne,{modelValue:X.detail_html,"onUpdate:modelValue":r[35]||=e=>X.detail_html=e,"editor-options":qt,"field-key":`venue-detail`,"min-height":260,key:`venue-detail-${St.value}`},null,8,[`modelValue`]))]),_:1})]),_:1},8,[`model`])]),_:1},8,[`visible`,`title`,`confirm-loading`]),b(T,{visible:Ct.value,"onUpdate:visible":r[37]||=e=>Ct.value=e,title:`媒体预览`,width:`72%`,footer:!1},{default:s(()=>[wt.value===`image`&&Tt.value?(n(),_(`img`,{key:0,src:Tt.value,style:{display:`block`,"max-width":`100%`,"max-height":`72vh`,margin:`0 auto`},onError:An},null,40,st)):wt.value===`video`&&Tt.value?(n(),_(`video`,{key:1,src:Tt.value,controls:``,autoplay:``,style:{display:`block`,width:`100%`,"max-height":`72vh`}},null,8,ct)):u(``,!0)]),_:1},8,[`visible`]),b(T,{visible:mt.value,"onUpdate:visible":r[39]||=e=>mt.value=e,title:`地图选点(天地图)`,width:`70%`,"body-style":Et,"on-before-ok":zn},{default:s(()=>[b(x,{style:{"margin-bottom":`12px`,width:`100%`}},{default:s(()=>[b(i,{modelValue:ht.value,"onUpdate:modelValue":r[38]||=e=>ht.value=e,placeholder:`输入关键词搜索,如:苏州博物馆`,style:{width:`420px`}},null,8,[`modelValue`]),b(g,{type:`primary`,loading:k.value,onClick:Ln},{default:s(()=>[...r[74]||=[c(`搜索`,-1)]]),_:1},8,[`loading`])]),_:1}),v(`div`,lt,[v(`div`,{ref_key:`mapContainerRef`,ref:xt,style:{height:`520px`,flex:`1`,border:`1px solid #e5e6eb`}},null,512),v(`div`,ut,[r[75]||=v(`div`,{style:{"margin-bottom":`8px`,color:`#86909c`}},`搜索结果`,-1),b(At,{size:`small`},{default:s(()=>[(n(!0),_(f,null,S(gt.value,(e,t)=>(n(),l(kt,{key:t,onClick:t=>Rn(e)},{default:s(()=>[b(Ot,{ellipsis:{rows:1}},{default:s(()=>[c(m(e.title),1)]),_:2},1024),b(z,{type:`secondary`},{default:s(()=>[c(m(e.address),1)]),_:2},1024)]),_:2},1032,[`onClick`]))),128))]),_:1})])]),R.value?(n(),l(Ft,{key:0,type:`info`,style:{"margin-top":`12px`}},{default:s(()=>[c(` 已选坐标:`+m(R.value.lng)+`, `+m(R.value.lat),1),r[76]||=v(`br`,null,null,-1),c(` 地址:`+m(R.value.address||`-`),1)]),_:1})):u(``,!0)]),_:1},8,[`visible`])],64)}}}),[[`__scopeId`,`data-v-b1341515`]]);export{ft as default}; |