"use strict";
|
const common_vendor = require("../../common/vendor.js");
|
const stores_user = require("../../stores/user.js");
|
const pages_index_assets = require("./assets.js");
|
const apiservice_apiService = require("../../apiservice/apiService.js");
|
const userStore = stores_user.useUserStore();
|
function getTodayISO() {
|
const now = /* @__PURE__ */ new Date();
|
const tzOffset = now.getTimezoneOffset() * 6e4;
|
return new Date(now - tzOffset).toISOString().split("T")[0];
|
}
|
const _sfc_main = {
|
data() {
|
return {
|
today: getTodayISO(),
|
//today: new Date().toLocaleDateString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit' }).replace(/\//g, '-'),
|
booking_sites: pages_index_assets.ASSETS.booking_sites,
|
timeSlots: [],
|
form: {
|
selectedSiteIndex: 0,
|
visitdate: "",
|
selectedTimeSlotIndex: null,
|
contactperson: userStore.username,
|
contactphone: userStore.phone,
|
personcount: 1
|
}
|
};
|
},
|
onShareAppMessage() {
|
return {
|
title: "欢迎来荆门市园博园游玩!",
|
path: "/pages/index/index"
|
};
|
},
|
onShareTimeline() {
|
return {
|
title: "欢迎来荆门市园博园游玩!"
|
};
|
},
|
watch: {
|
"form.selectedSiteIndex": "fetchTimeSlots",
|
"form.visitdate": "fetchTimeSlots"
|
},
|
methods: {
|
onVenueChange(e) {
|
this.form.selectedSiteIndex = e.detail.value;
|
this.form.visitdate = "";
|
},
|
onDateChange(e) {
|
this.form.visitdate = e.detail.value;
|
},
|
onTimeSlotChange(e) {
|
this.form.selectedTimeSlotIndex = e.detail.value;
|
},
|
async fetchTimeSlots() {
|
if (!this.form.visitdate)
|
return;
|
const sitename = this.booking_sites[this.form.selectedSiteIndex];
|
const visitdate = this.form.visitdate;
|
apiservice_apiService.apiService.bookingAvailableCount();
|
try {
|
common_vendor.index.showLoading({
|
title: "查询中..."
|
});
|
const payload = {
|
sitename,
|
visitdate
|
};
|
apiservice_apiService.apiService.bookingAvailableCount(payload).then((res) => {
|
if (res.code === 1e3) {
|
this.timeSlots = [
|
`上午(09:00-12:00 余${res.data.am.remain}/共${res.data.am.total}人)`,
|
`下午(13:00-17:00 余${res.data.pm.remain}/共${res.data.pm.total}人)`
|
];
|
this.selectedTimeSlotIndex = 0;
|
} else {
|
common_vendor.index.__f__("warn", "at pages/index/booking.vue:181", "查询失败:", res.message);
|
}
|
}).catch((err) => {
|
common_vendor.index.showToast({
|
title: "发生错误,请联系管理员",
|
icon: "none"
|
});
|
});
|
} catch (err) {
|
common_vendor.index.__f__("error", "at pages/index/booking.vue:190", "查询错误:", err);
|
common_vendor.index.showToast({
|
title: "网络错误",
|
icon: "none"
|
});
|
} finally {
|
common_vendor.index.hideLoading();
|
}
|
this.form.selectedTimeSlotIndex = null;
|
},
|
incrementCompanions() {
|
if (this.form.personcount < 5)
|
this.form.personcount++;
|
},
|
decrementCompanions() {
|
if (this.form.personcount > 1)
|
this.form.personcount--;
|
},
|
async submitForm() {
|
if (!this.form.contactperson || this.form.contactperson.length > 10) {
|
common_vendor.index.showToast({
|
title: "姓名不能为空,且最多10个字",
|
icon: "none"
|
});
|
return;
|
}
|
const phonePattern = /^(\d{11}|(\d{3,4}-?\d{7,8}))$/;
|
if (!phonePattern.test(this.form.contactphone)) {
|
common_vendor.index.showToast({
|
title: "联系电话格式不正确",
|
icon: "none"
|
});
|
return;
|
}
|
if (!this.form.visitdate) {
|
common_vendor.index.showToast({
|
title: "请选择预约日期",
|
icon: "none"
|
});
|
return;
|
}
|
if (this.form.selectedTimeSlotIndex === null) {
|
common_vendor.index.showToast({
|
title: "请选择预约时段",
|
icon: "none"
|
});
|
return;
|
} else {
|
const now = /* @__PURE__ */ new Date();
|
const currentHour = now.getHours();
|
if (this.form.visitdate == this.today && currentHour > 17) {
|
common_vendor.index.showToast({
|
title: "预约时段已过,请重新选择",
|
icon: "none",
|
duration: 2e3
|
});
|
return;
|
} else if (this.form.visitdate == this.today && currentHour > 12 && this.form.selectedTimeSlotIndex == 0) {
|
common_vendor.index.showToast({
|
title: "预约时段已过,请重新选择",
|
icon: "none",
|
duration: 2e3
|
});
|
return;
|
}
|
}
|
try {
|
common_vendor.index.showLoading({
|
title: "保存中..."
|
});
|
const checkingPayload = {
|
uuid: userStore.uuid,
|
sitename: this.booking_sites[this.form.selectedSiteIndex],
|
visitdate: this.form.visitdate,
|
visittimefield: Number(this.form.selectedTimeSlotIndex) === 0 ? "visittimeam" : "visittimepm"
|
};
|
common_vendor.index.__f__("log", "at pages/index/booking.vue:270", checkingPayload);
|
const res = await apiservice_apiService.apiService.bookingCheck(checkingPayload);
|
if (res.code === 1e3) {
|
common_vendor.index.__f__("log", "at pages/index/booking.vue:273", res.data);
|
if (res.data.exist === 0) {
|
common_vendor.index.__f__("log", "at pages/index/booking.vue:276", "start saving");
|
const payload = {
|
uuid: userStore.uuid,
|
sitename: this.booking_sites[this.form.selectedSiteIndex],
|
visitdate: this.form.visitdate,
|
visittimeam: Number(this.form.selectedTimeSlotIndex) === 0 ? "09:00-12:00" : "",
|
visittimepm: Number(this.form.selectedTimeSlotIndex) === 1 ? "13:00-17:00" : "",
|
contactperson: this.form.contactperson,
|
contactphone: this.form.contactphone,
|
personcount: this.form.personcount
|
};
|
common_vendor.index.__f__("log", "at pages/index/booking.vue:288", payload);
|
const saveres = await apiservice_apiService.apiService.bookingAdd(payload);
|
common_vendor.index.__f__("log", "at pages/index/booking.vue:291", saveres.code);
|
if (saveres.code === 1e3) {
|
common_vendor.index.showModal({
|
title: "预约成功",
|
content: "请按时前往场馆,并扫码核销以便入场。",
|
showCancel: false,
|
confirmText: "我知道了"
|
});
|
this.form.visitdate = "";
|
this.form.selectedTimeSlotIndex = null;
|
common_vendor.index.navigateTo({
|
url: "/pages/ucenter/my-booking"
|
});
|
} else {
|
common_vendor.index.__f__("warn", "at pages/index/booking.vue:308", "预约失败:", saveres.message);
|
}
|
} else {
|
common_vendor.index.showToast({
|
title: "您已有预约相同日期和时段的该场馆信息,请更改信息。",
|
icon: "none",
|
duration: 3e3
|
// 显示 3 秒
|
});
|
}
|
} else {
|
common_vendor.index.__f__("warn", "at pages/index/booking.vue:321", "查询失败:", res.message);
|
}
|
} catch (err) {
|
common_vendor.index.__f__("error", "at pages/index/booking.vue:326", "查询错误:", err);
|
common_vendor.index.showToast({
|
title: "网络错误",
|
icon: "none"
|
});
|
} finally {
|
common_vendor.index.hideLoading();
|
}
|
}
|
}
|
};
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
return {
|
a: common_vendor.t($data.booking_sites[$data.form.selectedSiteIndex] || "请选择场馆"),
|
b: $data.booking_sites,
|
c: $data.form.selectedSiteIndex,
|
d: common_vendor.o((...args) => $options.onVenueChange && $options.onVenueChange(...args)),
|
e: common_vendor.t($data.form.visitdate || "请选择日期"),
|
f: $data.form.visitdate,
|
g: common_vendor.o((...args) => $options.onDateChange && $options.onDateChange(...args)),
|
h: $data.today,
|
i: common_vendor.t($data.form.selectedTimeSlotIndex !== null ? $data.timeSlots[$data.form.selectedTimeSlotIndex] : "请选择时段"),
|
j: $data.timeSlots,
|
k: $data.form.selectedTimeSlotIndex,
|
l: common_vendor.o((...args) => $options.onTimeSlotChange && $options.onTimeSlotChange(...args)),
|
m: $data.form.contactperson,
|
n: common_vendor.o(($event) => $data.form.contactperson = $event.detail.value),
|
o: $data.form.contactphone,
|
p: common_vendor.o(($event) => $data.form.contactphone = $event.detail.value),
|
q: common_vendor.o((...args) => $options.decrementCompanions && $options.decrementCompanions(...args)),
|
r: common_vendor.t($data.form.personcount),
|
s: common_vendor.o((...args) => $options.incrementCompanions && $options.incrementCompanions(...args)),
|
t: common_vendor.o((...args) => $options.submitForm && $options.submitForm(...args))
|
};
|
}
|
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
_sfc_main.__runtimeHooks = 6;
|
wx.createPage(MiniProgramPage);
|
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/booking.js.map
|