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
11 KiB
2 lines
11 KiB
|
1 month ago
|
import{d as e,e as l,f as a,w as t,W as i,j as o,k as n,a0 as u,s,m as r,g as c,S as v,a2 as d,u as p,a1 as _,n as f,p as y,q as m,v as g,x as b,y as h,F as k,z as $,C as x,J as w,t as S,D as M,E as D,_ as C,I as N,R as j,a3 as V}from"./index-DBg2bUhq.js";import{h as A,i as T}from"./content.tJrjcqQa.js";import{g as F,l as z}from"./localProfile.LbgzO0uJ.js";import{i as Y,a as I}from"./icon_up.DJ5zmdk8.js";import{_ as R}from"./_plugin-vue_export-helper.BCo6x5W8.js";function U(e){if(null==e||""===e)return"";const l=String(e);let a="";if(/<[a-z][\s\S]*>/i.test(l)){const e=function(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 i=String(a).trim();return/style\s*=/i.test(i)?/max-width\s*:/i.test(i)?e:e.replace(/style\s*=\s*(["'])([\s\S]*?)\1/i,(e,a,t)=>/max-width/i.test(t)?e:`style=${a}${t};${l}${a}`):`<img ${i} style="${l}"${"/>"===t?" />":">"}`})}(l);a=`<div style="font-size:13px;color:#2c2c2c;line-height:1.8;">${e}</div>`}else{const e=function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}(l);a=`<div style="white-space:pre-wrap;font-size:13px;color:#2c2c2c;line-height:1.8;">${e}</div>`}return(t=a)&&String(t).trim()&&String(t).replace(/<[^>]+>/g," ").replace(/ /gi," ").replace(/\s+/g," ").trim().length>0?a:"";var t}const q=R(e({__name:"reserve",setup(e){const R=l(0),q=l(!1),B=l(!1),O=l(null),E=l(!0),J=l(!1),L=l({activity_day_id:0,visitor_name:"",visitor_phone:"",booking_type:"individual",people_count:1});a(()=>{var e;return((null==(e=O.value)?void 0:e.days)||[]).find(e=>e.id===L.value.activity_day_id)});const P=a(()=>!!L.value.activity_day_id&&!!L.value.visitor_name&&/^1\d{10}$/.test(L.value.visitor_phone)),W=a(()=>{var e,l;return U(null==(l=null==(e=O.value)?void 0:e.activity)?void 0:l.reservation_notice)});t(W,()=>{E.value=!0,u(()=>{setTimeout(()=>{var e;const l=null==(e=_())?void 0:e.proxy,a=d();l&&a.in(l);const t=p(187);a.select(".judge-notice-reserve").boundingClientRect(),a.exec(e=>{const[l]=e||[];J.value=!!(l&&l.height&&l.height>t+1),J.value?E.value=!1:E.value=!0})},120)})});const G=a(()=>{var e,l;return String((null==(l=null==(e=O.value)?void 0:e.activity)?void 0:l.booking_audience)||"both")}),H=a(()=>{var e,l;return Math.max(1,Number((null==(l=null==(e=O.value)?void 0:e.activity)?void 0:l.min_people_per_order)||1))}),K=a(()=>{var e,l;const a=Math.max(1,Number((null==(l=null==(e=O.value)?void 0:e.activity)?void 0:l.max_people_per_order)||1));return Math.max(a,H.value)}),Q=a(()=>{var e,l;return(null==(l=null==(e=O.value)?void 0:e.activity)?void 0:l.booking_modes)||["individual","group"]}),X=a(()=>"individual"===G.value),Z=a(()=>"group"===G.value),ee=a(()=>`团体(${H.value}-${K.value}人)`),le=a(()=>"group"===G.value||"both"===G.value&&"group"===L.value.booking_type),ae=a(()=>{var e;return[...(null==(e=O.value)?void 0:e.days)||[]].sort((e,l)=>String(e.activity_date).localeCompare(String(l.activity_date)))}),te=l(0);function ie(){if(!ae.value.length)return void(te.value=0);const e=L.value.activity_day_id;if(!e)return void(te.value=0);const l=ae.value.findIndex(l=>l.id===e);l<0||u(()=>{setTimeout(()=>{var a;const t=null==(a=_())?void 0:a.proxy,i=d();t&&i.in(t),i.select(".day-scroll").fields({scrollOffset:!0,size:!0,rect:!0}),i.select(`#daycell-${e}`).boundingClientRect(),i.exec(e=>{const a=Array.isArray(e)?e:[],t=a[0],i=a[1];if(null!=t&&null!=i&&"number"==typeof t.left&&"number"==typeof i.left){const e=Number(t.scrollLeft??0),l=i.left-t.left,a=Math.max(0,Math.round(e+l));return void(te.value=a)}if(l<=0)return void(te.value=0);const o=160*l;te.value=Math.round(p(o))})},80)})}function oe(e){return String(e).padStart(2,"0")}function ne(){var e;const l=(null==(e=O.value)?void 0:e.days)||[];if(!l.length)return void(L.value.activity_day_id=0);const a=l.filter(e=>e.is_bookable);if(a.length){const e=function(){const e=new Date;return`${e.getFullYear()}-${oe(e.getMonth()+1)}-${oe(e.getDate())}`}(),l=a.find(l=>{return a=l.activity_date,String(a||"
|