wangzhibo
2025-10-23 cad64c1de2c45856b0774933c5801b05b64984e8
1
"use strict";const e=require("../../common/vendor.js"),t=require("../../stores/user.js").useUserStore(),o={data:()=>({today:(new Date).toISOString().split("T")[0],venues:["场馆A","场馆B","场馆C"],timeSlots:[],form:{selectedVenueIndex:0,selectedDate:"",selectedTimeSlotIndex:null,name:t.username,phone:t.phoneNumber,companions:1}}),watch:{"form.selectedVenueIndex":"fetchTimeSlots","form.selectedDate":"fetchTimeSlots"},methods:{onTimeSlotChange(e){this.form.selectedTimeSlotIndex=e.detail.value},onVenueChange(e){this.form.selectedVenueIndex=e.detail.value},onDateChange(e){this.form.selectedDate=e.detail.value},fetchTimeSlots(){this.form.selectedDate&&(this.venues[this.form.selectedVenueIndex],this.form.selectedDate,this.timeSlots=[`上午(09:00-12:00 共20人 剩余${Math.floor(20*Math.random())})`,`下午(13:00-17:00 共20人 剩余${Math.floor(20*Math.random())})`],this.form.selectedTimeSlotIndex=null)},incrementCompanions(){this.form.companions<5&&this.form.companions++},decrementCompanions(){this.form.companions>1&&this.form.companions--},submitForm(){if(!this.form.name||this.form.name.length>10)return void e.index.showToast({title:"姓名不能为空,且最多10个字",icon:"none"});if(!/^(\d{11}|(\d{3,4}-?\d{7,8}))$/.test(this.form.phone))return void e.index.showToast({title:"联系电话格式不正确",icon:"none"});if(!this.form.selectedDate)return void e.index.showToast({title:"请选择预约日期",icon:"none"});if(null===this.form.selectedTimeSlotIndex)return void e.index.showToast({title:"请选择预约时段",icon:"none"});const t={venue:this.venues[this.form.selectedVenueIndex],date:this.form.selectedDate,timeSlot:this.timeSlots[this.form.selectedTimeSlotIndex],name:this.form.name,phone:this.form.phone,companions:this.form.companions,timestamp:Date.now()};e.index.request({url:"https://example.com/api/booking",method:"POST",data:t,success:t=>{e.index.showToast({title:"已预约成功,可在“我的”菜单查看和核销",icon:"success"}),this.form={selectedVenueIndex:0,selectedDate:"",selectedTimeSlotIndex:null,name:"",phone:"",companions:0},this.timeSlots=[]},fail:t=>{e.index.showToast({title:`提交失败: ${t.errMsg}`,icon:"none"})}})}}};const n=e._export_sfc(o,[["render",function(t,o,n,s,i,m){return{a:e.t(i.venues[i.form.selectedVenueIndex]||"请选择场馆"),b:i.venues,c:i.form.selectedVenueIndex,d:e.o(((...e)=>m.onVenueChange&&m.onVenueChange(...e))),e:e.t(i.form.selectedDate||"请选择日期"),f:i.form.selectedDate,g:e.o(((...e)=>m.onDateChange&&m.onDateChange(...e))),h:i.today,i:e.t(null!==i.form.selectedTimeSlotIndex?i.timeSlots[i.form.selectedTimeSlotIndex]:"请选择时段"),j:i.timeSlots,k:i.form.selectedTimeSlotIndex,l:e.o(((...e)=>m.onTimeSlotChange&&m.onTimeSlotChange(...e))),m:i.form.name,n:e.o((e=>i.form.name=e.detail.value)),o:i.form.phone,p:e.o((e=>i.form.phone=e.detail.value)),q:e.o(((...e)=>m.decrementCompanions&&m.decrementCompanions(...e))),r:e.t(i.form.companions),s:e.o(((...e)=>m.incrementCompanions&&m.incrementCompanions(...e))),t:e.o(((...e)=>m.submitForm&&m.submitForm(...e)))}}]]);wx.createPage(n);