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

import{d as e,e as t,f as a,w as l,Y as n,m as s,k as i,l as r,n as u,u as o,Z as c,U as d,p as v,q as g,t as f,M as m,v as p,y as h,D as y,F as _,G as b,H as w,J as k,B as N,K as x,E as $,z as C,x as S,a2 as j,L as F,a3 as z,a4 as B,a5 as P,a6 as q,_ as T}from"./index-BKJqIFGF.js";import{r as D,g as I}from"./content.D2ES1duL.js";import{i as K,a as L}from"./icon_up.DJ5zmdk8.js";import{P as M}from"./poster.C6TYC1FC.js";import{g as R,t as U}from"./ticketMap.b6piD_5W.js";import{v as Y}from"./venueTypes.DuAf5T5V.js";import{a as E,c as G}from"./venueThemeColors.DRxjaxXI.js";const H=T(e({__name:"detail",setup(e){const T=t(null),H=t(null),J=t(!0),Z=t(!1);function A(e){return U({venue_type_color:e.venue_type_color},()=>function(e){var t;const a=Y(e)[0];if(a)return G(a,null==(t=H.value)?void 0:t.venue_type);const l=e.venue_type_color;return l&&"string"==typeof l&&l.trim()?l.trim():"#05c9ac"}(e))}function O(e){return{background:A(e),color:"#ffffff"}}const Q=a(()=>{var e;const t=null==(e=T.value)?void 0:e.intro_html;if(null==t||""===t)return"";const a=String(t);let l="";if(/<[a-z][\s\S]*>/i.test(a)){const e=function(e){if(!e||"string"!=typeof e)return"";const t="max-width:100%;height:auto;display:block;vertical-align:top;";return e.replace(/<img\b([\s\S]*?)(\/>|>)/gi,(e,a,l)=>{const n=String(a).trim();return/style\s*=/i.test(n)?/max-width\s*:/i.test(n)?e:e.replace(/style\s*=\s*(["'])([\s\S]*?)\1/i,(e,a,l)=>/max-width/i.test(l)?e:`style=${a}${l};${t}${a}`):`<img ${n} style="${t}"${"/>"===l?" />":">"}`})}(a);l=`<div style="font-size:13px;color:#2c2c2c;line-height:1.8;">${e}</div>`}else{const e=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}(a);l=`<div style="white-space:pre-wrap;font-size:13px;color:#2c2c2c;line-height:1.8;">${e}</div>`}return(n=l)&&String(n).trim()&&String(n).replace(/<[^>]+>/g," ").replace(/&nbsp;/gi," ").replace(/\s+/g," ").trim().length>0?l:"";var n}),V=a(()=>{var e;const t=((null==(e=T.value)?void 0:e.venues)||[]).map(e=>({lat:Number(e.lat),lng:Number(e.lng)})).filter(e=>Number.isFinite(e.lat)&&Number.isFinite(e.lng)&&e.lat&&e.lng);if(!t.length)return{latitude:31.2989,longitude:120.5853};const a=t.reduce((e,t)=>({lat:e.lat+t.lat,lng:e.lng+t.lng}),{lat:0,lng:0});return{latitude:a.lat/t.length,longitude:a.lng/t.length}}),W=a(()=>{var e;return((null==(e=T.value)?void 0:e.venues)||[]).map(e=>({latitude:Number(e.lat),longitude:Number(e.lng)})).filter(e=>Number.isFinite(e.latitude)&&Number.isFinite(e.longitude)&&e.latitude&&e.longitude)}),X=a(()=>{const e=W.value.length;return e>=5?10:e>=3?11:e>=2?12:13}),ee=a(()=>{if(W.value.length)try{const e=o(56);return[e,e,e,e]}catch{return[20,20,20,20]}}),te=a(()=>{var e;return((null==(e=T.value)?void 0:e.venues)||[]).map((e,t)=>{const a=Number(e.lat),l=Number(e.lng);if(!a||!l)return null;const n=A(e),s=R(n);return{id:Number(e.id)||t+1,latitude:a,longitude:l,width:28,height:32,iconPath:s,anchor:{x:.5,y:1},callout:{content:`${t+1}. ${e.name||"场馆"}`,color:"#333333",fontSize:12,borderRadius:8,bgColor:"#ffffff",padding:8,display:"BYCLICK"}}}).filter(Boolean)});return l(Q,()=>{J.value=!0,B(()=>{setTimeout(()=>{var e;const t=null==(e=P())?void 0:e.proxy,a=q();t&&a.in(t);const l=o(187);a.select(".judge-intro").boundingClientRect(),a.exec(e=>{const[t]=e||[];Z.value=!!(t&&t.height&&t.height>l+1),J.value=!0})},120)})}),n(async e=>{const t=Number((null==e?void 0:e.id)||0);if(!t)return;const[a,l]=await Promise.all([D(t),I()]);T.value=a,H.value=l,"undefined"!=typeof window&&await s({title:String((null==a?void 0:a.name)||"研学线路"),desc:c.desc,link:window.location.href,imgUrl:M}).catch(()=>{})}),(e,t)=>{const a=d("SubPageBackBtn"),l=m,n=p,s=u,o=C,c=j,B=f;return v(),i(s,{class:"page"},{default:r(()=>[g(a),g(B,{"scroll-y":"",class:"scroll"},{default:r(()=>[g(l,{class:"map",latitude:V.value.latitude,longitude:V.value.longitude,markers:te.value,scale:X.value,"include-points":W.value.length?W.value:void 0,padding:ee.value,"enable-3D":!1,"enable-poi":!1,"enable-building":!1,"enable-traffic":!1,"show-compass":!1,"show-location":""},null,8,["latitude","longitude","markers","scale","include-points","padding"]),g(s,{class:"main-card"},{default:r(()=>{var e,t,a;return[g(n,{class:"tour-title"},{default:r(()=>{var e;return[h(y((null==(e=T.value)?void 0:e.name)||"-"),1)]}),_:1}),(null==(t=null==(e=T.value)?void 0:e.tags)?void 0:t.length)?(v(),i(s,{key:0,class:"act-tags"},{default:r(()=>[(v(!0),_(b,null,w((T.value.tags||[]).slice(0,4),(e,t)=>{var a;return v(),i(n,{key:"tg-"+t+"-"+e,class:"act-tag-chip",style:k(N(E)(t,null==(a=H.value)?void 0:a.venue_type))},{default:r(()=>[h(y(e),1)]),_:2},1032,["style"])}),128))]),_:1})):x("",!0),(v(!0),_(b,null,w((null==(a=T.value)?void 0:a.venues)||[],(e,t)=>(v(),i(s,{key:e.id,class:"venue-row",onClick:t=>{return a=e.id,void F({url:`/pages/venue/detail?id=${a}`});var a}},{default:r(()=>[g(s,{class:"idx",style:k(O(e))},{default:r(()=>[h(y(Number(t)+1),1)]),_:2},1032,["style"]),g(s,{class:"venue-mid"},{default:r(()=>[g(s,{class:"name"},{default:r(()=>[h(y(e.name),1)]),_:2},1024),g(s,{class:"addr"},{default:r(()=>[h(y(e.address||"-"),1)]),_:2},1024)]),_:2},1024),g(s,{class:"go",onClick:$(t=>function(e){z({lat:Number(e.lat),lng:Number(e.lng),name:e.name||"站点",address:e.address||""})}(e),["stop"])},{default:r(()=>[h("导航")]),_:2},1032,["onClick"])]),_:2},1032,["onClick"]))),128))]}),_:1}),Q.value?(v(),i(s,{key:0,class:"intro-card"},{default:r(()=>[g(s,{class:"sec-title-row"},{default:r(()=>[g(n,{class:"sec-title"},{default:r(()=>[h("线路简介")]),_:1}),Z.value?(v(),i(s,{key:0,class:"expand-arrow-tap",onClick:t[0]||(t[0]=e=>J.value=!J.value)},{default:r(()=>[g(o,{class:"expand-arrow-img",src:J.value?N(K):N(L),mode:"aspectFit"},null,8,["src"])]),_:1})):x("",!0)]),_:1}),g(s,{class:S(["intro-rich-wrap judge-intro",{"is-collapsed":Z.value&&!J.value}])},{default:r(()=>[g(c,{class:"intro-rich",nodes:Q.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):x("",!0),g(s,{class:"safe-bottom"})]),_:1})]),_:1})}}}),[["__scopeId","data-v-f03c5bc1"]]);export{H as default};