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,r as l,c as a,w as t,J as s,a as u,b as n,k as i,p as o,m as r,n as c,S as d,K as v,v as f,F as p,x as _,L as g,A as m,N as y,z as h,t as k,u as b,q as $,C as x,O as w,B as j,P as F,H as S,e as C,Q as N,E as z,R as A,T as R,U as q,V as I}from"./index-Cu9ZRBys.js";import{e as T}from"./content.SYmDdoIV.js";import{h as B,f as E}from"./geo.BHVFNtB7.js";import{t as H,u as J,g as K,m as L,a as O}from"./tip.CRDnOkzn.js";import{_ as P}from"./_plugin-vue_export-helper.BCo6x5W8.js";const Q=P(e({__name:"detail",setup(e){const P={science_venue:"科技场馆类",education_research:"教育科研类",agriculture:"“三农”类",enterprise:"企业类",nature_resource:"自然资源类",other:"其他类"},Q={free:"免费",paid:"收费"};function U(e,l){let a=e.replace("#","").trim();if(3===a.length&&(a=a.split("").map(e=>e+e).join("")),6!==a.length)return`rgba(5, 201, 172, ${l})`;const t=parseInt(a,16);return`rgba(${t>>16&255},${t>>8&255},${255&t},${l})`}function V(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,t)=>{const s=String(a).trim();if(/style\s*=/i.test(s))return/max-width\s*:/i.test(s)?e:e.replace(/style\s*=\s*(["'])([\s\S]*?)\1/i,(e,a,t)=>/max-width/i.test(t)?e:`style=${a}${t};${l}${a}`);return`<img ${s} style="${l}"${"/>"===t?" />":">"}`})}function D(e){if(!e||!String(e).trim())return!1;return String(e).replace(/<[^>]+>/g," ").replace(/&nbsp;/gi," ").replace(/\s+/g," ").trim().length>0}function G(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,t,s]=l;return Number.isFinite(a)&&Number.isFinite(t)&&Number.isFinite(s)?{y:a,m:t,d:s}:null},t=a(e),s=a(l);return t||s?t&&!s?`${t.y}${t.m}${t.d}`:!t&&s?`${s.y}${s.m}${s.d}`:t&&s?t.y===s.y?`${t.y}${t.m}${t.d}日至${s.m}${s.d}`:`${t.y}${t.m}${t.d}日至${s.y}${s.m}${s.d}`:"日期待定":"日期待定"}const M=l(null),W=l(!0),X=l(!0),Y=l(!1),Z=l(!1),ee=l("--"),le=l(null),ae=a(()=>{const e=M.value;return e?Array.isArray(e.carousel)&&e.carousel.length?e.carousel:e.image?[{type:"image",url:e.image}]:[]:[]}),te=a(()=>{var e,l;return 0===((null==(e=M.value)?void 0:e.registered_count)??0)&&!0===(null==(l=M.value)?void 0:l.is_bookable)}),se=a(()=>{var e;const l=(null==(e=M.value)?void 0:e.registered_count)??0;return te.value?"可预约":l>0?`${l}人已预约`:"敬请期待"}),ue=a(()=>{var e;const l=null==(e=M.value)?void 0:e.reservation_notice;if(null==l||""===l)return"";const a=String(l);let t="";if(/<[a-z][\s\S]*>/i.test(a))t=V(a);else{const e=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}(a);t=`<div style="white-space:pre-wrap;font-size:13px;color:#4e5969;line-height:1.65;">${e}</div>`}return D(t)?t:""}),ne=a(()=>{var e;const l=null==(e=M.value)?void 0:e.detail_html;if(!l)return"";const a=V(String(l));return D(a)?a:""}),ie=a(()=>{var e;const l=(null==(e=M.value)?void 0:e.venue_type_color)||"#05c9ac";return{color:l,backgroundColor:U(l,.14),border:`1px solid ${U(l,.35)}`}});function oe(){var e,l,a,t,s,u;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==(t=M.value)?void 0:t.lng)??(null==(u=null==(s=M.value)?void 0:s.venue)?void 0:u.lng)??0)}}function re(){const{lat:e,lng:l}=oe();if(!e||!l||!le.value)return void(ee.value="--");const a=B(le.value.lat,le.value.lng,e,l);ee.value=E(a)}function ce(){var e,l,a,t;const{lat:s,lng:u}=oe();s&&u?N({latitude:s,longitude:u,name:(null==(e=M.value)?void 0:e.title)||"活动地点",address:(null==(l=M.value)?void 0:l.address)||(null==(t=null==(a=M.value)?void 0:a.venue)?void 0:t.address)||""}):C({title:"暂无导航坐标",icon:"none"})}function de(){var e;(null==(e=M.value)?void 0:e.id)&&z({url:`/pages/activity/reserve?id=${M.value.id}`})}return t(M,()=>{re()}),t([ne,ue],()=>{W.value=!0,X.value=!0,A(()=>{setTimeout(()=>{var e;const l=null==(e=R())?void 0:e.proxy,a=q();l&&a.in(l);const t=I(180);a.select(".judge-detail").boundingClientRect(),a.select(".judge-notice").boundingClientRect(),a.exec(e=>{const[l,a]=e||[];Y.value=!!(l&&l.height&&l.height>t+1),Z.value=!!(a&&a.height&&a.height>t+1)})},120)})}),s(async e=>{const l=Number((null==e?void 0:e.id)||0);l&&(M.value=await T(l),i({type:"gcj02",success:e=>{le.value={lat:e.latitude,lng:e.longitude},re()},fail:()=>{ee.value="--"}}))}),(e,l)=>{const a=m,t=y,s=g,i=v,C=o,N=$,z=F,A=d,R=S;return r(),u(C,{class:"page"},{default:n(()=>[c(A,{"scroll-y":"",class:"scroll"},{default:n(()=>[c(C,{class:"hero"},{default:n(()=>[ae.value.length?(r(),u(i,{key:0,class:"hero-swiper",circular:"","indicator-dots":ae.value.length>1,"indicator-active-color":"#05c9ac","indicator-color":"rgba(255,255,255,0.45)"},{default:n(()=>[(r(!0),f(p,null,_(ae.value,(e,l)=>(r(),u(s,{key:"s-"+l,class:"swiper-item"},{default:n(()=>["video"!==e.type?(r(),u(a,{key:0,class:"slide-media",src:e.url,mode:"aspectFill"},null,8,["src"])):(r(),u(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,["indicator-dots"])):(r(),u(C,{key:1,class:"hero-placeholder"})),c(C,{class:h(["live-badge",{"is-bookable":te.value}])},{default:n(()=>[k(b(se.value),1)]),_:1},8,["class"])]),_:1}),c(C,{class:"main-card"},{default:n(()=>{var e,t,s,i,o,d,v,g,m,y,$,F,S,A,R,q,I;return[c(N,{class:"act-title"},{default:n(()=>{var e;return[k(b((null==(e=M.value)?void 0:e.title)||"-"),1)]}),_:1}),(null==(t=null==(e=M.value)?void 0:e.venue)?void 0:t.name)?(r(),u(N,{key:0,class:"act-venue-line"},{default:n(()=>[k(b(M.value.venue.name),1)]),_:1})):x("",!0),(null==(s=M.value)?void 0:s.summary)?(r(),u(N,{key:1,class:"act-summary"},{default:n(()=>[k(b(M.value.summary),1)]),_:1})):x("",!0),(null==(i=M.value)?void 0:i.tags)&&M.value.tags.length||(null==(d=null==(o=M.value)?void 0:o.venue)?void 0:d.venue_type)||(null==(g=null==(v=M.value)?void 0:v.venue)?void 0:g.ticket_type)||(null==(y=null==(m=M.value)?void 0:m.venue)?void 0:y.district)?(r(),u(C,{key:2,class:"chip-row"},{default:n(()=>{var e,l,a,t,s,i,o;return[(r(!0),f(p,null,_((null==(e=M.value)?void 0:e.tags)||[],e=>(r(),u(N,{key:e,class:"chip chip-tag"},{default:n(()=>[k(b(e),1)]),_:2},1024))),128)),(null==(a=null==(l=M.value)?void 0:l.venue)?void 0:a.venue_type)?(r(),u(N,{key:0,class:"chip",style:w(ie.value)},{default:n(()=>{return[k(b((e=M.value.venue.venue_type,e?P[e]||e:"")),1)];var e}),_:1},8,["style"])):x("",!0),(null==(s=null==(t=M.value)?void 0:t.venue)?void 0:s.ticket_type)?(r(),u(N,{key:1,class:h(["chip","paid"===M.value.venue.ticket_type?"chip-paid":"chip-free"])},{default:n(()=>{return[k(b((e=M.value.venue.ticket_type,e?Q[e]||e:"")),1)];var e}),_:1},8,["class"])):x("",!0),(null==(o=null==(i=M.value)?void 0:i.venue)?void 0:o.district)?(r(),u(N,{key:2,class:"chip chip-district"},{default:n(()=>[k(b(M.value.venue.district),1)]),_:1})):x("",!0)]}),_:1})):x("",!0),c(C,{class:"info-row"},{default:n(()=>[c(a,{class:"info-ico",src:j(H),mode:"aspectFit"},null,8,["src"]),c(C,{class:"info-text-col"},{default:n(()=>[c(N,{class:"info-text"},{default:n(()=>{var e,l;return[k("活动时间:"+b(G(null==(e=M.value)?void 0:e.start_at,null==(l=M.value)?void 0:l.end_at)),1)]}),_:1})]),_:1})]),_:1}),(null==(F=null==($=M.value)?void 0:$.venue)?void 0:F.unit_name)?(r(),u(C,{key:3,class:"info-row"},{default:n(()=>[c(a,{class:"info-ico",src:j(J),mode:"aspectFit"},null,8,["src"]),c(C,{class:"info-text-col"},{default:n(()=>[c(N,{class:"info-text"},{default:n(()=>[k("所属单位:"+b(M.value.venue.unit_name),1)]),_:1})]),_:1})]),_:1})):x("",!0),(null==(A=null==(S=M.value)?void 0:S.venue)?void 0:A.open_time)?(r(),u(C,{key:4,class:"info-row"},{default:n(()=>[c(a,{class:"info-ico",src:j(H),mode:"aspectFit"},null,8,["src"]),c(C,{class:"info-text-col"},{default:n(()=>[c(N,{class:"info-text"},{default:n(()=>[k("开放时间:"+b(M.value.venue.open_time),1)]),_:1})]),_:1})]),_:1})):x("",!0),c(C,{class:"info-row"},{default:n(()=>[c(a,{class:"info-ico",src:j(K),mode:"aspectFit"},null,8,["src"]),c(C,{class:"info-text-col"},{default:n(()=>[c(N,{class:"info-text"},{default:n(()=>[k("距离:"+b(ee.value),1)]),_:1})]),_:1})]),_:1}),(null==(R=M.value)?void 0:R.address)||(null==(I=null==(q=M.value)?void 0:q.venue)?void 0:I.address)?(r(),u(C,{key:5,class:"info-row"},{default:n(()=>[c(a,{class:"info-ico",src:j(L),mode:"aspectFit"},null,8,["src"]),c(C,{class:"info-text-col"},{default:n(()=>[c(N,{class:"info-text"},{default:n(()=>{var e,l,a;return[k("具体地址:"+b((null==(e=M.value)?void 0:e.address)||(null==(a=null==(l=M.value)?void 0:l.venue)?void 0:a.address)),1)]}),_:1})]),_:1})]),_:1})):x("",!0),ue.value?(r(),u(C,{key:6,class:"notice-block"},{default:n(()=>[c(C,{class:"sec-title-row notice-head-row"},{default:n(()=>[c(C,{class:"notice-head-left"},{default:n(()=>[c(a,{class:"info-ico",src:j(O),mode:"aspectFit"},null,8,["src"]),c(N,{class:"notice-label"},{default:n(()=>[k("预约须知")]),_:1})]),_:1}),Z.value?(r(),u(N,{key:0,class:"expand-link",onClick:l[0]||(l[0]=e=>X.value=!X.value)},{default:n(()=>[k(b(X.value?"收起":"展开"),1)]),_:1})):x("",!0)]),_:1}),c(C,{class:h(["notice-block-body judge-notice",{"is-collapsed":Z.value&&!X.value}])},{default:n(()=>[c(z,{class:"notice-inline-rich",nodes:ue.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):x("",!0)]}),_:1}),ne.value?(r(),u(C,{key:0,class:"intro-card"},{default:n(()=>[c(C,{class:"sec-title-row"},{default:n(()=>[c(N,{class:"sec-title"},{default:n(()=>[k("活动详情")]),_:1}),Y.value?(r(),u(N,{key:0,class:"expand-link",onClick:l[1]||(l[1]=e=>W.value=!W.value)},{default:n(()=>[k(b(W.value?"收起":"展开"),1)]),_:1})):x("",!0)]),_:1}),c(C,{class:h(["intro-rich-wrap judge-detail",{"is-collapsed":Y.value&&!W.value}])},{default:n(()=>[c(z,{class:"intro-rich",nodes:ne.value},null,8,["nodes"])]),_:1},8,["class"])]),_:1})):x("",!0),c(C,{class:"safe-bottom"})]),_:1}),c(C,{class:"action-bar"},{default:n(()=>[c(R,{class:"btn ghost",onClick:ce},{default:n(()=>[k("一键导航")]),_:1}),c(R,{class:"btn primary",onClick:de},{default:n(()=>[k("立即预约")]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-d6160893"]]);export{Q as default};