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 a,w as l,X as n,j as s,k as r,m as i,u,Q as o,n as c,p as d,q as g,M as v,t as f,x as p,C as m,E as h,F as b,G as y,H as _,z as x,J as k,D as $,y as w,v as N,a0 as C,K as S,a1 as j,a2 as z,a3 as F,a4 as q,_ as B}from"./index-D4pxNDFv.js";import{q as M,g as P}from"./content.ectaCvrl.js";import{i as R,a as T}from"./icon_up.DJ5zmdk8.js";import{m as D,t as I}from"./ticketMap.BogdvK1G.js";import{v as K}from"./venueTypes.DuAf5T5V.js";import{a as X,c as Y}from"./venueThemeColors.DRxjaxXI.js";const E=B(e({__name:"detail",setup(e){const B=t(null),E=t(null),G=t(!0),H=t(!1),J=Math.round(8064/246);function L(e){return I({venue_type_color:e.venue_type_color},()=>function(e){var t;const a=K(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 Q(e){return{background:L(e),color:"#ffffff"}}const W=a(()=>{var e;const t=null==(e=B.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}),A=a(()=>{var e;const t=((null==(e=B.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}}),O=a(()=>{var e;return((null==(e=B.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)}),U=a(()=>{const e=O.value.length;return e>=5?10:e>=3?11:e>=2?12:13}),V=a(()=>{if(O.value.length)try{const e=u(56);return[e,e,e,e]}catch{return[20,20,20,20]}});function Z(e,t){const a=String(e+1),l=a.length>=2?24:22;return`<div style="box-sizing:border-box;width:${l}px;height:${l}px;border-radius:50%;background:${t};color:#fff;font-size:${a.length>=2?9:10}px;line-height:${l}px;text-align:center;font-weight:400;">${a}</div>`}const ee=a(()=>{var e;return((null==(e=B.value)?void 0:e.venues)||[]).map((e,t)=>{const a=Number(e.lat),l=Number(e.lng);if(!a||!l)return null;const n=L(e);return{id:Number(e.id)||t+1,latitude:a,longitude:l,width:32,height:J,iconPath:D(n),anchor:{x:.5,y:1},label:{content:Z(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 l(W,()=>{G.value=!0,z(()=>{setTimeout(()=>{var e;const t=null==(e=F())?void 0:e.proxy,a=q();t&&a.in(t);const l=u(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)})}),n(async e=>{const t=Number((null==e?void 0:e.id)||0);if(!t)return;const[a,l]=await Promise.all([M(t),P()]);B.value=a,E.value=l}),(e,t)=>{const a=o("SubPageBackBtn"),l=v,n=f,u=i,z=w,F=C,q=g;return c(),s(u,{class:"page"},{default:r(()=>[d(a),d(q,{"scroll-y":"",class:"scroll"},{default:r(()=>[d(l,{class:"map",latitude:A.value.latitude,longitude:A.value.longitude,markers:ee.value,scale:U.value,"include-points":O.value.length?O.value:void 0,padding:V.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(u,{class:"main-card"},{default:r(()=>{var e,t,a;return[d(n,{class:"tour-title"},{default:r(()=>{var e;return[p(m((null==(e=B.value)?void 0:e.name)||"-"),1)]}),_:1}),(null==(t=null==(e=B.value)?void 0:e.tags)?void 0:t.length)?(c(),s(u,{key:0,class:"act-tags"},{default:r(()=>[(c(!0),h(b,null,y((B.value.tags||[]).slice(0,4),(e,t)=>{var a;return c(),s(n,{key:"tg-"+t+"-"+e,class:"act-tag-chip",style:_(x(X)(t,null==(a=E.value)?void 0:a.venue_type))},{default:r(()=>[p(m(e),1)]),_:2},1032,["style"])}),128))]),_:1})):k("",!0),(c(!0),h(b,null,y((null==(a=B.value)?void 0:a.venues)||[],(e,t)=>(c(),s(u,{key:e.id,class:"venue-row",onClick:t=>{return a=e.id,void S({url:`/pages/venue/detail?id=${a}`});var a}},{default:r(()=>[d(u,{class:"idx",style:_(Q(e))},{default:r(()=>[p(m(Number(t)+1),1)]),_:2},1032,["style"]),d(u,{class:"venue-mid"},{default:r(()=>[d(u,{class:"name"},{default:r(()=>[p(m(e.name),1)]),_:2},1024),d(u,{class:"addr"},{default:r(()=>[p(m(e.address||"-"),1)]),_:2},1024)]),_:2},1024),d(u,{class:"go",onClick:$(t=>function(e){j({lat:Number(e.lat),lng:Number(e.lng),name:e.name||"站点",address:e.address||""})}(e),["stop"])},{default:r(()=>[p("导航")]),_:2},1032,["onClick"])]),_:2},1032,["onClick"]))),128))]}),_:1}),W.value?(c(),s(u,{key:0,class:"intro-card"},{default:r(()=>[d(u,{class:"sec-title-row"},{default:r(()=>[d(n,{class:"sec-title"},{default:r(()=>[p("线路简介")]),_:1}),H.value?(c(),s(u,{key:0,class:"expand-arrow-tap",onClick:t[0]||(t[0]=e=>G.value=!G.value)},{default:r(()=>[d(z,{class:"expand-arrow-img",src:G.value?x(R):x(T),mode:"aspectFit"},null,8,["src"])]),_:1})):k("",!0)]),_:1}),d(u,{class:N(["intro-rich-wrap judge-intro",{"is-collapsed":H.value&&!G.value}])},{default:r(()=>[d(F,{class:"intro-rich",nodes:W.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):k("",!0),d(u,{class:"safe-bottom"})]),_:1})]),_:1})}}}),[["__scopeId","data-v-5254a53f"]]);export{E as default};