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

import{d as e,e as l,f as a,o as t,j as u,k as s,q as r,n as i,t as c,u as n,I as v,H as o,J as d,x as m,y as f,z as p,B as _,F as g,C as b,G as y,K as k}from"./index-DSGHFSST.js";import{g as h,a as j}from"./content.BwkqN995.js";import{s as x}from"./search.BJnl3YRK.js";import{d as F,F as C}from"./FilterPickerSheet.Dx1GkdvR.js";import{h as N,f as V}from"./geo.BHVFNtB7.js";import{_ as w}from"./_plugin-vue_export-helper.BCo6x5W8.js";const $=w(e({__name:"index",setup(e){const w=l([]),$=l(null),I=l(""),P=l("全部区域"),S=l(""),U=l("全部类型"),q=l(""),z=l("收费类型"),B=l(""),G=l(null),H=l(!1),J=l(""),K=l([]),A=l(""),D=l(null),E=a(()=>{var e;return[{label:"全部区域",value:""},...((null==(e=$.value)?void 0:e.district)??[]).map(e=>({label:e.label,value:e.value}))]}),L=a(()=>{var e;return[{label:"全部类型",value:""},...((null==(e=$.value)?void 0:e.venue_type)??[]).map(e=>({label:e.label,value:e.value}))]}),M=a(()=>{var e;return[{label:"收费类型",value:""},...((null==(e=$.value)?void 0:e.ticket_type)??[]).map(e=>({label:e.label,value:e.value}))]}),O=a(()=>{const e=I.value.trim();return w.value.filter(l=>{if(S.value&&(l.district||"")!==S.value)return!1;if(q.value&&(l.venue_type||"")!==q.value)return!1;if("free"===B.value&&"free"!==(l.ticket_type||""))return!1;if("paid"===B.value&&"paid"!==(l.ticket_type||""))return!1;if(e){if(!`${l.name||""}${l.address||""}`.includes(e))return!1}return!0})}),Q=a(()=>{const e=[...O.value],l=G.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 N(l.lat,l.lng,t,u)-N(l.lat,l.lng,s,r)}):e});function R(e){D.value=e,"district"===e?(J.value="选择区域",K.value=E.value,A.value=S.value):"type"===e?(J.value="选择场馆类型",K.value=L.value,A.value=q.value):(J.value="选择收费类型",K.value=M.value,A.value=B.value),H.value=!0}function T(e){const l=D.value;"district"===l?(P.value=e.label,S.value=e.value):"type"===l?(U.value=e.label,q.value=e.value):"ticket"===l&&(z.value=e.label,B.value=e.value)}function W(e){const l=G.value;if(!l)return"距离 --";const a=Number(e.lat),t=Number(e.lng);if(!a||!t)return"距离 --";const u=N(l.lat,l.lng,a,t);return`距您 ${V(u)}`}return t(()=>{!async function(){const[e,l]=await Promise.all([h(),j()]);$.value=e,w.value=l||[]}(),r({type:"gcj02",success:e=>{G.value={lat:e.latitude,lng:e.longitude}},fail:()=>{G.value=null}})}),(e,l)=>{const a=v,t=o,r=i,h=m;return c(),u(r,{class:"page"},{default:s(()=>[n(r,{class:"map-section"},{default:s(()=>[n(r,{class:"toolbar"},{default:s(()=>[n(r,{class:"search-wrap"},{default:s(()=>[n(a,{modelValue:I.value,"onUpdate:modelValue":l[0]||(l[0]=e=>I.value=e),class:"search-input",placeholder:"请输入你要搜索的内容","placeholder-class":"ph"},null,8,["modelValue"]),n(t,{class:"search-icon-img",src:d(x),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),n(r,{class:"filters"},{default:s(()=>[n(r,{class:"f-item",onClick:l[1]||(l[1]=e=>R("district"))},{default:s(()=>[n(h,{class:"f-item-text"},{default:s(()=>[f(p(P.value),1)]),_:1}),n(t,{class:"f-item-arrow",src:d(F),mode:"aspectFit"},null,8,["src"])]),_:1}),n(r,{class:"f-item",onClick:l[2]||(l[2]=e=>R("type"))},{default:s(()=>[n(h,{class:"f-item-text"},{default:s(()=>[f(p(U.value),1)]),_:1}),n(t,{class:"f-item-arrow",src:d(F),mode:"aspectFit"},null,8,["src"])]),_:1}),n(r,{class:"f-item",onClick:l[3]||(l[3]=e=>R("ticket"))},{default:s(()=>[n(h,{class:"f-item-text"},{default:s(()=>[f(p(z.value),1)]),_:1}),n(t,{class:"f-item-arrow",src:d(F),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1})]),_:1}),n(r,{class:"list"},{default:s(()=>[(c(!0),_(g,null,b(Q.value,e=>(c(),u(r,{key:e.id,class:"item",onClick:l=>{return a=e.id,void k({url:`/pages/venue/detail?id=${a}`});var a}},{default:s(()=>[e.cover_image?(c(),u(t,{key:0,class:"img",src:e.cover_image,mode:"aspectFill"},null,8,["src"])):(c(),u(r,{key:1,class:"img placeholder"})),n(r,{class:"body"},{default:s(()=>[n(r,{class:"name"},{default:s(()=>[f(p(e.name),1)]),_:2},1024),n(r,{class:"addr"},{default:s(()=>[f(p(e.address||"-"),1)]),_:2},1024),n(r,{class:"dist"},{default:s(()=>[f(p(W(e)),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),Q.value.length?y("",!0):(c(),u(r,{key:0,class:"empty-tip"},{default:s(()=>[f("暂无符合条件的场馆")]),_:1}))]),_:1}),n(C,{modelValue:H.value,"onUpdate:modelValue":l[4]||(l[4]=e=>H.value=e),title:J.value,options:K.value,"selected-value":A.value,onSelect:T},null,8,["modelValue","title","options","selected-value"])]),_:1})}}}),[["__scopeId","data-v-56138a78"]]);export{$ as default};