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

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