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.2 KiB

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