import{h as e,d as l,r as a,c as t,w as s,o as u,a as n,b as c,e as i,s as o,f as r,g as d,i as v,j as f,S as _,k as p,l as m,m as y,n as g,p as k,q as h,t as b,u as w,v as C,x,y as j,z as F,A as I,F as S,B as $,C as L,D as T,I as J,E as P,G as V,M as A,H as M,J as q,K as z,L as B}from"./index-BznAv2H5.js";import{s as D}from"./search.BJnl3YRK.js";import{d as E}from"./down.BCKq9i8s.js";import{f as G}from"./activity.k1jR9V-B.js";import{h as H,f as K}from"./geo.BHVFNtB7.js";import{g as N}from"./markerPin.DdplcbG_.js";import{_ as U}from"./_plugin-vue_export-helper.BCo6x5W8.js";const O=U(l({__name:"index",setup(l){const U=a(!1),O=a(null),Q=a({latitude:31.2989,longitude:120.5853}),R=a("map"),W=a(""),X=a("全部区域"),Y=a(""),Z=a("全部类型"),ee=a(""),le=a("收费类型"),ae=a(""),te=a(null),se=a(null),ue=t(()=>{var e,l;const a={};for(const t of(null==(l=null==(e=O.value)?void 0:e.venue_dicts)?void 0:l.venue_type)??[])a[t.value]=t.label;return a}),ne=t(()=>{var e,l;const a={};for(const t of(null==(l=null==(e=O.value)?void 0:e.venue_dicts)?void 0:l.ticket_type)??[])a[t.value]=t.label;return a});function ce(e){return e?ue.value[e]||e:""}function ie(e){return e?ne.value[e]||e:""}function oe(e){try{"undefined"!=typeof window&&window.sessionStorage&&window.sessionStorage.setItem(p.locConsent,e)}catch{}try{h(p.locConsent,e)}catch{}}const re=t(()=>{var e,l;return((null==(l=null==(e=O.value)?void 0:e.stats)?void 0:l.reservation_total)??0).toLocaleString()}),de=t(()=>{var e;const l=(null==(e=O.value)?void 0:e.top_live_venues)??[],a=[];for(let t=0;t<3;t++){const e=l[t];e?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}),ve=t(()=>{var e,l;return[{label:"全部区域",value:""},...((null==(l=null==(e=O.value)?void 0:e.venue_dicts)?void 0:l.district)??[]).map(e=>({label:e.label,value:e.value}))]}),fe=t(()=>{var e,l;return[{label:"全部类型",value:""},...((null==(l=null==(e=O.value)?void 0:e.venue_dicts)?void 0:l.venue_type)??[]).map(e=>({label:e.label,value:e.value}))]}),_e=t(()=>{var e,l;return[{label:"收费类型",value:""},...((null==(l=null==(e=O.value)?void 0:e.venue_dicts)?void 0:l.ticket_type)??[]).map(e=>({label:e.label,value:e.value}))]}),pe=t(()=>{var e;const l=W.value.trim();return((null==(e=O.value)?void 0:e.map_venues)??[]).filter(e=>{if(Y.value&&(e.district||"")!==Y.value)return!1;if(ee.value&&(e.venue_type||"")!==ee.value)return!1;if("free"===ae.value&&"free"!==(e.ticket_type||""))return!1;if("paid"===ae.value&&"paid"!==(e.ticket_type||""))return!1;if(l){if(!`${e.name||""}${e.address||""}`.includes(l))return!1}return!0})}),me=t(()=>{const e=[...pe.value],l=te.value;return l?e.sort((e,a)=>H(l.lat,l.lng,e.lat,e.lng)-H(l.lat,l.lng,a.lat,a.lng)):e}),ye=t(()=>null==se.value?null:pe.value.find(e=>e.id===se.value)??null),ge=t(()=>{const e=ye.value,l=te.value;if(!e||!l)return"定位后可显示距离";const a=H(l.lat,l.lng,e.lat,e.lng);return`距您 ${K(a)}`});s(pe,e=>{null==se.value||e.some(e=>e.id===se.value)||(se.value=null)}),s(R,e=>{"list"===e&&(se.value=null)});const ke=t(()=>pe.value.map(e=>{const l=N(e.venue_type_color);return{id:e.id,latitude:e.lat,longitude:e.lng,width:32,height:38,iconPath:l||void 0,anchor:{x:.5,y:1}}}));function he(e){const l=te.value;if(!l)return"距离 --";const a=H(l.lat,l.lng,e.lat,e.lng);return`距您 ${K(a)}`}function be(e){if("district"===e){const e=ve.value;q({itemList:e.map(e=>e.label),success:l=>{const a=e[l.tapIndex];X.value=a.label,Y.value=a.value}})}else if("type"===e){const e=fe.value;q({itemList:e.map(e=>e.label),success:l=>{const a=e[l.tapIndex];Z.value=a.label,ee.value=a.value}})}else{const e=_e.value;q({itemList:e.map(e=>e.label),success:l=>{const a=e[l.tapIndex];le.value=a.label,ae.value=a.value}})}}let we=!1;function Ce(e){var l;const a=null==(l=null==e?void 0:e.detail)?void 0:l.markerId;null!=a&&(se.value=Number(a),we=!0,setTimeout(()=>{we=!1},400))}function xe(){we||(se.value=null)}function je(){se.value=null}function Fe(e){e&&z({url:`/pages/venue/detail?id=${e}`})}function Ie(){z({url:"/pages/stats/index"})}function Se(){B({url:"/pages/activity/index"})}function $e(){z({url:"/pages/discover/index"})}function Le(e){return 0===(e.registered_count??0)&&!0===e.is_bookable}function Te(e){const l=e.registered_count??0;return Le(e)?"可预约":l>0?`${l}人已预约`:"敬请期待"}function Je(){var e;if(te.value)return void(Q.value={latitude:te.value.lat,longitude:te.value.lng});const l=(null==(e=O.value)?void 0:e.map_venues)??[];l.length?Q.value={latitude:l[0].lat,longitude:l[0].lng}:Q.value={latitude:31.2989,longitude:120.5853}}async function Pe(){U.value=!0;try{const l=await e.get("/h5/home",{},{withAuth:!1});O.value=l,Je(),await o({title:"苏州科普地图",desc:"热门活动、研学线路与场馆导览"}).catch(()=>{})}catch(l){r({title:(null==l?void 0:l.message)||"加载首页失败",icon:"none"})}finally{U.value=!1}}async function Ve(){if(y())try{const e=await g();return te.value={lat:e.lat,lng:e.lng},void Je()}catch{}k({type:"gcj02",success:e=>{te.value={lat:e.latitude,lng:e.longitude},Je()},fail:()=>{te.value=null,Je(),r({title:"定位失败,请检查系统权限或公众号 JS 安全域名",icon:"none",duration:2800})}})}function Ae(){return new Promise(e=>{d()&&v();const l=function(){try{if("undefined"!=typeof window&&window.sessionStorage){const e=window.sessionStorage.getItem(p.locConsent);if("granted"===e||"denied"===e)return e}}catch{}try{const e=m(p.locConsent);if("granted"===e||"denied"===e)return e}catch{}return null}();"denied"!==l?"granted"!==l?f({title:"需要获取您的位置",content:"用于展示「距您」距离、列表排序与地图中心。拒绝后仍可浏览场馆,但无法显示距离。\n\n在微信中使用时,请确保本页域名已加入公众号「JS 接口安全域名」,否则无法调起定位。",confirmText:"允许",cancelText:"暂不",success:l=>{l.confirm?(oe("granted"),Ve().finally(()=>e())):(oe("denied"),e())}}):Ve().finally(()=>e()):e()})}return u(async()=>{await n()&&(await Pe(),await Ae())}),(e,l)=>{const a=C,t=x,s=J,u=P,n=A,o=_;return b(),c(o,{"scroll-y":"",class:"page"},{default:i(()=>[w(a,{class:"hero"},{default:i(()=>[w(a,{class:"hero-brand"}),w(a,{class:"hero-content"},{default:i(()=>[w(a,{class:"stat-card"},{default:i(()=>[w(a,{class:"stat-main"},{default:i(()=>[w(a,{class:"stat-left"},{default:i(()=>[w(t,{class:"stat-label"},{default:i(()=>[j("全市实时总人数")]),_:1}),w(t,{class:"stat-num"},{default:i(()=>[j(F(re.value)+" 人",1)]),_:1}),w(t,{class:"stat-desc"},{default:i(()=>[j("正在参观科普场馆")]),_:1})]),_:1}),w(a,{class:"stat-right"},{default:i(()=>[w(a,{class:"live-list"},{default:i(()=>[(b(!0),I(S,null,$(de.value,(e,l)=>(b(),c(a,{key:"live-"+l,class:T(["live-venue-row",{"is-empty":e.empty}]),onClick:L(l=>{var a;(a=e).empty||Fe(a.id)},["stop"])},{default:i(()=>[w(a,{class:"live-row-one"},{default:i(()=>[w(t,{class:"live-top"},{default:i(()=>[j("Top "+F(l+1),1)]),_:2},1024),w(t,{class:"live-name"},{default:i(()=>[j(F(e.empty?"—":e.name),1)]),_:2},1024),w(t,{class:"live-count"},{default:i(()=>[j(F(e.empty?"—":e.people_count+" 人"),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1}),w(a,{class:"stat-foot",onClick:L(Ie,["stop"])},{default:i(()=>[w(t,{class:"stat-foot-link"},{default:i(()=>[j("客流量统计 >")]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),w(a,{class:"map-section"},{default:i(()=>[w(a,{class:"toolbar"},{default:i(()=>[w(a,{class:"tabs"},{default:i(()=>[w(t,{class:T(["tab",{on:"map"===R.value}]),onClick:l[0]||(l[0]=e=>R.value="map")},{default:i(()=>[j("地图")]),_:1},8,["class"]),w(t,{class:T(["tab",{on:"list"===R.value}]),onClick:l[1]||(l[1]=e=>R.value="list")},{default:i(()=>[j("列表")]),_:1},8,["class"])]),_:1}),w(a,{class:"search-wrap"},{default:i(()=>[w(s,{modelValue:W.value,"onUpdate:modelValue":l[2]||(l[2]=e=>W.value=e),class:"search-input",placeholder:"请输入你要搜索的内容","placeholder-class":"ph"},null,8,["modelValue"]),w(u,{class:"search-icon-img",src:V(D),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),w(a,{class:"filters"},{default:i(()=>[w(a,{class:"f-item",onClick:l[3]||(l[3]=e=>be("district"))},{default:i(()=>[w(t,{class:"f-item-text"},{default:i(()=>[j(F(X.value),1)]),_:1}),w(u,{class:"f-item-arrow",src:V(E),mode:"aspectFit"},null,8,["src"])]),_:1}),w(a,{class:"f-item",onClick:l[4]||(l[4]=e=>be("type"))},{default:i(()=>[w(t,{class:"f-item-text"},{default:i(()=>[j(F(Z.value),1)]),_:1}),w(u,{class:"f-item-arrow",src:V(E),mode:"aspectFit"},null,8,["src"])]),_:1}),w(a,{class:"f-item",onClick:l[5]||(l[5]=e=>be("ticket"))},{default:i(()=>[w(t,{class:"f-item-text"},{default:i(()=>[j(F(le.value),1)]),_:1}),w(u,{class:"f-item-arrow",src:V(E),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),"map"===R.value?(b(),c(a,{key:0,class:"map-wrap"},{default:i(()=>[w(n,{class:"main-map",latitude:Q.value.latitude,longitude:Q.value.longitude,markers:ke.value,scale:11,"show-location":"",onMarkertap:Ce,onTap:xe},null,8,["latitude","longitude","markers"]),ye.value?(b(),c(a,{key:0,class:"venue-sheet",onClick:l[7]||(l[7]=L(()=>{},["stop"]))},{default:i(()=>[w(a,{class:"venue-sheet-inner"},{default:i(()=>[w(a,{class:"sheet-bar"}),w(a,{class:"sheet-row"},{default:i(()=>[ye.value.image?(b(),c(u,{key:0,class:"sheet-cover",src:ye.value.image,mode:"aspectFill"},null,8,["src"])):(b(),c(a,{key:1,class:"sheet-cover sheet-cover-ph"})),w(a,{class:"sheet-main"},{default:i(()=>[w(t,{class:"sheet-name"},{default:i(()=>[j(F(ye.value.name),1)]),_:1}),ye.value.venue_type||ye.value.ticket_type?(b(),c(a,{key:0,class:"sheet-meta"},{default:i(()=>[ye.value.venue_type?(b(),c(t,{key:0,class:"sheet-type"},{default:i(()=>[j(F(ce(ye.value.venue_type)||ye.value.venue_type),1)]),_:1})):M("",!0),ye.value.venue_type&&ye.value.ticket_type?(b(),c(t,{key:1,class:"sheet-meta-sep"},{default:i(()=>[j("·")]),_:1})):M("",!0),ye.value.ticket_type?(b(),c(t,{key:2,class:T(["sheet-ticket","paid"===ye.value.ticket_type?"paid":"free"])},{default:i(()=>[j(F(ie(ye.value.ticket_type)),1)]),_:1},8,["class"])):M("",!0)]),_:1})):M("",!0),w(t,{class:"sheet-addr"},{default:i(()=>[j(F(ye.value.address||"地址待定"),1)]),_:1}),w(t,{class:"sheet-dist"},{default:i(()=>[j(F(ge.value),1)]),_:1})]),_:1})]),_:1}),w(a,{class:"sheet-actions"},{default:i(()=>[w(a,{class:"sheet-btn ghost",onClick:je},{default:i(()=>[j("关闭")]),_:1}),w(a,{class:"sheet-btn primary",onClick:l[6]||(l[6]=e=>Fe(ye.value.id))},{default:i(()=>[j("查看详情")]),_:1})]),_:1})]),_:1})]),_:1})):M("",!0)]),_:1})):(b(),c(o,{key:1,"scroll-y":"",class:"venue-list-scroll"},{default:i(()=>[(b(!0),I(S,null,$(me.value,e=>(b(),c(a,{key:e.id,class:"venue-row",onClick:l=>Fe(e.id)},{default:i(()=>[e.image?(b(),c(u,{key:0,class:"venue-thumb",src:e.image,mode:"aspectFill"},null,8,["src"])):(b(),c(a,{key:1,class:"venue-thumb ph-img"})),w(a,{class:"venue-info"},{default:i(()=>[w(t,{class:"venue-name"},{default:i(()=>[j(F(e.name),1)]),_:2},1024),e.venue_type||e.ticket_type?(b(),c(a,{key:0,class:"venue-meta"},{default:i(()=>[e.venue_type?(b(),c(t,{key:0,class:"venue-type-pill"},{default:i(()=>[j(F(ce(e.venue_type)||e.venue_type),1)]),_:2},1024)):M("",!0),e.ticket_type?(b(),c(t,{key:1,class:T(["venue-ticket-pill","paid"===e.ticket_type?"paid":"free"])},{default:i(()=>[j(F(ie(e.ticket_type)),1)]),_:2},1032,["class"])):M("",!0)]),_:2},1024)):M("",!0),w(t,{class:"venue-addr"},{default:i(()=>[j(F(e.address||"-"),1)]),_:2},1024),w(t,{class:"venue-dist"},{default:i(()=>[j(F(he(e)),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),me.value.length?M("",!0):(b(),c(a,{key:0,class:"empty-tip"},{default:i(()=>[j("暂无符合条件的场馆")]),_:1}))]),_:1}))]),_:1}),w(a,{class:"section"},{default:i(()=>[w(a,{class:"sec-head"},{default:i(()=>[w(a,{class:"sec-bar"}),w(t,{class:"sec-title"},{default:i(()=>[j("热门活动")]),_:1}),w(t,{class:"sec-more",onClick:Se},{default:i(()=>[j("更多 >")]),_:1})]),_:1}),w(o,{"scroll-x":"",class:"act-scroll","show-scrollbar":!1,"enable-flex":!0},{default:i(()=>[w(a,{class:"act-scroll-row"},{default:i(()=>{var e;return[(b(!0),I(S,null,$((null==(e=O.value)?void 0:e.hot_activities)??[],e=>(b(),c(a,{key:e.id,class:"act-card",onClick:l=>{return a=e.id,void z({url:`/pages/activity/detail?id=${a}`});var a}},{default:i(()=>[w(a,{class:"act-img-wrap"},{default:i(()=>[e.image?(b(),c(u,{key:0,class:"act-img",src:e.image,mode:"aspectFill"},null,8,["src"])):(b(),c(a,{key:1,class:"act-img-ph"})),w(a,{class:T(["act-book-badge",{"is-bookable":Le(e)}])},{default:i(()=>[w(t,{class:T(["act-book-text",{"is-bookable":Le(e)}])},{default:i(()=>[j(F(Te(e)),1)]),_:2},1032,["class"])]),_:2},1032,["class"])]),_:2},1024),w(a,{class:"act-body"},{default:i(()=>[w(t,{class:"act-title"},{default:i(()=>[j(F(e.title),1)]),_:2},1024),w(a,{class:"act-tags"},{default:i(()=>[(b(!0),I(S,null,$((e.tags||[]).slice(0,4),(l,a)=>(b(),c(t,{key:"tag-"+e.id+"-"+a,class:"act-tag-chip"},{default:i(()=>[j(F(l),1)]),_:2},1024))),128))]),_:2},1024),w(t,{class:"act-meta"},{default:i(()=>[j(F(V(G)(e.start_at,e.end_at)),1)]),_:2},1024),w(t,{class:"act-meta"},{default:i(()=>[j(F(e.venue_name||e.address||"苏州"),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]}),_:1})]),_:1})]),_:1}),w(a,{class:"section"},{default:i(()=>{var e;return[w(a,{class:"sec-head"},{default:i(()=>[w(a,{class:"sec-bar"}),w(t,{class:"sec-title"},{default:i(()=>[j("苏州市科普研学线路")]),_:1}),w(t,{class:"sec-more",onClick:$e},{default:i(()=>[j("更多 >")]),_:1})]),_:1}),(b(!0),I(S,null,$((null==(e=O.value)?void 0:e.study_tours)??[],e=>(b(),c(a,{key:e.id,class:"tour-card",onClick:l=>{return a=e.id,void z({url:`/pages/study-tour/detail?id=${a}`});var a}},{default:i(()=>[w(a,{class:"tour-img-wrap"},{default:i(()=>[e.cover_image?(b(),c(u,{key:0,class:"tour-img",src:e.cover_image,mode:"aspectFill"},null,8,["src"])):(b(),c(a,{key:1,class:"tour-img tour-ph"})),w(a,{class:"tour-overlay-title-wrap"},{default:i(()=>[w(t,{class:"tour-overlay-title"},{default:i(()=>[j(F(e.name),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),w(a,{class:"tour-body"},{default:i(()=>{var l;return[w(t,{class:"tour-title"},{default:i(()=>[j(F(e.name),1)]),_:2},1024),w(a,{class:"tour-stops-timeline"},{default:i(()=>[(b(!0),I(S,null,$(e.venue_names,(l,s)=>(b(),c(a,{key:"v-"+e.id+"-"+s,class:"tour-stop-row"},{default:i(()=>[w(a,{class:"tour-timeline-axis"},{default:i(()=>[w(a,{class:"tour-dot-cell"},{default:i(()=>[w(a,{class:"tour-tl-dot"})]),_:1}),s[j(F(l),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),(null==(l=e.tags)?void 0:l.length)?(b(),c(a,{key:0,class:"tour-tags-row"},{default:i(()=>[(b(!0),I(S,null,$(e.tags,(l,a)=>(b(),c(t,{key:"t-"+e.id+"-"+a,class:"tour-tag"},{default:i(()=>[j(F(l),1)]),_:2},1024))),128))]),_:2},1024)):M("",!0)]}),_:2},1024)]),_:2},1032,["onClick"]))),128))]}),_:1}),w(a,{class:"bottom-safe"}),U.value?(b(),c(a,{key:0,class:"loading-mask"},{default:i(()=>[j("加载中...")]),_:1})):M("",!0)]),_:1})}}}),[["__scopeId","data-v-fc20c157"]]);export{O as default};