"use strict"; const common_vendor = require("../../common/vendor.js"); const utils_api = require("../../utils/api.js"); if (!Array) { const _easycom_t_tab_panel2 = common_vendor.resolveComponent("t-tab-panel"); const _easycom_t_tabs2 = common_vendor.resolveComponent("t-tabs"); const _easycom_t_loading2 = common_vendor.resolveComponent("t-loading"); const _easycom_t_empty2 = common_vendor.resolveComponent("t-empty"); const _easycom_t_tag2 = common_vendor.resolveComponent("t-tag"); const _easycom_t_button2 = common_vendor.resolveComponent("t-button"); (_easycom_t_tab_panel2 + _easycom_t_tabs2 + _easycom_t_loading2 + _easycom_t_empty2 + _easycom_t_tag2 + _easycom_t_button2)(); } const _easycom_t_tab_panel = () => "../../uni_modules/tdesign-uniapp/components/tab-panel/tab-panel.js"; const _easycom_t_tabs = () => "../../uni_modules/tdesign-uniapp/components/tabs/tabs.js"; const _easycom_t_loading = () => "../../uni_modules/tdesign-uniapp/components/loading/loading.js"; const _easycom_t_empty = () => "../../uni_modules/tdesign-uniapp/components/empty/empty.js"; const _easycom_t_tag = () => "../../uni_modules/tdesign-uniapp/components/tag/tag.js"; const _easycom_t_button = () => "../../uni_modules/tdesign-uniapp/components/button/button.js"; if (!Math) { (_easycom_t_tab_panel + _easycom_t_tabs + _easycom_t_loading + _easycom_t_empty + _easycom_t_tag + _easycom_t_button)(); } const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ __name: "appointments", setup(__props) { const activeTab = common_vendor.ref("all"); const appointments = common_vendor.ref([]); const loading = common_vendor.ref(false); common_vendor.onMounted(() => { loadAppointments(); }); const loadAppointments = async () => { loading.value = true; try { const params = {}; if (activeTab.value !== "all") { params.status = activeTab.value; } appointments.value = await utils_api.api.appointments.getList(params); } catch (error) { common_vendor.index.__f__("error", "at pages/appointments/appointments.vue:84", "加载预约失败", error); } finally { loading.value = false; } }; const onTabChange = (value) => { const tabValue = typeof value === "string" ? value : (value == null ? void 0 : value.value) || "all"; activeTab.value = tabValue; loadAppointments(); }; const getStatusTheme = (status) => { const themes = { pending: "warning", confirmed: "success", completed: "primary", cancelled: "default" }; return themes[status] || "default"; }; const getStatusText = (status) => { const texts = { pending: "待确认", confirmed: "已确认", completed: "已完成", cancelled: "已取消" }; return texts[status] || status; }; const formatDate = (dateStr) => { if (!dateStr) return ""; try { return dateStr.replace("T", " ").split("+")[0]; } catch (error) { common_vendor.index.__f__("error", "at pages/appointments/appointments.vue:127", "Date format error:", error, dateStr); return dateStr; } }; const formatTime = (timeStr) => { const timePart = timeStr.split("T")[1] || timeStr; const timeWithoutZone = timePart.split("+")[0].split("Z")[0]; const [hours, minutes] = timeWithoutZone.split(":"); return `${hours}:${minutes}`; }; const cancelAppointment = (appointment) => { common_vendor.index.showModal({ title: "确认取消", content: "确定要取消这个预约吗?", success: async (res) => { if (res.confirm) { try { await utils_api.api.appointments.cancel(appointment.id); common_vendor.index.showToast({ title: "取消成功", icon: "success" }); loadAppointments(); } catch (error) { common_vendor.index.__f__("error", "at pages/appointments/appointments.vue:157", "取消预约失败", error); } } } }); }; return (_ctx, _cache) => { return common_vendor.e({ a: common_vendor.p({ value: "all", label: "全部" }), b: common_vendor.p({ value: "pending", label: "待确认" }), c: common_vendor.p({ value: "confirmed", label: "已确认" }), d: common_vendor.p({ value: "completed", label: "已完成" }), e: common_vendor.p({ value: "cancelled", label: "已取消" }), f: common_vendor.o(onTabChange), g: common_vendor.p({ value: activeTab.value }), h: loading.value }, loading.value ? { i: common_vendor.p({ loading: true }) } : appointments.value.length === 0 ? { k: common_vendor.p({ description: "暂无预约记录" }) } : { l: common_vendor.f(appointments.value, (appointment, k0, i0) => { return common_vendor.e({ a: common_vendor.t(getStatusText(appointment.status)), b: "7c6f8f1a-8-" + i0, c: common_vendor.p({ theme: getStatusTheme(appointment.status), size: "small" }), d: common_vendor.t(formatDate(appointment.created_at)), e: common_vendor.t(appointment.time_slot ? appointment.time_slot.date.split("T")[0] : ""), f: common_vendor.t(appointment.time_slot ? formatTime(appointment.time_slot.start_time) : ""), g: common_vendor.t(appointment.time_slot ? formatTime(appointment.time_slot.end_time) : ""), h: common_vendor.t(appointment.people_count), i: appointment.status === "pending" }, appointment.status === "pending" ? { j: common_vendor.o(($event) => cancelAppointment(appointment), appointment.id), k: "7c6f8f1a-9-" + i0, l: common_vendor.p({ size: "small", theme: "danger", variant: "outline" }) } : {}, { m: appointment.id }); }) }, { j: appointments.value.length === 0 }); }; } }); const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-7c6f8f1a"]]); wx.createPage(MiniProgramPage); //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/appointments/appointments.js.map