|
|
import{d as e,r as t,o as l,a,w as n,b as u,c as o,i,e as s,f as r,g as c,h as d,t as v,j as f,k as m,l as p,_,m as g,n as y,s as b,p as h,u as k,S as w,q as N,I as T,v as C,x as F,y as E,z as I,F as x,A as L,B as $,C as S,D as z}from"./index-D6mr_Py2.js";import{r as A,g as R}from"./home.CnQqLzHd.js";import{g as P,t as j,b as M,v as Z,n as D,a as O}from"./peopleCounting.DFftmiSi.js";import{P as V}from"./poster.C6TYC1FC.js";import{s as W}from"./search.BJnl3YRK.js";import{g as U,w as K,v as Y,a as B,b as G,m as X,d as Q,c as q}from"./suzhouDistrictPolygons.C_blUQfv.js";import{f as H,a as J,b as ee,c as te}from"./activity.CPaCOiZ6.js";import{v as le}from"./venueTypes.DuAf5T5V.js";import{v as ae,o as ne,a as ue,c as oe}from"./venueThemeColors.DRxjaxXI.js";import{m as ie,a as se}from"./text.BxMbQPAt.js";const re={lat:31.2989,lng:120.5853},ce={lat:.085,lng:.098};function de(e=ce){const t=re,l=e.lat,a=e.lng;return[{latitude:t.lat-l,longitude:t.lng-a},{latitude:t.lat-l,longitude:t.lng+a},{latitude:t.lat+l,longitude:t.lng-a},{latitude:t.lat+l,longitude:t.lng+a}]}const ve=new Map,fe="#05c9ac";function me(e){const t=function(e){if(!e||"string"!=typeof e)return fe;let t=e.trim();if(t.startsWith("#")||(t=`#${t}`),/^#[0-9A-Fa-f]{6}$/.test(t))return t;if(/^#[0-9A-Fa-f]{3}$/.test(t)){const e=t[1],l=t[2],a=t[3];return`#${e}${e}${l}${l}${a}${a}`}return fe}(e||"");if(ve.has(t))return ve.get(t);if("undefined"==typeof document)return ve.set(t,""),"";const l=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 56" width="48" height="56">\n<path fill="${t}" stroke="#ffffff" stroke-width="2" stroke-linejoin="round" d="M24 4C14.6 4 7 11.4 7 20.5C7 32 24 50 24 50S41 32 41 20.5C41 11.4 33.4 4 24 4Z"/>\n<circle cx="24" cy="21" r="7" fill="#ffffff"/>\n<circle cx="24" cy="21" r="3.5" fill="${t}"/>\n</svg>`)}`;return ve.set(t,l),l}let pe=null;function _e(e){pe=e}let ge=null;function ye(){return String("ebd6693edf7730d8f8f9a7ba1719f5c1").trim()}function be(e){const t=window.T,l=new t.TileLayer(function(e){return`https://t0.tianditu.gov.cn/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${e}`}(e),{minZoom:1,maxZoom:18}),a=new t.TileLayer(function(e){return`https://t0.tianditu.gov.cn/cva_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${e}`}(e),{minZoom:1,maxZoom:18});return[l,a]}function he(e,t){const l=U(e,t);return new window.T.LngLat(l.lng,l.lat)}function ke(e){const{lng:t,lat:l}=function(e){if(!e)throw new Error("missing lnglat");const t="function"==typeof e.getLng?e.getLng():"number"==typeof e.lng?e.lng:NaN,l="function"==typeof e.getLat?e.getLat():"number"==typeof e.lat?e.lat:NaN;if(!Number.isFinite(t)||!Number.isFinite(l))throw new Error("invalid lnglat");return{lng:t,lat:l}}(e.lnglat),a=K(t,l);return{lat:Number(a.lat.toFixed(6)),lng:Number(a.lng.toFixed(6))}}function we(e){const t=(e||"").trim();if(!t.startsWith("#"))return{color:"#05C9AC",opacity:.9};if(9===t.length){const e=t.slice(0,7),l=parseInt(t.slice(7,9),16)/255;return{color:e,opacity:Number.isFinite(l)?l:.9}}return{color:t.slice(0,7),opacity:.9}}const Ne=_(e({__name:"TiandituMap",props:{latitude:{},longitude:{},zoom:{},markers:{default:()=>[]},polygons:{default:()=>[]},fitPoints:{default:()=>[]},fitKey:{default:""},useFitPoints:{type:Boolean,default:!0},markerTapFn:{}},emits:["venue-marker-tap","markertap","tap","zoomchange"],setup(e,{emit:_}){const g=e,y=_,b=t(null),h=t(""),k=t(!1),w=t(!ye());let N=null,T=[];const C=new WeakMap;let F=[],E=!1,I="",x=!1,L=0;function $(e){var t;const l=Number(e);Number.isFinite(l)&&(L=Date.now()+500,null==(t=g.markerTapFn)||t.call(g,l),function(e){const t=Number(e);Number.isFinite(t)&&(null==pe||pe(t))}(l),y("venue-marker-tap",l),y("markertap",{detail:{markerId:l}}))}function S(e){var t,l;if(!e||"object"!=typeof e)return null;const a=C.get(e);if("number"==typeof a&&Number.isFinite(a))return a;for(const u of T)if(u.overlay===e)return u.id;const n=e.options;return null!=(null==(t=null==n?void 0:n.extData)?void 0:t.venueId)?Number(n.extData.venueId):null!=(null==(l=null==n?void 0:n.item)?void 0:l.id)?Number(n.item.id):null}function z(e){e.stopPropagation()}function A(e,t){const l=t;"function"==typeof l.addEventListener&&l.addEventListener("click",t=>{$(S(null==t?void 0:t.target)??e)})}function R(){var e,t;if(!N||!k.value)return;null==(e=N.checkResize)||e.call(N);const l=g.fitKey??"";g.useFitPoints&&((null==(t=g.fitPoints)?void 0:t.length)??0)>0?l!==I&&(I=l,function(){var e;if(N){if(g.useFitPoints&&(null==(e=g.fitPoints)?void 0:e.length)){const e=g.fitPoints.map(e=>he(e.longitude,e.latitude));return N.setViewport(e),void y("zoomchange",N.getZoom())}N.centerAndZoom(he(g.longitude,g.latitude),g.zoom)}}()):(I="",N.setZoom(g.zoom),N.centerAndZoom(he(g.longitude,g.latitude),g.zoom)),function(){if(!N||!window.T)return;const e=window.T;for(const t of F)N.removeOverLay(t);F=[];for(const t of g.polygons){const l=(t.points||[]).filter(e=>Number.isFinite(e.latitude)&&Number.isFinite(e.longitude));if(l.length<3)continue;const a=we(t.strokeColor||"#05C9ACE6"),n=we(t.fillColor||"#05C9AC14"),u=l.map(e=>he(e.longitude,e.latitude)),o=new e.Polygon(u,{color:a.color,weight:t.strokeWidth??2,opacity:a.opacity,fillColor:n.color,fillOpacity:.35*n.opacity});N.addOverLay(o),F.push(o)}}(),function(){var e,t;if(!N||!window.T)return;const l=window.T;for(const a of T)N.removeOverLay(a.overlay);T=[];for(const a of g.markers){const n=Number(a.latitude),u=Number(a.longitude);if(!Number.isFinite(n)||!Number.isFinite(u))continue;const o={};if(a.iconPath){const n=a.width||28,u=a.height||32,i=((null==(e=a.anchor)?void 0:e.x)??.5)*n,s=((null==(t=a.anchor)?void 0:t.y)??1)*u;o.icon=new l.Icon({iconUrl:a.iconPath,iconSize:new l.Point(n,u),iconAnchor:new l.Point(i,s)})}const i=new l.Marker(he(u,n),{...o,extData:{venueId:a.id},item:{id:a.id}});C.set(i,a.id),A(a.id,i),N.addOverLay(i),T.push({id:a.id,overlay:i})}}()}function P(e){const t=S(e.target);if(null==t){try{const{lat:t,lng:l}=ke(e),a=function(e,t){const l=(null==N?void 0:N.getZoom())??g.zoom??12,a=.006/Math.pow(2,.5*Math.max(0,l-11)),n=a*a;let u=null,o=1/0;for(const i of g.markers){const l=Number(i.latitude),a=Number(i.longitude);if(!Number.isFinite(l)||!Number.isFinite(a))continue;const s=1.15*(l-e),r=a-t,c=s*s+r*r;c<=n&&c<o&&(o=c,u=i)}return u}(t,l);if(a)return void $(a.id)}catch{}Date.now()<L||y("tap")}else $(t)}async function j(){if(b.value){h.value="";try{if(await async function(){if("undefined"==typeof window)throw new Error("天地图仅支持 H5 浏览器");if(window.T)return;const e=ye();if(!e)throw new Error("请先配置 VITE_TIANDITU_TK");if(ge||(ge=new Promise((t,l)=>{const a=document.createElement("script");a.src=`https://api.tianditu.gov.cn/api?v=4.0&tk=${encodeURIComponent(e)}`,a.async=!0,a.onload=()=>t(),a.onerror=()=>l(new Error("天地图 SDK 加载失败")),document.head.appendChild(a)})),await ge,!window.T)throw new Error("天地图 SDK 未就绪")}(),N)return;N=function(e,t,l,a){var n,u,o,i;const s=ye(),r=new window.T.Map(e,{projection:"EPSG:4326",layers:be(s)});return r.centerAndZoom(he(t,l),a),null==(n=r.enableScrollWheelZoom)||n.call(r),null==(u=r.enableDrag)||u.call(r),null==(o=r.enableDoubleClickZoom)||o.call(r),null==(i=r.enablePinchToZoom)||i.call(r),r}(b.value,g.longitude,g.latitude,g.zoom),function(e){if(x)return;x=!0;const t=["touchstart","touchmove","touchend","wheel"];for(const l of t)e.addEventListener(l,z,!1);e.addEventListener("click",z,!1)}(b.value),N&&!E&&(N.addEventListener("click",e=>P(e)),N.addEventListener("zoomend",()=>{N&&y("zoomchange",N.getZoom())}),E=!0),k.value=!0,I="",R(),setTimeout(()=>{var e;null==(e=null==N?void 0:N.checkResize)||e.call(N)},200)}catch(e){h.value=(null==e?void 0:e.message)||"地图加载失败"}}}return l(()=>{j()}),a(()=>{!function(){if(N){for(const e of T)N.removeOverLay(e.overlay);T=[];for(const e of F)N.removeOverLay(e);F=[]}}(),N=null,k.value=!1,I="",E=!1,x=!1}),n(()=>[g.latitude,g.longitude,g.zoom,g.fitKey,g.useFitPoints,g.markers,g.polygons,g.fitPoints],()=>R(),{deep:!0}),(e,t)=>{const l=i,a=p;return u(),o(l,{class:"tdt-wrap",onTouchmove:t[0]||(t[0]=s(()=>{},["stop"]))},{default:r(()=>[c("div",{ref_key:"rootRef",ref:b,class:"tdt-map"},null,512),h.value?(u(),o(l,{key:0,class:"tdt-err"},{default:r(()=>[d(v(h.value),1)]),_:1})):w.value?(u(),o(l,{key:1,class:"tdt-err"},{default:r(()=>[d("未配置 VITE_TIANDITU_TK")]),_:1})):f("",!0),m(a,{class:"tdt-copy"},{default:r(()=>[d("审图号:GS(2024)0568号 · 数据来源:天地图")]),_:1})]),_:1})}}}),[["__scopeId","data-v-b885381f"]]),Te=.92,Ce=_(e({__name:"index",setup(e){const c={backgroundImage:"url(/h5/assets/head-BCNsV_in.png)",backgroundSize:"cover",backgroundPosition:"center top",backgroundRepeat:"no-repeat"},_=t(!1),U=t(null),K=t(null),ce=t({latitude:re.lat,longitude:re.lng}),ve=t(11),fe=t("map"),pe=t(""),ge=t("区域"),ye=t(""),be=t("主题"),he=t(""),ke=t("预约模式"),we=t(""),Ce=t("开放模式"),Fe=t(""),Ee=t("收费类型"),Ie=t(""),xe=t(null),Le=g(()=>{var e,t;const l={};for(const a of(null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.venue_type)??[])l[a.value]=a.label;return l}),$e=g(()=>{var e,t;const l={};for(const a of(null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.ticket_type)??[])l[a.value]=a.label;return l}),Se=g(()=>{var e,t;const l={};for(const a of(null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.venue_open_mode)??[])l[a.value]=a.label;return l});function ze(e){return e?Le.value[e]||e:""}function Ae(e){return e?$e.value[e]||e:""}function Re(e){return e?Se.value[e]||e:""}g(()=>{var e,t;const l={};for(const a of(null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.venue_booking_mode)??[])l[a.value]=a.label;return l});const Pe=g(()=>{var e,t;const l=j(K.value);if(null!=l)return l.toLocaleString();return Number((null==(t=null==(e=U.value)?void 0:e.stats)?void 0:t.in_venue_total)??0).toLocaleString()}),je=g(()=>{var e;const t=K.value;if(t&&200===t.code&&Array.isArray(t.venues)){const e=M(t.groups),l=[...t.venues].map(t=>{var l,a,n;const u=Z(t.venueId),o=null!=u?null==(n=null==(a=null==(l=U.value)?void 0:l.all_venues)?void 0:a.find(e=>e.id===u))?void 0:n.name:void 0;return{id:u??0,name:O(t,e,o),people_count:D(t.enter,t.exit)}}).filter(e=>e.id>0).sort((e,t)=>t.people_count-e.people_count),a=[];for(let t=0;t<3;t++){const e=l[t];e&&e.people_count>0?a.push({id:e.id,name:e.name,people_count:e.people_count,empty:!1}):a.push({id:0,name:"",people_count:0,empty:!0})}return a}const l=[...(null==(e=U.value)?void 0:e.top_live_venues)??[]].sort((e,t)=>Number(t.people_count??0)-Number(e.people_count??0)),a=[];for(let n=0;n<3;n++){const e=l[n];e&&Number(e.people_count)>0?a.push({id:e.id,name:e.name,people_count:e.people_count,empty:!1}):a.push({id:0,name:"",people_count:0,empty:!0})}return a}),Me=g(()=>{var e,t;return[{label:"区域",value:""},...((null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.district)??[]).map(e=>({label:e.label,value:e.value}))]}),Ze=g(()=>{var e,t;return[{label:"主题",value:""},...((null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.venue_type)??[]).map(e=>({label:e.label,value:e.value}))]}),De=g(()=>{var e,t;return[{label:"预约模式",value:""},...((null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.venue_booking_mode)??[]).map(e=>({label:e.label,value:e.value}))]}),Oe=g(()=>{var e,t;return[{label:"开放模式",value:""},...((null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.venue_open_mode)??[]).map(e=>({label:e.label,value:e.value}))]}),Ve=g(()=>{var e,t;return[{label:"收费类型",value:""},...((null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.ticket_type)??[]).map(e=>({label:e.label,value:e.value}))]});function We(e,t){const l=e.findIndex(e=>e.value===t);return l>=0?l:0}const Ue=g(()=>We(Me.value,ye.value)),Ke=g(()=>We(Ze.value,he.value)),Ye=g(()=>We(De.value,we.value)),Be=g(()=>We(Oe.value,Fe.value)),Ge=g(()=>We(Ve.value,Ie.value));function Xe(e){const t=Me.value[Number(e.detail.value)];t&&(ge.value=t.label,ye.value=t.value)}function Qe(e){const t=Ze.value[Number(e.detail.value)];t&&(be.value=t.label,he.value=t.value)}function qe(e){const t=De.value[Number(e.detail.value)];t&&(ke.value=t.label,we.value=t.value)}function He(e){const t=Oe.value[Number(e.detail.value)];t&&(Ce.value=t.label,Fe.value=t.value)}function Je(e){const t=Ve.value[Number(e.detail.value)];t&&(Ee.value=t.label,Ie.value=t.value)}function et(e){return le(e)}function tt(e){const t=Number(e.sort);return Number.isFinite(t)?t:0}function lt(e,t){const l=tt(e)-tt(t);return 0!==l?l:e.id-t.id}function at(e){const t=[];for(const l of e){const e=Number(l.lat),a=Number(l.lng);Number.isFinite(e)&&Number.isFinite(a)&&t.push({lat:e,lng:a})}return t}const nt=g(()=>{var e;const t=pe.value.trim(),l=(null==(e=U.value)?void 0:e.all_venues)??[],a=t&&l.some(e=>ie(e.name,t));return l.filter(e=>{if(!1===e.is_active)return!1;if(ye.value&&!Y(String(e.district||""),ye.value))return!1;if(he.value&&!et(e).includes(he.value))return!1;if(we.value&&(e.booking_mode||"")!==we.value)return!1;if(Fe.value&&(e.open_mode||"")!==Fe.value)return!1;if("free"===Ie.value&&"free"!==(e.ticket_type||""))return!1;if("paid"===Ie.value&&"paid"!==(e.ticket_type||""))return!1;if(t)if(a){if(!ie(e.name,t))return!1}else{const l=`${e.name||""}${e.address||""}`;if(!se(l,t,String(e.name||"")))return!1}return!0})}),ut=g(()=>[...nt.value].sort(lt)),ot=g(()=>{if(!pe.value.trim())return null;const e=ut.value;if(1!==e.length)return null;const t=e[0],l=Number(t.lat),a=Number(t.lng);return Number.isFinite(l)&&Number.isFinite(a)?t:null}),it=g(()=>{var e;if(!pe.value.trim())return null;if(null==(e=ye.value)?void 0:e.trim())return null;const t=ut.value;if(t.length<2)return null;for(const l of t){const e=Number(l.lat),t=Number(l.lng);if(Number.isFinite(e)&&Number.isFinite(t))return l}return null}),st=g(()=>{var e,t;const l=null==(e=ye.value)?void 0:e.trim();return l?((null==(t=U.value)?void 0:t.map_venues)??[]).filter(e=>Y(String(e.district||""),l)):[]}),rt=g(()=>{var e;if(!(null==(e=ye.value)?void 0:e.trim()))return null;const t=ye.value.trim(),l=B(t);if(null==l?void 0:l.length)return l;const a=G(at(st.value));return a&&a.length>=3?[a]:null}),ct=g(()=>{const e=rt.value;return(null==e?void 0:e.length)?e.map(e=>({points:e,strokeWidth:2,strokeColor:"#05C9ACE6",fillColor:"#05C9AC14",zIndex:5})):[]}),dt=g(()=>{var e;if(!(null==(e=ye.value)?void 0:e.trim()))return[];const t=rt.value,l=[];if(null==t?void 0:t.length)for(const a of t)for(const e of a)l.push({latitude:e.latitude,longitude:e.longitude});if(!l.length){const e=G(at(st.value),.012);if(null==e?void 0:e.length)for(const t of e)l.push({latitude:t.latitude,longitude:t.longitude})}return l});function vt(e,t){if(!e.length)return[];let l=1/0,a=-1/0,n=1/0,u=-1/0;for(const c of e)c.latitude<l&&(l=c.latitude),c.latitude>a&&(a=c.latitude),c.longitude<n&&(n=c.longitude),c.longitude>u&&(u=c.longitude);if(!Number.isFinite(l)||a<=l||!Number.isFinite(n)||u<=n)return e.map(e=>({...e}));const o=(l+a)/2,i=(n+u)/2,s=(a-l)/2*t,r=(u-n)/2*t;return[{latitude:o-s,longitude:i-r},{latitude:o-s,longitude:i+r},{latitude:o+s,longitude:i-r},{latitude:o+s,longitude:i+r}]}const ft=g(()=>!!(he.value||we.value||Fe.value||Ie.value||pe.value.trim())),mt=g(()=>{var e,t;if(null==(e=ye.value)?void 0:e.trim()){const e=dt.value;if(e.length)return vt(e,Te)}if(!(null==(t=ye.value)?void 0:t.trim())&&ft.value&&ut.value.length>0){const e=de().map(e=>({...e})),t=G(at(ut.value),.018);if(null==t?void 0:t.length)for(const l of t)e.push({latitude:l.latitude,longitude:l.longitude});return vt(e,Te)}return vt(de(),Te)}),pt=g(()=>X(ye.value)),_t=g(()=>{if(ot.value)return 15;const e=pt.value;return null!=e?e:ft.value?9:ve.value}),gt=g(()=>{if(null!=pt.value)return;if(ft.value)return;const e=mt.value;return e.length?e:void 0}),yt=g(()=>{const e=ot.value;if(e)return`s-${e.id}-${pe.value.trim()}`;const t=it.value;if(t)return`m-${t.id}-${pe.value.trim()}`;const l=pt.value;return null!=l?`d-${ye.value||""}-${l}`:ft.value?"z9":"fit"});g(()=>{var e;if((null==(e=ye.value)?void 0:e.trim())&&dt.value.length)try{const e=k(48);return[e,e,e,e]}catch{return[16,16,16,16]}});const bt=g(()=>!!(ye.value||he.value||we.value||Fe.value||Ie.value||pe.value.trim())),ht=g(()=>{var e,t;if(null==xe.value)return null;const l=Number(xe.value),a=e=>(null==e?void 0:e.find(e=>Number(e.id)===l))??null;return a(ut.value)??a(nt.value)??a(null==(e=U.value)?void 0:e.map_venues)??a(null==(t=U.value)?void 0:t.all_venues)??null});function kt(e){var t,l;return oe(e,null==(l=null==(t=U.value)?void 0:t.venue_dicts)?void 0:l.venue_type)}n([ut,ye,rt,ft,pe],()=>{var e,t;const l=ot.value;if(l)return void(ce.value={latitude:Number(l.lat),longitude:Number(l.lng)});const a=it.value;if(a)return void(ce.value={latitude:Number(a.lat),longitude:Number(a.lng)});const n=rt.value;if((null==(e=ye.value)?void 0:e.trim())&&(null==n?void 0:n.length)){const e=q(n);return void(ce.value={latitude:e.latitude,longitude:e.longitude})}(null==(t=ye.value)?void 0:t.trim())||ft.value,Dt()}),n(nt,e=>{if(null==xe.value)return;const t=Number(xe.value);e.some(e=>Number(e.id)===t)||(xe.value=null)}),n(fe,e=>{if("list"===e&&(xe.value=null),"map"===e){const e=X(ye.value);null!=e?ve.value=e:ft.value?ve.value=9:ve.value=11}}),n([ye,he,we,Fe,Ie,pe],()=>{"map"===fe.value&&setTimeout(()=>{const e=X(ye.value);null!=e?ve.value=e:ft.value?ve.value=9:ve.value=11},100)});let wt=null;n([ut,bt],()=>{wt&&(clearTimeout(wt),wt=null),"map"===fe.value&&(!bt.value||ut.value.length>0||(wt=setTimeout(()=>{wt=null,h({title:"暂无符合条件的场馆",icon:"none",duration:2e3})},150)))});const Nt=g(()=>Math.round(k(120))),Tt=g(()=>{const e=_t.value>=13;return ut.value.map(t=>{const l=(t.name||"").trim(),a="苏州科技馆"===l,n=function(e,t){const l=e.venue_type_color;return l&&"string"==typeof l&&function(e){if(!e||"string"!=typeof e)return null;let t=e.trim();t.startsWith("#")||(t=`#${t}`);const l=t.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);if(!l)return null;let a=l[1];return 3===a.length&&(a=`${a[0]}${a[0]}${a[1]}${a[1]}${a[2]}${a[2]}`),a.toLowerCase()}(l.trim())?l.trim():t()}(t,()=>function(e){var t,l;if(!e)return"#05c9ac";const a=le(e)[0];if(a&&(null==(l=null==(t=U.value)?void 0:t.venue_dicts)?void 0:l.venue_type)){const e=U.value.venue_dicts.venue_type.find(e=>e.value===a);if(null==e?void 0:e.color)return e.color}return e.venue_type_color||"#05c9ac"}(t)),u=a?"/h5/assets/szkjg-BA5yQZYG.jpg":me(n),o={id:t.id,latitude:t.lat,longitude:t.lng,width:a?Nt.value:28,height:a?Nt.value:32,iconPath:u,anchor:a?{x:.5,y:.5}:{x:.5,y:1}};return e&&l&&(o.label={content:l,color:"#1d2129",fontSize:11,bgColor:"rgba(255,255,255,0.92)",padding:3,borderRadius:4,anchorX:0,anchorY:-4}),o})});function Ct(e){ft.value||null==X(ye.value)&&Number.isFinite(e)&&(ve.value=e)}let Ft=!1,Et=0;function It(e){const t=Number(e);Number.isFinite(t)&&(Et=Date.now(),xe.value=t,Ft=!0,setTimeout(()=>{Ft=!1},500))}function xt(e){const t=function(e){if("number"==typeof e&&Number.isFinite(e))return e;if(!e||"object"!=typeof e)return null;const t=e;if("number"==typeof t.detail&&Number.isFinite(t.detail))return t.detail;const l=t.detail;return l&&"object"==typeof l&&"number"==typeof l.markerId?l.markerId:"number"==typeof t.markerId?t.markerId:null}(e);null!=t&&It(t)}function Lt(){Ft||Date.now()-Et<500||(xe.value=null)}function $t(){xe.value=null}function St(e){e&&S({url:`/pages/venue/detail?id=${e}`})}function zt(){S({url:"/pages/stats/index"})}function At(){z({url:"/pages/activity/index"})}function Rt(){z({url:"/pages/discover/index"})}function Pt(e){const t=e.schedule_status;return"not_started"===t||"ongoing"===t||"ended"===t?t:te(e.start_at,e.end_at)}function jt(e){return J(e)}function Mt(e){return ee(Pt(e))}function Zt(e){return`st-${Pt(e)}`}function Dt(){ce.value={latitude:re.lat,longitude:re.lng}}return y(()=>{_e(It),async function(){try{K.value=await P()}catch{K.value=null}}(),A().catch(()=>{})}),l(async()=>{_e(It),await async function(){_.value=!0;try{const e=await R();U.value=e,Dt(),await b().catch(()=>{}),A().catch(()=>{})}catch(e){h({title:(null==e?void 0:e.message)||"加载首页失败",icon:"none"})}finally{_.value=!1}}()}),a(()=>{_e(null)}),(e,t)=>{const l=i,a=p,n=T,g=C,y=E,b=w;return u(),o(l,{class:"page-root"},{default:r(()=>[m(b,{"scroll-y":"",class:"page"},{default:r(()=>{var e,i;return[m(l,{class:"hero"},{default:r(()=>[m(l,{class:"hero-brand",style:c}),m(l,{class:"hero-content"},{default:r(()=>[m(l,{class:"map-section"},{default:r(()=>[m(l,{class:"toolbar"},{default:r(()=>[m(l,{class:"tabs"},{default:r(()=>[m(a,{class:N(["tab",{on:"map"===fe.value}]),onClick:t[0]||(t[0]=e=>fe.value="map")},{default:r(()=>[d("地图")]),_:1},8,["class"]),m(a,{class:N(["tab",{on:"list"===fe.value}]),onClick:t[1]||(t[1]=e=>fe.value="list")},{default:r(()=>[d("列表")]),_:1},8,["class"])]),_:1}),m(l,{class:"search-wrap"},{default:r(()=>[m(n,{modelValue:pe.value,"onUpdate:modelValue":t[2]||(t[2]=e=>pe.value=e),class:"search-input",placeholder:"请输入您要搜索的内容","placeholder-class":"ph"},null,8,["modelValue"]),m(g,{class:"search-icon-img",src:F(W),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),m(l,{class:"filters"},{default:r(()=>[m(y,{mode:"selector",range:Me.value,"range-key":"label",value:Ue.value,onChange:Xe},{default:r(()=>[m(l,{class:"f-item"},{default:r(()=>[m(a,{class:"f-item-text"},{default:r(()=>[d(v(ge.value),1)]),_:1}),m(g,{class:"f-item-arrow",src:F(Q),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"]),m(y,{mode:"selector",range:Ze.value,"range-key":"label",value:Ke.value,onChange:Qe},{default:r(()=>[m(l,{class:"f-item"},{default:r(()=>[m(a,{class:"f-item-text"},{default:r(()=>[d(v(be.value),1)]),_:1}),m(g,{class:"f-item-arrow",src:F(Q),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"]),m(y,{mode:"selector",range:Ve.value,"range-key":"label",value:Ge.value,onChange:Je},{default:r(()=>[m(l,{class:"f-item"},{default:r(()=>[m(a,{class:"f-item-text"},{default:r(()=>[d(v(Ee.value),1)]),_:1}),m(g,{class:"f-item-arrow",src:F(Q),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"]),m(y,{mode:"selector",range:De.value,"range-key":"label",value:Ye.value,onChange:qe},{default:r(()=>[m(l,{class:"f-item"},{default:r(()=>[m(a,{class:"f-item-text"},{default:r(()=>[d(v(ke.value),1)]),_:1}),m(g,{class:"f-item-arrow",src:F(Q),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"]),m(y,{mode:"selector",range:Oe.value,"range-key":"label",value:Be.value,onChange:He},{default:r(()=>[m(l,{class:"f-item"},{default:r(()=>[m(a,{class:"f-item-text"},{default:r(()=>[d(v(Ce.value),1)]),_:1}),m(g,{class:"f-item-arrow",src:F(Q),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["range","value"])]),_:1}),"map"===fe.value?(u(),o(l,{key:0,class:"map-area"},{default:r(()=>[m(l,{class:"map-wrap",onTouchmove:t[3]||(t[3]=s(()=>{},["stop"]))},{default:r(()=>[(u(),o(Ne,{key:yt.value,class:"main-map",latitude:ce.value.latitude,longitude:ce.value.longitude,zoom:_t.value,markers:Tt.value,polygons:ct.value,"fit-points":gt.value||[],"fit-key":yt.value,"use-fit-points":!(!gt.value||!gt.value.length),"marker-tap-fn":It,onZoomchange:Ct,onMarkertap:xt,onClick:Lt},null,8,["latitude","longitude","zoom","markers","polygons","fit-points","fit-key","use-fit-points"]))]),_:1}),null!=xe.value&&ht.value?(u(),o(l,{key:0,class:"venue-sheet",onClick:t[5]||(t[5]=s(()=>{},["stop"]))},{default:r(()=>[m(l,{class:"venue-sheet-inner"},{default:r(()=>[m(l,{class:"sheet-bar"}),m(l,{class:"sheet-row"},{default:r(()=>[m(g,{class:"sheet-cover",src:ht.value.image||F(V),mode:"aspectFill"},null,8,["src"]),m(l,{class:"sheet-main"},{default:r(()=>[m(a,{class:"sheet-name"},{default:r(()=>[d(v(ht.value.name),1)]),_:1}),m(l,{class:"sheet-tags-line"},{default:r(()=>[m(l,{class:"sheet-meta"},{default:r(()=>{var e,t;return[(u(!0),I(x,null,L(et(ht.value),(e,t)=>(u(),o(a,{key:"svm-"+t,class:"sheet-type",style:$(F(ae)(kt(e)))},{default:r(()=>[d(v(ze(e)||e),1)]),_:2},1032,["style"]))),128)),ht.value.ticket_type?(u(),o(a,{key:0,class:N(["sheet-ticket","paid"===ht.value.ticket_type?"paid":"free"])},{default:r(()=>[d(v(Ae(ht.value.ticket_type)),1)]),_:1},8,["class"])):f("",!0),ht.value.open_mode?(u(),o(a,{key:1,class:"open-mode-tag",style:$(F(ne)(ht.value.open_mode,null==(t=null==(e=U.value)?void 0:e.venue_dicts)?void 0:t.venue_open_mode))},{default:r(()=>[d(v(Re(ht.value.open_mode)),1)]),_:1},8,["style"])):f("",!0)]}),_:1})]),_:1})]),_:1})]),_:1}),m(l,{class:"sheet-actions"},{default:r(()=>[m(l,{class:"sheet-btn ghost",onClick:$t},{default:r(()=>[d("关闭")]),_:1}),ht.value?(u(),o(l,{key:0,class:"sheet-btn primary",onClick:t[4]||(t[4]=e=>St(ht.value.id))},{default:r(()=>[d("详情")]),_:1})):f("",!0)]),_:1})]),_:1})]),_:1})):f("",!0)]),_:1})):(u(),o(b,{key:1,"scroll-y":"",class:"venue-list-scroll"},{default:r(()=>[(u(!0),I(x,null,L(ut.value,e=>(u(),o(l,{key:e.id,class:"venue-row",onClick:t=>St(e.id)},{default:r(()=>[m(g,{class:"venue-thumb",src:e.image||F(V),mode:"aspectFill"},null,8,["src"]),m(l,{class:"venue-info"},{default:r(()=>[m(a,{class:"venue-name"},{default:r(()=>[d(v(e.name),1)]),_:2},1024),m(l,{class:"venue-tags-line"},{default:r(()=>[m(l,{class:"venue-meta"},{default:r(()=>{var t,l;return[(u(!0),I(x,null,L(et(e),(t,l)=>(u(),o(a,{key:"vml-"+e.id+"-"+l,class:"venue-type-pill",style:$(F(ae)(kt(t)))},{default:r(()=>[d(v(ze(t)||t),1)]),_:2},1032,["style"]))),128)),e.ticket_type?(u(),o(a,{key:0,class:N(["venue-ticket-pill","paid"===e.ticket_type?"paid":"free"])},{default:r(()=>[d(v(Ae(e.ticket_type)),1)]),_:2},1032,["class"])):f("",!0),e.open_mode?(u(),o(a,{key:1,class:"open-mode-tag",style:$(F(ne)(e.open_mode,null==(l=null==(t=U.value)?void 0:t.venue_dicts)?void 0:l.venue_open_mode))},{default:r(()=>[d(v(Re(e.open_mode)),1)]),_:2},1032,["style"])):f("",!0)]}),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),ut.value.length?f("",!0):(u(),o(l,{key:0,class:"empty-tip"},{default:r(()=>[d(v(bt.value?"暂无符合条件的场馆":"暂无场馆"),1)]),_:1}))]),_:1}))]),_:1})]),_:1})]),_:1}),(u(),o(l,{key:0,class:"stat-section"},{default:r(()=>[m(l,{class:"stat-card"},{default:r(()=>[m(l,{class:"stat-card__body"},{default:r(()=>[m(l,{class:"stat-main"},{default:r(()=>[m(l,{class:"stat-left"},{default:r(()=>[m(a,{class:"stat-label"},{default:r(()=>[d("在馆实时总人数")]),_:1}),m(l,{class:"stat-note"},{default:r(()=>[d("(纳入市科协人数统计系统场馆)")]),_:1}),m(a,{class:"stat-num"},{default:r(()=>[d(v(Pe.value)+" 人",1)]),_:1})]),_:1}),m(l,{class:"stat-right"},{default:r(()=>[m(l,{class:"live-list"},{default:r(()=>[(u(!0),I(x,null,L(je.value,(e,t)=>(u(),o(l,{key:"live-"+t,class:N(["live-venue-row",{"is-empty":e.empty}]),onClick:s(t=>{var l;(l=e).empty||St(l.id)},["stop"])},{default:r(()=>[m(l,{class:"live-row-one"},{default:r(()=>[m(a,{class:"live-name"},{default:r(()=>[d(v(e.empty?"—":e.name),1)]),_:2},1024),m(a,{class:"live-count"},{default:r(()=>[d(v(e.empty?"—":e.people_count+" 人"),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1}),m(l,{class:"stat-foot",onClick:s(zt,["stop"])},{default:r(()=>[m(a,{class:"stat-foot-link"},{default:r(()=>[d("实时人数排行 >")]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})),m(l,{class:"section"},{default:r(()=>[m(l,{class:"sec-head"},{default:r(()=>[m(l,{class:"sec-bar"}),m(a,{class:"sec-title"},{default:r(()=>[d("热门活动")]),_:1}),m(a,{class:"sec-more",onClick:At},{default:r(()=>[d("更多 >")]),_:1})]),_:1}),m(b,{"scroll-x":"",class:"act-scroll","show-scrollbar":!1,"enable-flex":!0},{default:r(()=>[m(l,{class:"act-scroll-row"},{default:r(()=>{var e;return[(u(!0),I(x,null,L((null==(e=U.value)?void 0:e.hot_activities)??[],e=>(u(),o(l,{key:(e.list_kind||"activity")+"-"+e.id,class:"act-card",onClick:t=>function(e){"ticket_grab"!==e.list_kind?S({url:`/pages/activity/detail?id=${e.id}`}):S({url:`/pages/ticket-grab/detail?id=${e.id}`})}(e)},{default:r(()=>[m(l,{class:"act-img-wrap"},{default:r(()=>{var t,n,i;return[m(g,{class:"act-img",src:e.image||F(V),mode:"aspectFill"},null,8,["src"]),m(l,{class:N(["act-schedule-tag",Zt(e)])},{default:r(()=>[d(v(Mt(e)),1)]),_:2},1032,["class"]),"ticket_grab"===e.list_kind&&e.can_grab_today?(u(),o(l,{key:0,class:"act-book-badge is-grab"},{default:r(()=>[m(a,{class:"act-book-text is-grab"},{default:r(()=>[d("抢票")]),_:1})]),_:1})):jt(e)?(u(),o(l,{key:1,class:N(["act-book-badge",{"is-bookable":"brand"===(null==(t=jt(e))?void 0:t.kind),"is-muted":"muted"===(null==(n=jt(e))?void 0:n.kind),"is-accent":"accent"===(null==(i=jt(e))?void 0:i.kind)}])},{default:r(()=>{var t,l,n;return[m(a,{class:N(["act-book-text",{"is-bookable":"brand"===(null==(t=jt(e))?void 0:t.kind),"is-muted":"muted"===(null==(l=jt(e))?void 0:l.kind),"is-accent":"accent"===(null==(n=jt(e))?void 0:n.kind)}])},{default:r(()=>{var t;return[d(v(null==(t=jt(e))?void 0:t.text),1)]}),_:2},1032,["class"])]}),_:2},1032,["class"])):f("",!0)]}),_:2},1024),m(l,{class:"act-body"},{default:r(()=>[m(a,{class:"act-title"},{default:r(()=>[d(v(e.title),1)]),_:2},1024),m(l,{class:"act-tags"},{default:r(()=>[(u(!0),I(x,null,L(e.tags||[],(t,l)=>{var n,i;return u(),o(a,{key:"tag-"+e.id+"-"+l,class:"act-tag-chip",style:$(F(ue)(l,null==(i=null==(n=U.value)?void 0:n.venue_dicts)?void 0:i.venue_type))},{default:r(()=>[d(v(t),1)]),_:2},1032,["style"])}),128))]),_:2},1024),m(a,{class:"act-meta"},{default:r(()=>[d(v(F(H)(e.start_at,e.end_at)),1)]),_:2},1024),"ticket_grab"===e.list_kind?(u(),o(a,{key:0,class:"act-meta"},{default:r(()=>[d(v(Number(e.venue_count)||0)+"家场馆可抢票",1)]),_:2},1024)):(u(),o(a,{key:1,class:"act-meta"},{default:r(()=>[d(v(e.venue_name||e.address||"苏州"),1)]),_:2},1024))]),_:2},1024)]),_:2},1032,["onClick"]))),128))]}),_:1})]),_:1})]),_:1}),((null==(i=null==(e=U.value)?void 0:e.study_tours)?void 0:i.length)??0)>0?(u(),o(l,{key:1,class:"section"},{default:r(()=>{var e;return[m(l,{class:"sec-head"},{default:r(()=>[m(l,{class:"sec-bar"}),m(a,{class:"sec-title"},{default:r(()=>[d("科普四季研学线路推荐")]),_:1}),m(a,{class:"sec-more",onClick:Rt},{default:r(()=>[d("更多 >")]),_:1})]),_:1}),(u(!0),I(x,null,L((null==(e=U.value)?void 0:e.study_tours)??[],e=>(u(),o(l,{key:e.id,class:"tour-card",onClick:t=>{return l=e.id,void S({url:`/pages/study-tour/detail?id=${l}`});var l}},{default:r(()=>[m(l,{class:"tour-img-wrap"},{default:r(()=>[m(g,{class:"tour-img",src:e.cover_image||F(V),mode:"aspectFill"},null,8,["src"])]),_:2},1024),m(l,{class:"tour-body"},{default:r(()=>{var t;return[m(a,{class:"tour-title"},{default:r(()=>[d(v(e.name),1)]),_:2},1024),m(l,{class:"tour-stops-timeline"},{default:r(()=>[(u(!0),I(x,null,L(e.venue_names,(t,n)=>(u(),o(l,{key:"v-"+e.id+"-"+n,class:"tour-stop-row"},{default:r(()=>[m(l,{class:"tour-timeline-axis"},{default:r(()=>[m(l,{class:"tour-dot-cell"},{default:r(()=>[m(l,{class:"tour-tl-dot"})]),_:1}),n<e.venue_names.length-1?(u(),o(l,{key:0,class:"tour-tl-line"})):f("",!0)]),_:2},1024),m(a,{class:"tour-stop-name"},{default:r(()=>[d(v(t),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),(null==(t=e.tags)?void 0:t.length)?(u(),o(l,{key:0,class:"tour-tags-row"},{default:r(()=>[(u(!0),I(x,null,L(e.tags,(t,l)=>{var n,i;return u(),o(a,{key:"t-"+e.id+"-"+l,class:"tour-tag",style:$(F(ue)(l,null==(i=null==(n=U.value)?void 0:n.venue_dicts)?void 0:i.venue_type))},{default:r(()=>[d(v(t),1)]),_:2},1032,["style"])}),128))]),_:2},1024)):f("",!0)]}),_:2},1024)]),_:2},1032,["onClick"]))),128))]}),_:1})):f("",!0),m(l,{class:"bottom-safe"}),_.value?(u(),o(l,{key:2,class:"loading-mask"},{default:r(()=>[d("加载中...")]),_:1})):f("",!0)]}),_:1})]),_:1})}}}),[["__scopeId","data-v-92da3a4b"]]);export{Ce as default};
|