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
5.1 KiB

2 days ago
import{d as e,e as l,f as a,o as t,j as u,k as s,q as r,n,t as i,u as c,I as v,H as o,J as d,x as m,y as f,z as p,B as _,F as b,C as g,G as y,K as k}from"./index-BqJ4W6ZW.js";import{g as h,a as j}from"./content.B4VyUnMP.js";import{s as x}from"./search.BJnl3YRK.js";import{d as F,F as C}from"./FilterPickerSheet.CpgfYCDi.js";import{h as w,f as N}from"./geo.BHVFNtB7.js";import{v as V}from"./venueTypes.VBfNTKYP.js";import{_ as $}from"./_plugin-vue_export-helper.BCo6x5W8.js";const I=$(e({__name:"index",setup(e){const $=l([]),I=l(null),P=l(""),S=l("全部区域"),U=l(""),q=l("全部分类"),z=l(""),B=l("预约类型"),G=l(""),H=l("收费类型"),J=l(""),K=l(null),T=l(!1),A=l(""),D=l([]),E=l(""),L=l(null),M=a(()=>{var e;return[{label:"全部区域",value:""},...((null==(e=I.value)?void 0:e.district)??[]).map(e=>({label:e.label,value:e.value}))]}),O=a(()=>{var e;return[{label:"全部分类",value:""},...((null==(e=I.value)?void 0:e.venue_type)??[]).map(e=>({label:e.label,value:e.value}))]}),Q=a(()=>{var e;return[{label:"预约类型",value:""},...((null==(e=I.value)?void 0:e.venue_appointment_type)??[]).map(e=>({label:e.label,value:e.value}))]}),R=a(()=>{var e;return[{label:"收费类型",value:""},...((null==(e=I.value)?void 0:e.ticket_type)??[]).map(e=>({label:e.label,value:e.value}))]});const W=a(()=>{const e=P.value.trim();return $.value.filter(l=>{if(U.value&&(l.district||"")!==U.value)return!1;if(z.value&&!function(e){return V(e)}(l).includes(z.value))return!1;if(G.value&&(l.appointment_type||"")!==G.value)return!1;if("free"===J.value&&"free"!==(l.ticket_type||""))return!1;if("paid"===J.value&&"paid"!==(l.ticket_type||""))return!1;if(e){if(!`${l.name||""}${l.address||""}`.includes(e))return!1}return!0})}),X=a(()=>{const e=[...W.value],l=K.value;return l?e.sort((e,a)=>{const t=Number(e.lat),u=Number(e.lng),s=Number(a.lat),r=Number(a.lng);if(!t||!u)return 1;if(!s||!r)return-1;return w(l.lat,l.lng,t,u)-w(l.lat,l.lng,s,r)}):e});function Y(e){L.value=e,"district"===e?(A.value="选择区域",D.value=M.value,E.value=U.value):"type"===e?(A.value="选择场馆分类",D.value=O.value,E.value=z.value):"appointment"===e?(A.value="选择预约类型",D.value=Q.value,E.value=G.value):(A.value="选择收费类型",D.value=R.value,E.value=J.value),T.value=!0}function Z(e){const l=L.value;"district"===l?(S.value=e.label,U.value=e.value):"type"===l?(q.value=e.label,z.value=e.value):"appointment"===l?(B.value=e.label,G.value=e.value):"ticket"===l&&(H.value=e.label,J.value=e.value)}function ee(e){const l=K.value;if(!l)return"距离 --";const a=Number(e.lat),t=Number(e.lng);if(!a||!t)return"距离 --";const u=w(l.lat,l.lng,a,t);return`距您 ${N(u)}`}return t(()=>{!async function(){const[e,l]=await Promise.all([h(),j()]);I.value=e,$.value=l||[]}(),r({type:"gcj02",success:e=>{K.value={lat:e.latitude,lng:e.longitude}},fail:()=>{K.value=null}})}),(e,l)=>{const a=v,t=o,r=n,h=m;return i(),u(r,{class:"page"},{default:s(()=>[c(r,{class:"map-section"},{default:s(()=>[c(r,{class:"toolbar"},{default:s(()=>[c(r,{class:"search-wrap"},{default:s(()=>[c(a,{modelValue:P.value,"onUpdate:modelValue":l[0]||(l[0]=e=>P.value=e),class:"search-input",placeholder:"请输入你要搜索的内容","placeholder-class":"ph"},null,8,["modelValue"]),c(t,{class:"search-icon-img",src:d(x),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),c(r,{class:"filters"},{default:s(()=>[c(r,{class:"f-item",onClick:l[1]||(l[1]=e=>Y("district"))},{default:s(()=>[c(h,{class:"f-item-text"},{default:s(()=>[f(p(S.value),1)]),_:1}),c(t,{class:"f-item-arrow",src:d(F),mode:"aspectFit"},null,8,["src"])]),_:1}),c(r,{class:"f-item",onClick:l[2]||(l[2]=e=>Y("type"))},{default:s(()=>[c(h,{class:"f-item-text"},{default:s(()=>[f(p(q.value),1)]),_:1}),c(t,{class:"f-item-arrow",src:d(F),mode:"aspectFit"},null,8,["src"])]),_:1}),c(r,{class:"f-item",onClick:l[3]||(l[3]=e=>Y("appointment"))},{default:s(()=>[c(h,{class:"f-item-text"},{default:s(()=>[f(p(B.value),1)]),_:1}),c(t,{class:"f-item-arrow",src:d(F),mode:"aspectFit"},null,8,["src"])]),_:1}),c(r,{class:"f-item",onClick:l[4]||(l[4]=e=>Y("ticket"))},{d