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.6 KiB
2 lines
6.6 KiB
|
4 weeks ago
|
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 c,E as i,G as d,t as m,v as f,x as p,y as _,F as b,z as g,H as y,C as k,J as h,K as x}from"./index-DBg2bUhq.js";import{g as w,a as C}from"./content.tJrjcqQa.js";import{P as N}from"./poster.DLiVsUXX.js";import{s as j}from"./search.BJnl3YRK.js";import{d as F}from"./down.BCKq9i8s.js";import{v as I,c as V,a as $}from"./venueThemeColors.ByZn0VY6.js";import{_ as P}from"./_plugin-vue_export-helper.BCo6x5W8.js";const z=P(e({__name:"index",setup(e){const P=a([]),z=a(null),D=a(""),E=a("区域"),G=a(""),H=a("主题"),J=a(""),K=a("参观形式"),T=a(""),U=a("开放模式"),q=a(""),A=a("收费类型"),B=a(""),L=l(()=>{var e;return[{label:"区域",value:""},...((null==(e=z.value)?void 0:e.district)??[]).map(e=>({label:e.label,value:e.value}))]}),M=l(()=>{var e;return[{label:"主题",value:""},...((null==(e=z.value)?void 0:e.venue_type)??[]).map(e=>({label:e.label,value:e.value}))]}),O=l(()=>{var e;return[{label:"参观形式",value:""},...((null==(e=z.value)?void 0:e.venue_appointment_type)??[]).map(e=>({label:e.label,value:e.value}))]}),Q=l(()=>{var e;return[{label:"开放模式",value:""},...((null==(e=z.value)?void 0:e.venue_open_mode)??[]).map(e=>({label:e.label,value:e.value}))]}),R=l(()=>{var e;return[{label:"收费类型",value:""},...((null==(e=z.value)?void 0:e.ticket_type)??[]).map(e=>({label:e.label,value:e.value}))]});function S(e){return $(e)}const W=l(()=>{var e;const a={};for(const l of(null==(e=z.value)?void 0:e.venue_type)??[])a[l.value]=l.label;return a}),X=l(()=>{var e;const a={};for(const l of(null==(e=z.value)?void 0:e.ticket_type)??[])a[l.value]=l.label;return a}),Y=l(()=>{var e;const a={};for(const l of(null==(e=z.value)?void 0:e.venue_open_mode)??[])a[l.value]=l.label;return a});const Z=l(()=>{const e=D.value.trim();return P.value.filter(a=>{if(G.value&&(a.district||"")!==G.value)return!1;if(J.value&&!S(a).includes(J.value))return!1;if(T.value&&(a.appointment_type||"")!==T.value)return!1;if(q.value&&(a.open_mode||"")!==q.value)return!1;if("free"===B.value&&"free"!==(a.ticket_type||""))return!1;if("paid"===B.value&&"paid"!==(a.ticket_type||""))return!1;if(e){if(!`${a.name||""}${a.address||""}`.includes(e))return!1}return!0})});function ee(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 ae=l(()=>[...Z.value].sort(ee));function le(e,a){const l=e.findIndex(e=>e.value===a);return l>=0?l:0}const ue=l(()=>le(L.value,G.value)),te=l(()=>le(M.value,J.value)),se=l(()=>le(O.value,T.value)),re=l(()=>le(Q.value,q.value)),ne=l(()=>le(R.value,B.value));function ve(e){const a=L.value[Number(e.detail.value)];a&&(E.value=a.label,G.value=a.value)}function oe(e){const a=M.value[Number(e.detail.value)];a&&(H.value=a.label,J.value=a.value)}function ce(e){const a=O.value[Number(e.detail.value)];a&&(K.value=a.label,T.value=a.value)}function ie(e){const a=Q.value[Number(e.detail.value)];a&&(U.value=a.label,q.value=a.value)}function de(e){const a=R.value[Number(e.detail.value)];a&&(A.value=a.label,B.value=a.value)}const me=l(()=>!!(G.value||J.value||T.value||q.value||B.value||D.value.trim()));return u(()=>{!async function(){const[e,a]=await Promise.all([w(),C()]);z.value=e,P.value=a||[]}()}),(e,a)=>{const l=o,u=c,w=r,C=m,$=d;return n(),t(w,{class:"page"},{default:s(()=>[v(w,{class:"map-section"},{default:s(()=>[v(w,{class:"toolbar"},{default:s(()=>[v(w,{class:"search-wrap"},{default:s(()=>[v(l,{modelValue:D.value,"onUpdate:modelValue":a[0]||(a[0]=e=>D.value=e),class:"search-input",placeholder:"请输入你要搜索的内容","placeholder-class":"ph"},null,8,["modelValue"]),v(u,{class:"search-icon-img",src:i(j),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),v(w,{class:"filters"},{default:s(()=>[v($,{mode:"selector",range:L.value,"range-key":"label",value:ue.value,onChange:ve},{default:s(()=>[v(w,{class:"f-item"},{default:s(()=>[v(C,{class:"f-item-text"},{default:s(()=>[f(p(E.value),1)]),_:1}),v(u,{class:"f-item-arrow",src:i(F),mode:"aspectFit"},
|