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

import{d as e,e as t,f as a,w as l,Y as s,k as n,l as u,n as r,u as i,U as o,p as c,q as d,t as v,M as g,v as f,y as p,D as m,F as h,G as y,H as _,J as b,B as k,K as w,E as N,z as x,x as $,a1 as C,L as S,a2 as j,a3 as F,a4 as z,a5 as B,_ as q}from"./index-BFumin6Y.js";import{r as P,g as T}from"./content.VuLfEdIK.js";import{i as D,a as I}from"./icon_up.DJ5zmdk8.js";import{g as K,t as L}from"./ticketMap.b6piD_5W.js";import{v as M}from"./venueTypes.DuAf5T5V.js";import{a as R,c as Y}from"./venueThemeColors.DRxjaxXI.js";const E=q(e({__name:"detail",setup(e){const q=t(null),E=t(null),G=t(!0),H=t(!1);function J(e){return L({venue_type_color:e.venue_type_color},()=>function(e){var t;const a=M(e)[0];if(a)return Y(a,null==(t=E.value)?void 0:t.venue_type);const l=e.venue_type_color;return l&&"string"==typeof l&&l.trim()?l.trim():"#05c9ac"}(e))}function U(e){return{background:J(e),color:"#ffffff"}}const A=a(()=>{var e;const t=null==(e=q.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 s=String(a).trim();return/style\s*=/i.test(s)?/max-width\s*:/i.test(s)?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 ${s} 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(s=l)&&String(s).trim()&&String(s).replace(/<[^>]+>/g," ").replace(/&nbsp;/gi," ").replace(/\s+/g," ").trim().length>0?l:"";var s}),O=a(()=>{var e;const t=((null==(e=q.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}}),Q=a(()=>{var e;return((null==(e=q.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)}),V=a(()=>{const e=Q.value.length;return e>=5?10:e>=3?11:e>=2?12:13}),W=a(()=>{if(Q.value.length)try{const e=i(56);return[e,e,e,e]}catch{return[20,20,20,20]}}),X=a(()=>{var e;return((null==(e=q.value)?void 0:e.venues)||[]).map((e,t)=>{const a=Number(e.lat),l=Number(e.lng);if(!a||!l)return null;const s=J(e),n=K(s);return{id:Number(e.id)||t+1,latitude:a,longitude:l,width:28,height:32,iconPath:n,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(A,()=>{G.value=!0,F(()=>{setTimeout(()=>{var e;const t=null==(e=z())?void 0:e.proxy,a=B();t&&a.in(t);const l=i(187);a.select(".judge-intro").boundingClientRect(),a.exec(e=>{const[t]=e||[];H.value=!!(t&&t.height&&t.height>l+1),G.value=!0})},120)})}),s(async e=>{const t=Number((null==e?void 0:e.id)||0);if(!t)return;const[a,l]=await Promise.all([P(t),T()]);q.value=a,E.value=l}),(e,t)=>{const a=o("SubPageBackBtn"),l=g,s=f,i=r,F=x,z=C,B=v;return c(),n(i,{class:"page"},{default:u(()=>[d(a),d(B,{"scroll-y":"",class:"scroll"},{default:u(()=>[d(l,{class:"map",latitude:O.value.latitude,longitude:O.value.longitude,markers:X.value,scale:V.value,"include-points":Q.value.length?Q.value:void 0,padding:W.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"]),d(i,{class:"main-card"},{default:u(()=>{var e,t,a;return[d(s,{class:"tour-title"},{default:u(()=>{var e;return[p(m((null==(e=q.value)?void 0:e.name)||"-"),1)]}),_:1}),(null==(t=null==(e=q.value)?void 0:e.tags)?void 0:t.length)?(c(),n(i,{key:0,class:"act-tags"},{default:u(()=>[(c(!0),h(y,null,_((q.value.tags||[]).slice(0,4),(e,t)=>{var a;return c(),n(s,{key:"tg-"+t+"-"+e,class:"act-tag-chip",style:b(k(R)(t,null==(a=E.value)?void 0:a.venue_type))},{default:u(()=>[p(m(e),1)]),_:2},1032,["style"])}),128))]),_:1})):w("",!0),(c(!0),h(y,null,_((null==(a=q.value)?void 0:a.venues)||[],(e,t)=>(c(),n(i,{key:e.id,class:"venue-row",onClick:t=>{return a=e.id,void S({url:`/pages/venue/detail?id=${a}`});var a}},{default:u(()=>[d(i,{class:"idx",style:b(U(e))},{default:u(()=>[p(m(Number(t)+1),1)]),_:2},1032,["style"]),d(i,{class:"venue-mid"},{default:u(()=>[d(i,{class:"name"},{default:u(()=>[p(m(e.name),1)]),_:2},1024),d(i,{class:"addr"},{default:u(()=>[p(m(e.address||"-"),1)]),_:2},1024)]),_:2},1024),d(i,{class:"go",onClick:N(t=>function(e){j({lat:Number(e.lat),lng:Number(e.lng),name:e.name||"站点",address:e.address||""})}(e),["stop"])},{default:u(()=>[p("导航")]),_:2},1032,["onClick"])]),_:2},1032,["onClick"]))),128))]}),_:1}),A.value?(c(),n(i,{key:0,class:"intro-card"},{default:u(()=>[d(i,{class:"sec-title-row"},{default:u(()=>[d(s,{class:"sec-title"},{default:u(()=>[p("线路简介")]),_:1}),H.value?(c(),n(i,{key:0,class:"expand-arrow-tap",onClick:t[0]||(t[0]=e=>G.value=!G.value)},{default:u(()=>[d(F,{class:"expand-arrow-img",src:G.value?k(D):k(I),mode:"aspectFit"},null,8,["src"])]),_:1})):w("",!0)]),_:1}),d(i,{class:$(["intro-rich-wrap judge-intro",{"is-collapsed":H.value&&!G.value}])},{default:u(()=>[d(z,{class:"intro-rich",nodes:A.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):w("",!0),d(i,{class:"safe-bottom"})]),_:1})]),_:1})}}}),[["__scopeId","data-v-21fb8a30"]]);export{E as default};