You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
6.8 KiB

import{d as e,e as a,f as l,o as u,j as t,k as s,m as r,n,p as v,I as o,D as i,E as c,G as d,t as m,v as f,x as p,y as _,F as b,z as y,H as g,C as k,J as h,K as j}from"./index-Cm29_xFk.js";import{g as x,a as w}from"./content.jwYrJPXR.js";import{P as C}from"./poster.DLiVsUXX.js";import{s as N}from"./search.BJnl3YRK.js";import{d as F}from"./down.BCKq9i8s.js";import{v as I}from"./venueTypes.DuAf5T5V.js";import{v as P,c as V,o as $}from"./venueThemeColors.DRxjaxXI.js";import{v as z}from"./suzhouDistrictPolygons.srVEtVX-.js";import{_ as D}from"./_plugin-vue_export-helper.BCo6x5W8.js";const T=D(e({__name:"index",setup(e){const D=a([]),T=a(null),q=a(""),E=a("区域"),G=a(""),H=a("主题"),J=a(""),K=a("参观形式"),S=a(""),U=a("开放模式"),A=a(""),B=a("收费类型"),L=a(""),M=l(()=>{var e;return[{label:"区域",value:""},...((null==(e=T.value)?void 0:e.district)??[]).map(e=>({label:e.label,value:e.value}))]}),O=l(()=>{var e;return[{label:"主题",value:""},...((null==(e=T.value)?void 0:e.venue_type)??[]).map(e=>({label:e.label,value:e.value}))]}),Q=l(()=>{var e;return[{label:"参观形式",value:""},...((null==(e=T.value)?void 0:e.venue_appointment_type)??[]).map(e=>({label:e.label,value:e.value}))]}),R=l(()=>{var e;return[{label:"开放模式",value:""},...((null==(e=T.value)?void 0:e.venue_open_mode)??[]).map(e=>({label:e.label,value:e.value}))]}),W=l(()=>{var e;return[{label:"收费类型",value:""},...((null==(e=T.value)?void 0:e.ticket_type)??[]).map(e=>({label:e.label,value:e.value}))]});function X(e){return I(e)}const Y=l(()=>{var e;const a={};for(const l of(null==(e=T.value)?void 0:e.venue_type)??[])a[l.value]=l.label;return a}),Z=l(()=>{var e;const a={};for(const l of(null==(e=T.value)?void 0:e.ticket_type)??[])a[l.value]=l.label;return a}),ee=l(()=>{var e;const a={};for(const l of(null==(e=T.value)?void 0:e.venue_open_mode)??[])a[l.value]=l.label;return a});const ae=l(()=>{const e=q.value.trim();return D.value.filter(a=>{if(G.value&&!z(String(a.district||""),G.value))return!1;if(J.value&&!X(a).includes(J.value))return!1;if(S.value&&(a.appointment_type||"")!==S.value)return!1;if(A.value&&(a.open_mode||"")!==A.value)return!1;if("free"===L.value&&"free"!==(a.ticket_type||""))return!1;if("paid"===L.value&&"paid"!==(a.ticket_type||""))return!1;if(e){if(!`${a.name||""}${a.address||""}`.includes(e))return!1}return!0})});function le(e,a){const l=Number((null==e?void 0:e.sort)??0),u=Number((null==a?void 0:a.sort)??0);return l!==u?l-u:Number(null==e?void 0:e.id)-Number(null==a?void 0:a.id)}const ue=l(()=>[...ae.value].sort(le));function te(e,a){const l=e.findIndex(e=>e.value===a);return l>=0?l:0}const se=l(()=>te(M.value,G.value)),re=l(()=>te(O.value,J.value)),ne=l(()=>te(Q.value,S.value)),ve=l(()=>te(R.value,A.value)),oe=l(()=>te(W.value,L.value));function ie(e){const a=M.value[Number(e.detail.value)];a&&(E.value=a.label,G.value=a.value)}function ce(e){const a=O.value[Number(e.detail.value)];a&&(H.value=a.label,J.value=a.value)}function de(e){const a=Q.value[Number(e.detail.value)];a&&(K.value=a.label,S.value=a.value)}function me(e){const a=R.value[Number(e.detail.value)];a&&(U.value=a.label,A.value=a.value)}function fe(e){const a=W.value[Number(e.detail.value)];a&&(B.value=a.label,L.value=a.value)}const pe=l(()=>!!(G.value||J.value||S.value||A.value||L.value||q.value.trim()));return u(()=>{!async function(){const[e,a]=await Promise.all([x(),w()]);T.value=e,D.value=a||[]}()}),(e,a)=>{const l=o,u=i,x=r,w=m,I=d;return n(),t(x,{class:"page"},{default:s(()=>[v(x,{class:"map-section"},{default:s(()=>[v(x,{class:"toolbar"},{default:s(()=>[v(x,{class:"search-wrap"},{default:s(()=>[v(l,{modelValue:q.value,"onUpdate:modelValue":a[0]||(a[0]=e=>q.value=e),class:"search-input",placeholder:"请输入你要搜索的内容","placeholder-class":"ph"},null,8,["modelValue"]),v(u,{class:"search-icon-img",src:c(N),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),v(x,{class:"filters"},{default:s(()=>[v(I,{mode:"selector",range:M.value,"range-key":"label",value:se.value,onChange:ie},{default:s(()=>[v(x,{class:"f-item"},{default:s(()=>[v(w,{class:"f-item-text"},{default:s(()=>[f(p(E.value),1)]),_:1}),v(u,{class:"f-item-arrow",src:c(F),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"]),v(I,{mode:"selector",range:O.value,"range-key":"label",value:re.value,onChange:ce},{default:s(()=>[v(x,{class:"f-item"},{default:s(()=>[v(w,{class:"f-item-text"},{default:s(()=>[f(p(H.value),1)]),_:1}),v(u,{class:"f-item-arrow",src:c(F),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"]),v(I,{mode:"selector",range:Q.value,"range-key":"label",value:ne.value,onChange:de},{default:s(()=>[v(x,{class:"f-item"},{default:s(()=>[v(w,{class:"f-item-text"},{default:s(()=>[f(p(K.value),1)]),_:1}),v(u,{class:"f-item-arrow",src:c(F),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"]),v(I,{mode:"selector",range:R.value,"range-key":"label",value:ve.value,onChange:me},{default:s(()=>[v(x,{class:"f-item"},{default:s(()=>[v(w,{class:"f-item-text"},{default:s(()=>[f(p(U.value),1)]),_:1}),v(u,{class:"f-item-arrow",src:c(F),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"]),v(I,{mode:"selector",range:W.value,"range-key":"label",value:oe.value,onChange:fe},{default:s(()=>[v(x,{class:"f-item"},{default:s(()=>[v(w,{class:"f-item-text"},{default:s(()=>[f(p(B.value),1)]),_:1}),v(u,{class:"f-item-arrow",src:c(F),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"])]),_:1})]),_:1}),v(x,{class:"list"},{default:s(()=>[(n(!0),_(b,null,y(ue.value,e=>(n(),t(x,{key:e.id,class:"item",onClick:a=>{return l=e.id,void j({url:`/pages/venue/detail?id=${l}`});var l}},{default:s(()=>[v(u,{class:"img",src:e.cover_image||c(C),mode:"aspectFill"},null,8,["src"]),v(x,{class:"body"},{default:s(()=>[v(x,{class:"name"},{default:s(()=>[f(p(e.name),1)]),_:2},1024),X(e).length||e.ticket_type||e.open_mode?(n(),t(x,{key:0,class:"meta-row"},{default:s(()=>{var a;return[(n(!0),_(b,null,y(X(e),(a,l)=>{var u;return n(),t(w,{key:"vt-"+e.id+"-"+l,class:"meta-pill",style:g(c(P)(c(V)(a,null==(u=T.value)?void 0:u.venue_type)))},{default:s(()=>{return[f(p((e=a,(e?Y.value[e]||e:"")||a)),1)];var e}),_:2},1032,["style"])}),128)),e.ticket_type?(n(),t(w,{key:0,class:k(["meta-pill","paid"===e.ticket_type?"meta-pill--paid":"meta-pill--free"])},{default:s(()=>{return[f(p((a=e.ticket_type,a?Z.value[a]||a:"")),1)];var a}),_:2},1032,["class"])):h("",!0),e.open_mode?(n(),t(w,{key:1,class:"open-mode-tag",style:g(c($)(e.open_mode,null==(a=T.value)?void 0:a.venue_open_mode))},{default:s(()=>{return[f(p((a=e.open_mode,a?ee.value[a]||a:"")),1)];var a}),_:2},1032,["style"])):h("",!0)]}),_:2},1024)):h("",!0)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),ue.value.length?h("",!0):(n(),t(x,{key:0,class:"empty-tip"},{default:s(()=>[f(p(pe.value?"暂无符合条件的场馆":"暂无场馆"),1)]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-b1027b29"]]);export{T as default};