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

import{d as e,e as l,f as a,w as s,W as t,j as n,k as i,m as u,n as o,p as c,q as r,X as d,y as v,F as f,z as _,Y as m,D as p,Z as g,J as y,t as b,v as h,x as k,H as x,E as w,B as j,C as $,_ as C,R as S,K as F,s as N,$ as z,a0 as A,a1 as q,a2 as R,u as P}from"./index-BIuhrOm4.js";import{f as T,g as B}from"./content.CEXCli_J.js";import{a as D}from"./venueThemeColors.DRxjaxXI.js";import{c as E,f as H}from"./activity.BNBJ_f9a.js";import{i as I,a as J}from"./icon7._bWPQpd9.js";import{i as K,a as W}from"./icon3.CIxzJE3F.js";import{i as X,a as Y}from"./icon_up.DJ5zmdk8.js";import{P as Z}from"./poster.DLiVsUXX.js";import{_ as G}from"./_plugin-vue_export-helper.BCo6x5W8.js";const L=G(e({__name:"detail",setup(e){function G(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 L(e){if(!e||!String(e).trim())return!1;return String(e).replace(/<[^>]+>/g," ").replace(/&nbsp;/gi," ").replace(/\s+/g," ").trim().length>0}const M=l(null),O=l(null),Q=l(!0),U=l(!1),V=l(!1),ee=l(!1),le=a(()=>{const e=M.value;return e?Array.isArray(e.carousel)&&e.carousel.length?e.carousel:e.image?[{type:"image",url:e.image}]:[{type:"image",url:Z}]:[{type:"image",url:Z}]}),ae=a(()=>{const e=M.value;if(!e)return"ongoing";const l=e.schedule_status;return"not_started"===l||"ongoing"===l||"ended"===l?l:E(e.start_at,e.end_at)}),se=a(()=>"ended"===ae.value),te=a(()=>{var e;return!se.value&&!0===(null==(e=M.value)?void 0:e.is_bookable)}),ne=a(()=>{var e;return Array.isArray(null==(e=M.value)?void 0:e.booking_days)?M.value.booking_days:[]}),ie=l(0);function ue(e){const l=Number(null==e?void 0:e.booked_count);return!Number.isFinite(l)||l<=0?"":(null==e?void 0:e.enrolled_count_text)?String(e.enrolled_count_text):"已报名数:"+l}function oe(){var e;const l=null==(e=M.value)?void 0:e.id;if(!l)return;const a=ne.value;if(!a.length)return void F({url:`/pages/activity/reserve?id=${l}`});if(!ie.value)return void N({title:"请先选择场次",icon:"none"});const s=a.find(e=>e.id===ie.value);s?s.is_bookable&&F({url:`/pages/activity/reserve?id=${l}&day_id=${ie.value}`}):N({title:"场次无效",icon:"none"})}const ce=a(()=>{var e;const l=null==(e=M.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=`<div style="font-size:13px;color:#2c2c2c;line-height:1.8;">${G(a)}</div>`}else{const e=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}(a);s=`<div style="white-space:pre-wrap;font-size:13px;color:#2c2c2c;line-height:1.8;">${e}</div>`}return L(s)?s:""}),re=a(()=>{var e;const l=null==(e=M.value)?void 0:e.detail_html;if(!l)return"";const a=G(String(l));return L(a)?a:""});function de(e){return null==e?"":String(e).trim()}function ve(e){return de(e).length>0}function fe(){var e,l,a,s;const{lat:t,lng:n}=function(){var e,l,a,s,t,n;return{lat:Number((null==(e=M.value)?void 0:e.lat)??(null==(a=null==(l=M.value)?void 0:l.venue)?void 0:a.lat)??0),lng:Number((null==(s=M.value)?void 0:s.lng)??(null==(n=null==(t=M.value)?void 0:t.venue)?void 0:n.lng)??0)}}();z({lat:t,lng:n,name:(null==(e=M.value)?void 0:e.title)||"活动地点",address:(null==(l=M.value)?void 0:l.address)||(null==(s=null==(a=M.value)?void 0:a.venue)?void 0:s.address)||""})}function _e(){var e,l;const a=Number((null==(l=null==(e=M.value)?void 0:e.venue)?void 0:l.id)??0);a?F({url:`/pages/venue/detail?id=${a}`}):N({title:"暂无场馆详情",icon:"none"})}return s([re,ce],()=>{Q.value=!0,U.value=!0,A(()=>{setTimeout(()=>{var e;const l=null==(e=q())?void 0:e.proxy,a=R();l&&a.in(l);const s=P(187);a.select(".judge-activity-detail").boundingClientRect(),a.select(".judge-notice").boundingClientRect(),a.exec(e=>{const[l,a]=e||[];V.value=!!(l&&l.height&&l.height>s+1),ee.value=!!(a&&a.height&&a.height>s+1),ee.value?U.value=!1:U.value=!0})},120)})}),t(async e=>{const l=Number((null==e?void 0:e.id)||0);if(!l)return;const[a,s]=await Promise.all([T(l),B()]);M.value=a,O.value=s}),(e,l)=>{const a=p,s=g,t=m,F=d,N=u,z=b,A=C,q=r,R=S;return o(),n(N,{class:"page"},{default:i(()=>[c(q,{"scroll-y":"",class:"scroll"},{default:i(()=>{var e;return[c(N,{class:"hero"},{default:i(()=>[le.value.length?(o(),n(F,{key:0,class:"hero-swiper",circular:"",autoplay:le.value.length>1,interval:4e3,"indicator-dots":le.value.length>1,"indicator-active-color":"#05c9ac","indicator-color":"rgba(255,255,255,0.45)"},{default:i(()=>[(o(!0),v(f,null,_(le.value,(e,l)=>(o(),n(t,{key:"s-"+l,class:"swiper-item"},{default:i(()=>["video"!==e.type?(o(),n(a,{key:0,class:"slide-media",src:e.url,mode:"aspectFill"},null,8,["src"])):(o(),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,["autoplay","indicator-dots"])):y("",!0)]),_:1}),c(N,{class:"main-card"},{default:i(()=>{var e,s,t,u,r,d,m,p;return[c(z,{class:"act-title"},{default:i(()=>{var e;return[h(k((null==(e=M.value)?void 0:e.title)||"-"),1)]}),_:1}),(null==(s=null==(e=M.value)?void 0:e.tags)?void 0:s.length)?(o(),n(N,{key:0,class:"act-tags"},{default:i(()=>[(o(!0),v(f,null,_((M.value.tags||[]).slice(0,4),(e,l)=>{var a;return o(),n(z,{key:"tg-"+l+"-"+e,class:"act-tag-chip",style:x(w(D)(l,null==(a=O.value)?void 0:a.venue_type))},{default:i(()=>[h(k(e),1)]),_:2},1032,["style"])}),128))]),_:1})):y("",!0),(null==(u=null==(t=M.value)?void 0:t.venue)?void 0:u.name)?(o(),n(N,{key:1,class:"info-row"},{default:i(()=>[c(a,{class:"info-ico",src:w(I),mode:"aspectFit"},null,8,["src"]),c(N,{class:"info-text-col info-text-col--line"},{default:i(()=>[c(z,{class:"info-label"},{default:i(()=>[h("举办场馆:")]),_:1}),c(z,{class:"info-value info-value--venue",onClick:j(_e,["stop"])},{default:i(()=>[h(k(M.value.venue.name),1)]),_:1})]),_:1})]),_:1})):y("",!0),(null==(d=null==(r=M.value)?void 0:r.venue)?void 0:d.open_time)&&ve(M.value.venue.open_time)?(o(),n(N,{key:2,class:"info-row"},{default:i(()=>[c(a,{class:"info-ico",src:w(K),mode:"aspectFit"},null,8,["src"]),c(N,{class:"info-text-col info-text-col--line"},{default:i(()=>[c(z,{class:"info-label"},{default:i(()=>[h("开放时间:")]),_:1}),c(z,{class:"info-value"},{default:i(()=>[h(k(de(M.value.venue.open_time)),1)]),_:1})]),_:1})]),_:1})):y("",!0),M.value?(o(),n(N,{key:3,class:"info-row"},{default:i(()=>[c(a,{class:"info-ico",src:w(W),mode:"aspectFit"},null,8,["src"]),c(N,{class:"info-text-col info-text-col--line"},{default:i(()=>[c(z,{class:"info-label"},{default:i(()=>[h("活动日期:")]),_:1}),c(z,{class:"info-value"},{default:i(()=>{var e,l;return[h(k(w(H)(null==(e=M.value)?void 0:e.start_at,null==(l=M.value)?void 0:l.end_at)),1)]}),_:1})]),_:1})]),_:1})):y("",!0),M.value&&ve(M.value.address||(null==(p=null==(m=M.value)?void 0:m.venue)?void 0:p.address))?(o(),n(N,{key:4,class:"info-row"},{default:i(()=>[c(a,{class:"info-ico",src:w(J),mode:"aspectFit"},null,8,["src"]),c(N,{class:"info-text-col info-text-col--line"},{default:i(()=>[c(z,{class:"info-label"},{default:i(()=>[h("活动地址:")]),_:1}),c(z,{class:"info-value"},{default:i(()=>{var e,l;return[h(k(de(M.value.address||(null==(l=null==(e=M.value)?void 0:e.venue)?void 0:l.address))),1)]}),_:1})]),_:1})]),_:1})):y("",!0),ce.value?(o(),n(N,{key:5,class:"notice-block"},{default:i(()=>[c(N,{class:"sec-title-row notice-head-row"},{default:i(()=>[c(z,{class:"notice-label"},{default:i(()=>[h("预约须知")]),_:1}),ee.value?(o(),n(N,{key:0,class:"expand-arrow-tap",onClick:l[0]||(l[0]=e=>U.value=!U.value)},{default:i(()=>[c(a,{class:"expand-arrow-img",src:U.value?w(X):w(Y),mode:"aspectFit"},null,8,["src"])]),_:1})):y("",!0)]),_:1}),c(N,{class:$(["notice-block-body judge-notice",{"is-collapsed":ee.value&&!U.value}])},{default:i(()=>[c(A,{class:"notice-inline-rich",nodes:ce.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):y("",!0)]}),_:1}),(null==(e=M.value)?void 0:e.summary)?(o(),n(N,{key:0,class:"summary-card"},{default:i(()=>[c(N,{class:"sec-title-row"},{default:i(()=>[c(z,{class:"sec-title"},{default:i(()=>[h("活动简介")]),_:1})]),_:1}),c(z,{class:"summary-text"},{default:i(()=>[h(k(M.value.summary),1)]),_:1})]),_:1})):y("",!0),ne.value.length?(o(),n(N,{key:1,class:"session-card-wrap"},{default:i(()=>[c(N,{class:"sec-title-row session-sec-hd"},{default:i(()=>[c(N,{class:"session-sec-bar"}),c(z,{class:"sec-title"},{default:i(()=>[h("活动场次")]),_:1})]),_:1}),(o(!0),v(f,null,_(ne.value,(e,l)=>(o(),n(N,{key:"ss-"+e.id+"-"+l,class:$(["session-item",{on:e.is_bookable&&ie.value===e.id,dim:!e.is_bookable}]),onClick:l=>function(e){(null==e?void 0:e.id)&&e.is_bookable&&(ie.value=Number(e.id))}(e)},{default:i(()=>[e.is_bookable&&ie.value===e.id?(o(),n(N,{key:0,class:"session-check"},{default:i(()=>[h("✓")]),_:1})):y("",!0),c(z,{class:"session-name"},{default:i(()=>[h(k(e.session_name||e.time_display||"场次"),1)]),_:2},1024),c(z,{class:"session-time"},{default:i(()=>[h("场次时间:"+k(e.time_display||"-"),1)]),_:2},1024),c(N,{class:"session-status-line"},{default:i(()=>[c(z,{class:$(["session-action","sk-"+(e.status_kind||"open")])},{default:i(()=>[h(k(e.action_headline||e.status_text||"-"),1)]),_:2},1032,["class"]),ue(e)?(o(),n(z,{key:0,class:"session-enrolled"},{default:i(()=>[h(k(ue(e)),1)]),_:2},1024)):y("",!0)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})):y("",!0),re.value?(o(),n(N,{key:2,class:"intro-card"},{default:i(()=>[c(N,{class:"sec-title-row"},{default:i(()=>[c(z,{class:"sec-title"},{default:i(()=>[h("活动详情")]),_:1}),V.value?(o(),n(N,{key:0,class:"expand-arrow-tap",onClick:l[1]||(l[1]=e=>Q.value=!Q.value)},{default:i(()=>[c(a,{class:"expand-arrow-img",src:Q.value?w(X):w(Y),mode:"aspectFit"},null,8,["src"])]),_:1})):y("",!0)]),_:1}),c(N,{class:$(["intro-rich-wrap judge-activity-detail",{"is-collapsed":V.value&&!Q.value}])},{default:i(()=>[c(A,{class:"intro-rich",nodes:re.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):y("",!0),c(N,{class:"safe-bottom"})]}),_:1}),c(N,{class:"action-bar"},{default:i(()=>[c(R,{class:$(["btn ghost",{"btn-full":se.value||!te.value}]),onClick:fe},{default:i(()=>[h("一键导航")]),_:1},8,["class"]),te.value?(o(),n(R,{key:0,class:"btn primary",onClick:oe},{default:i(()=>[h("立即预约")]),_:1})):y("",!0)]),_:1})]),_:1})}}}),[["__scopeId","data-v-e6c1c9bd"]]);export{L as default};