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
8.7 KiB
2 lines
8.7 KiB
import{d as e,r as l,c as a,w as s,J as t,a as n,b as u,k as i,p as o,m as c,n as r,S as d,K as v,v as f,F as m,x as g,L as p,A as _,N as y,z as h,t as b,u as k,q as $,C as x,B as w,O as j,H as F,e as S,P as N,E as C,Q as z,R as A,T as R,U as q}from"./index-BB-pivgX.js";import{e as T}from"./content.O7f4k6ZP.js";import{h as B,f as E}from"./geo.BHVFNtB7.js";import{u as H,t as I,g as J,m as K,a as L}from"./tip.CRDnOkzn.js";import{s as O}from"./search.BJnl3YRK.js";import{_ as P}from"./_plugin-vue_export-helper.BCo6x5W8.js";const Q=P(e({__name:"detail",setup(e){function P(e){if(!e||"string"!=typeof e)return"";const l="max-width:100%;height:auto;display:block;vertical-align:top;";return e.replace(/<img\b([\s\S]*?)(\/>|>)/gi,(e,a,s)=>{const t=String(a).trim();if(/style\s*=/i.test(t))return/max-width\s*:/i.test(t)?e:e.replace(/style\s*=\s*(["'])([\s\S]*?)\1/i,(e,a,s)=>/max-width/i.test(s)?e:`style=${a}${s};${l}${a}`);return`<img ${t} style="${l}"${"/>"===s?" />":">"}`})}function Q(e){if(!e||!String(e).trim())return!1;return String(e).replace(/<[^>]+>/g," ").replace(/ /gi," ").replace(/\s+/g," ").trim().length>0}function U(e,l){const a=e=>{if(!e)return null;const l=e.slice(0,10).split("-").map(Number);if(3!==l.length)return null;const[a,s,t]=l;return Number.isFinite(a)&&Number.isFinite(s)&&Number.isFinite(t)?{y:a,m:s,d:t}:null},s=a(e),t=a(l);return s||t?s&&!t?`${s.y}年${s.m}月${s.d}日`:!s&&t?`${t.y}年${t.m}月${t.d}日`:s&&t?s.y===t.y?`${s.y}年${s.m}月${s.d}日至${t.m}月${t.d}日`:`${s.y}年${s.m}月${s.d}日至${t.y}年${t.m}月${t.d}日`:"日期待定":"日期待定"}const D=l(null),G=l(!0),M=l(!0),V=l(!1),W=l(!1),X=l("--"),Y=l(null),Z=a(()=>{const e=D.value;return e?Array.isArray(e.carousel)&&e.carousel.length?e.carousel:e.image?[{type:"image",url:e.image}]:[]:[]}),ee=a(()=>{var e,l;return 0===((null==(e=D.value)?void 0:e.registered_count)??0)&&!0===(null==(l=D.value)?void 0:l.is_bookable)}),le=a(()=>{var e;const l=(null==(e=D.value)?void 0:e.registered_count)??0;return ee.value?"可预约":l>0?`${l}人已预约`:"敬请期待"}),ae=a(()=>{var e;const l=null==(e=D.value)?void 0:e.reservation_notice;if(null==l||""===l)return"";const a=String(l);let s="";if(/<[a-z][\s\S]*>/i.test(a))s=P(a);else{const e=function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}(a);s=`<div style="white-space:pre-wrap;font-size:13px;color:#4e5969;line-height:1.65;">${e}</div>`}return Q(s)?s:""}),se=a(()=>{var e;const l=null==(e=D.value)?void 0:e.detail_html;if(!l)return"";const a=P(String(l));return Q(a)?a:""});function te(){var e,l,a,s,t,n;return{lat:Number((null==(e=D.value)?void 0:e.lat)??(null==(a=null==(l=D.value)?void 0:l.venue)?void 0:a.lat)??0),lng:Number((null==(s=D.value)?void 0:s.lng)??(null==(n=null==(t=D.value)?void 0:t.venue)?void 0:n.lng)??0)}}function ne(){const{lat:e,lng:l}=te();if(!e||!l||!Y.value)return void(X.value="--");const a=B(Y.value.lat,Y.value.lng,e,l);X.value=E(a)}function ue(){var e,l,a,s;const{lat:t,lng:n}=te();t&&n?N({latitude:t,longitude:n,name:(null==(e=D.value)?void 0:e.title)||"活动地点",address:(null==(l=D.value)?void 0:l.address)||(null==(s=null==(a=D.value)?void 0:a.venue)?void 0:s.address)||""}):S({title:"暂无导航坐标",icon:"none"})}function ie(){var e;(null==(e=D.value)?void 0:e.id)&&C({url:`/pages/activity/reserve?id=${D.value.id}`})}return s(D,()=>{ne()}),s([se,ae],()=>{G.value=!0,M.value=!0,z(()=>{setTimeout(()=>{var e;const l=null==(e=A())?void 0:e.proxy,a=R();l&&a.in(l);const s=q(180);a.select(".judge-detail").boundingClientRect(),a.select(".judge-notice").boundingClientRect(),a.exec(e=>{const[l,a]=e||[];V.value=!!(l&&l.height&&l.height>s+1),W.value=!!(a&&a.height&&a.height>s+1)})},120)})}),t(async e=>{const l=Number((null==e?void 0:e.id)||0);l&&(D.value=await T(l),i({type:"gcj02",success:e=>{Y.value={lat:e.latitude,lng:e.longitude},ne()},fail:()=>{X.value="--"}}))}),(e,l)=>{const a=_,s=y,t=p,i=v,S=o,N=$,C=j,z=d,A=F;return c(),n(S,{class:"page"},{default:u(()=>[r(z,{"scroll-y":"",class:"scroll"},{default:u(()=>[r(S,{class:"hero"},{default:u(()=>[Z.value.length?(c(),n(i,{key:0,class:"hero-swiper",circular:"","indicator-dots":Z.value.length>1,"indicator-active-color":"#05c9ac","indicator-color":"rgba(255,255,255,0.45)"},{default:u(()=>[(c(!0),f(m,null,g(Z.value,(e,l)=>(c(),n(t,{key:"s-"+l,class:"swiper-item"},{default:u(()=>["video"!==e.type?(c(),n(a,{key:0,class:"slide-media",src:e.url,mode:"aspectFill"},null,8,["src"])):(c(),n(s,{key:1,class:"slide-media slide-video",src:e.url,controls:"","object-fit":"cover","show-center-play-btn":!0},null,8,["src"]))]),_:2},1024))),128))]),_:1},8,["indicator-dots"])):(c(),n(S,{key:1,class:"hero-placeholder"})),r(S,{class:h(["live-badge",{"is-bookable":ee.value}])},{default:u(()=>[b(k(le.value),1)]),_:1},8,["class"])]),_:1}),r(S,{class:"main-card"},{default:u(()=>{var e,s,t,i,o,d,v,p,_,y;return[r(N,{class:"act-title"},{default:u(()=>{var e;return[b(k((null==(e=D.value)?void 0:e.title)||"-"),1)]}),_:1}),(null==(s=null==(e=D.value)?void 0:e.tags)?void 0:s.length)?(c(),n(S,{key:0,class:"chip-row"},{default:u(()=>[(c(!0),f(m,null,g(D.value.tags,e=>(c(),n(N,{key:e,class:"chip chip-tag"},{default:u(()=>[b(k(e),1)]),_:2},1024))),128))]),_:1})):x("",!0),(null==(t=D.value)?void 0:t.summary)?(c(),n(S,{key:1,class:"info-row"},{default:u(()=>[r(a,{class:"info-ico",src:w(O),mode:"aspectFit"},null,8,["src"]),r(S,{class:"info-text-col"},{default:u(()=>[r(N,{class:"info-text"},{default:u(()=>[b("活动简介:"+k(D.value.summary),1)]),_:1})]),_:1})]),_:1})):x("",!0),(null==(o=null==(i=D.value)?void 0:i.venue)?void 0:o.name)?(c(),n(S,{key:2,class:"info-row"},{default:u(()=>[r(a,{class:"info-ico",src:w(H),mode:"aspectFit"},null,8,["src"]),r(S,{class:"info-text-col info-text-col--venue"},{default:u(()=>[r(N,{class:"info-text"},{default:u(()=>[b("举办场馆:")]),_:1}),r(N,{class:"venue-name-brand"},{default:u(()=>[b(k(D.value.venue.name),1)]),_:1})]),_:1})]),_:1})):x("",!0),r(S,{class:"info-row"},{default:u(()=>[r(a,{class:"info-ico",src:w(I),mode:"aspectFit"},null,8,["src"]),r(S,{class:"info-text-col"},{default:u(()=>[r(N,{class:"info-text"},{default:u(()=>{var e,l;return[b("活动时间:"+k(U(null==(e=D.value)?void 0:e.start_at,null==(l=D.value)?void 0:l.end_at)),1)]}),_:1})]),_:1})]),_:1}),(null==(v=null==(d=D.value)?void 0:d.venue)?void 0:v.open_time)?(c(),n(S,{key:3,class:"info-row"},{default:u(()=>[r(a,{class:"info-ico",src:w(I),mode:"aspectFit"},null,8,["src"]),r(S,{class:"info-text-col"},{default:u(()=>[r(N,{class:"info-text"},{default:u(()=>[b("开放时间:"+k(D.value.venue.open_time),1)]),_:1})]),_:1})]),_:1})):x("",!0),r(S,{class:"info-row"},{default:u(()=>[r(a,{class:"info-ico",src:w(J),mode:"aspectFit"},null,8,["src"]),r(S,{class:"info-text-col"},{default:u(()=>[r(N,{class:"info-text"},{default:u(()=>[b("距离:"+k(X.value),1)]),_:1})]),_:1})]),_:1}),(null==(p=D.value)?void 0:p.address)||(null==(y=null==(_=D.value)?void 0:_.venue)?void 0:y.address)?(c(),n(S,{key:4,class:"info-row"},{default:u(()=>[r(a,{class:"info-ico",src:w(K),mode:"aspectFit"},null,8,["src"]),r(S,{class:"info-text-col"},{default:u(()=>[r(N,{class:"info-text"},{default:u(()=>{var e,l,a;return[b("具体地址:"+k((null==(e=D.value)?void 0:e.address)||(null==(a=null==(l=D.value)?void 0:l.venue)?void 0:a.address)),1)]}),_:1})]),_:1})]),_:1})):x("",!0),ae.value?(c(),n(S,{key:5,class:"notice-block"},{default:u(()=>[r(S,{class:"sec-title-row notice-head-row"},{default:u(()=>[r(S,{class:"notice-head-left"},{default:u(()=>[r(a,{class:"info-ico",src:w(L),mode:"aspectFit"},null,8,["src"]),r(N,{class:"notice-label"},{default:u(()=>[b("预约须知")]),_:1})]),_:1}),W.value?(c(),n(N,{key:0,class:"expand-link",onClick:l[0]||(l[0]=e=>M.value=!M.value)},{default:u(()=>[b(k(M.value?"收起":"展开"),1)]),_:1})):x("",!0)]),_:1}),r(S,{class:h(["notice-block-body judge-notice",{"is-collapsed":W.value&&!M.value}])},{default:u(()=>[r(C,{class:"notice-inline-rich",nodes:ae.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):x("",!0)]}),_:1}),se.value?(c(),n(S,{key:0,class:"intro-card"},{default:u(()=>[r(S,{class:"sec-title-row"},{default:u(()=>[r(N,{class:"sec-title"},{default:u(()=>[b("活动详情")]),_:1}),V.value?(c(),n(N,{key:0,class:"expand-link",onClick:l[1]||(l[1]=e=>G.value=!G.value)},{default:u(()=>[b(k(G.value?"收起":"展开"),1)]),_:1})):x("",!0)]),_:1}),r(S,{class:h(["intro-rich-wrap judge-detail",{"is-collapsed":V.value&&!G.value}])},{default:u(()=>[r(C,{class:"intro-rich",nodes:se.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):x("",!0),r(S,{class:"safe-bottom"})]),_:1}),r(S,{class:"action-bar"},{default:u(()=>[r(A,{class:"btn ghost",onClick:ue},{default:u(()=>[b("一键导航")]),_:1}),r(A,{class:"btn primary",onClick:ie},{default:u(()=>[b("立即预约")]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-32617cc6"]]);export{Q as default};
|