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

import{d as e,e as t,f as l,w as a,W as n,j as s,k as i,m as r,u,n as o,p as c,q as d,M as g,t as v,v as f,x as p,y as m,F as h,z as b,J as _,H as y,B as x,D as k,E as $,C as w,_ as N,K as C,s as S,$ as j,a0 as z,a1 as F,a2 as B}from"./index-DBg2bUhq.js";import{k as M,g as R}from"./content.tJrjcqQa.js";import{i as q,a as D}from"./icon_up.DJ5zmdk8.js";import{m as I,t as K}from"./ticketMap.imr_2NOD.js";import{a as P,c as T}from"./venueThemeColors.ByZn0VY6.js";import{_ as W}from"./_plugin-vue_export-helper.BCo6x5W8.js";const Y=W(e({__name:"detail",setup(e){const W=t(null),Y=t(null),E=t(!0),H=t(!1),J=Math.round(8064/246);function L(e){return K({venue_type_color:e.venue_type_color},()=>function(e){var t;const l=P(e)[0];if(l)return T(l,null==(t=Y.value)?void 0:t.venue_type);const a=e.venue_type_color;return a&&"string"==typeof a&&a.trim()?a.trim():"#05c9ac"}(e))}function X(e){return{background:L(e),color:"#ffffff"}}const A=l(()=>{var e;const t=null==(e=W.value)?void 0:e.intro_html;if(null==t||""===t)return"";const l=String(t);let a="";if(/<[a-z][\s\S]*>/i.test(l)){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,l,a)=>{const n=String(l).trim();return/style\s*=/i.test(n)?/max-width\s*:/i.test(n)?e:e.replace(/style\s*=\s*(["'])([\s\S]*?)\1/i,(e,l,a)=>/max-width/i.test(a)?e:`style=${l}${a};${t}${l}`):`<img ${n} style="${t}"${"/>"===a?" />":">"}`})}(l);a=`<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;")}(l);a=`<div style="white-space:pre-wrap;font-size:13px;color:#2c2c2c;line-height:1.8;">${e}</div>`}return(n=a)&&String(n).trim()&&String(n).replace(/<[^>]+>/g," ").replace(/&nbsp;/gi," ").replace(/\s+/g," ").trim().length>0?a:"";var n}),G=l(()=>{var e;const t=((null==(e=W.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 l=t.reduce((e,t)=>({lat:e.lat+t.lat,lng:e.lng+t.lng}),{lat:0,lng:0});return{latitude:l.lat/t.length,longitude:l.lng/t.length}}),O=l(()=>{var e;return((null==(e=W.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)}),Q=l(()=>{const e=O.value.length;return e>=5?10:e>=3?11:e>=2?12:13}),U=l(()=>{if(O.value.length)try{const e=u(56);return[e,e,e,e]}catch{return[20,20,20,20]}});function V(e,t){const l=String(e+1),a=l.length>=2?24:22;return`<div style="box-sizing:border-box;width:${a}px;height:${a}px;border-radius:50%;background:${t};color:#fff;font-size:${l.length>=2?9:10}px;line-height:${a}px;text-align:center;font-weight:400;">${l}</div>`}const Z=l(()=>{var e;return((null==(e=W.value)?void 0:e.venues)||[]).map((e,t)=>{const l=Number(e.lat),a=Number(e.lng);if(!l||!a)return null;const n=L(e);return{id:Number(e.id)||t+1,latitude:l,longitude:a,width:32,height:J,iconPath:I(n),anchor:{x:.5,y:1},label:{content:V(t,n),color:"#ffffff",fontSize:10,anchorX:0,anchorY:0,borderWidth:0,bgColor:"transparent",borderRadius:0,padding:0},callout:{content:`${t+1}. ${e.name||"场馆"}`,color:"#333333",fontSize:12,borderRadius:8,bgColor:"#ffffff",padding:8,display:"BYCLICK"}}}).filter(Boolean)});return a(A,()=>{E.value=!0,z(()=>{setTimeout(()=>{var e;const t=null==(e=F())?void 0:e.proxy,l=B();t&&l.in(t);const a=u(187);l.select(".judge-intro").boundingClientRect(),l.exec(e=>{const[t]=e||[];H.value=!!(t&&t.height&&t.height>a+1),E.value=!0})},120)})}),n(async e=>{const t=Number((null==e?void 0:e.id)||0);if(!t)return;const[l,a]=await Promise.all([M(t),R()]);W.value=l,Y.value=a}),(e,t)=>{const l=g,a=v,n=r,u=k,z=N,F=d;return o(),s(n,{class:"page"},{default:i(()=>[c(F,{"scroll-y":"",class:"scroll"},{default:i(()=>[c(l,{class:"map",latitude:G.value.latitude,longitude:G.value.longitude,markers:Z.value,scale:Q.value,"include-points":O.value.length?O.value:void 0,padding:U.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"]),c(n,{class:"main-card"},{default:i(()=>{var e,t,l;return[c(a,{class:"tour-title"},{default:i(()=>{var e;return[f(p((null==(e=W.value)?void 0:e.name)||"-"),1)]}),_:1}),(null==(t=null==(e=W.value)?void 0:e.tags)?void 0:t.length)?(o(),s(n,{key:0,class:"act-tags"},{default:i(()=>[(o(!0),m(h,null,b((W.value.tags||[]).slice(0,4),(e,t)=>(o(),s(a,{key:"tg-"+t+"-"+e,class:"act-tag-chip"},{default:i(()=>[f(p(e),1)]),_:2},1024))),128))]),_:1})):_("",!0),(o(!0),m(h,null,b((null==(l=W.value)?void 0:l.venues)||[],(e,t)=>(o(),s(n,{key:e.id,class:"venue-row",onClick:t=>{return l=e.id,void C({url:`/pages/venue/detail?id=${l}`});var l}},{default:i(()=>[c(n,{class:"idx",style:y(X(e))},{default:i(()=>[f(p(Number(t)+1),1)]),_:2},1032,["style"]),c(n,{class:"venue-mid"},{default:i(()=>[c(n,{class:"name"},{default:i(()=>[f(p(e.name),1)]),_:2},1024),c(n,{class:"addr"},{default:i(()=>[f(p(e.address||"-"),1)]),_:2},1024)]),_:2},1024),c(n,{class:"go",onClick:x(t=>function(e){(null==e?void 0:e.lat)&&(null==e?void 0:e.lng)?j({latitude:Number(e.lat),longitude:Number(e.lng),name:e.name||"站点",address:e.address||""}):S({title:"暂无导航坐标",icon:"none"})}(e),["stop"])},{default:i(()=>[f("导航")]),_:2},1032,["onClick"])]),_:2},1032,["onClick"]))),128))]}),_:1}),A.value?(o(),s(n,{key:0,class:"intro-card"},{default:i(()=>[c(n,{class:"sec-title-row"},{default:i(()=>[c(a,{class:"sec-title"},{default:i(()=>[f("线路简介")]),_:1}),H.value?(o(),s(n,{key:0,class:"expand-arrow-tap",onClick:t[0]||(t[0]=e=>E.value=!E.value)},{default:i(()=>[c(u,{class:"expand-arrow-img",src:E.value?$(q):$(D),mode:"aspectFit"},null,8,["src"])]),_:1})):_("",!0)]),_:1}),c(n,{class:w(["intro-rich-wrap judge-intro",{"is-collapsed":H.value&&!E.value}])},{default:i(()=>[c(z,{class:"intro-rich",nodes:A.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):_("",!0),c(n,{class:"safe-bottom"})]),_:1})]),_:1})}}}),[["__scopeId","data-v-89b960de"]]);export{Y as default};