"use strict"; const common_vendor = require("../../common/vendor.js"); const pages_mixins_pullRefreshMixin = require("../mixins/pullRefreshMixin.js"); const _sfc_main = { mixins: [pages_mixins_pullRefreshMixin.pullRefreshMixin], data() { return { // 状态标签配置 statusTabs: [ { label: "全部", value: "all" }, { label: "已预约", value: "appointed" }, { label: "待质检", value: "pending" }, { label: "待结款", value: "waiting" }, { label: "已驳回", value: "rejected" } ], currentStatus: "all", selectedTime: "", searchActive: false, searchKey: "", showTimePickerModal: false, timePickerStyle: { top: 0 }, activeTimeType: "start", startDate: { year: "", month: "", day: "" }, endDate: { year: "", month: "", day: "" }, orderList: [ { orderId: "RE827381278615224", userName: "周小艺", phone: "138****1234", time: "周四 11:00~13:00", status: "appointed" }, { orderId: "RE827381278615226", userName: "周小艺", phone: "138****1234", time: "2025-03-20 11:00", status: "pending" }, { orderId: "RE827381278615225", userName: "周小艺", phone: "138****1234", time: "2025-03-20 12:00", status: "rejected" }, { orderId: "RE827381278615226", userName: "周小艺", phone: "138****1234", time: "2025-03-20 12:00", status: "waiting" } ], currentDateIndexes: [0, 0, 0], // 当前选中的年月日索引 // 添加时间范围 timeRange: { start: "", end: "" } }; }, computed: { // 年份选项 yearOptions() { const years = []; const currentYear = (/* @__PURE__ */ new Date()).getFullYear(); for (let i = 0; i < 6; i++) { years.push(currentYear + i); } return years; }, // 月份选项 monthOptions() { return Array.from({ length: 12 }, (_, i) => i + 1); }, // 日期选项 dayOptions() { return Array.from({ length: 31 }, (_, i) => i + 1); }, // 过滤后的订单列表 filteredOrders() { let result = this.orderList; if (this.searchKey) { const keyword = this.searchKey.toLowerCase(); result = result.filter((order) => { return order.orderId.toLowerCase().includes(keyword) || order.userName.toLowerCase().includes(keyword); }); } if (this.currentStatus !== "all") { result = result.filter((order) => order.status === this.currentStatus); } if (this.timeRange.start && this.timeRange.end) { const startTime = new Date(this.timeRange.start).getTime(); const endTime = new Date(this.timeRange.end).getTime(); result = result.filter((order) => { const orderTime = this.parseOrderTime(order.time); return orderTime >= startTime && orderTime <= endTime; }); } return result; } }, methods: { async onRefresh() { await new Promise((resolve) => setTimeout(resolve, 1e3)); common_vendor.index.stopPullRefresh(); }, navigateBack() { common_vendor.index.navigateBack(); }, // 切换状态 switchStatus(status) { this.currentStatus = status; }, // 显示时间选择器 showTimePicker() { const query = common_vendor.index.createSelectorQuery().in(this); query.select(".filter-item").boundingClientRect((rect) => { if (rect) { this.timePickerStyle = { top: rect.bottom }; } this.showTimePickerModal = true; this.activeTimeType = "start"; }).exec(); }, // 关闭时间选择器 closeTimePicker() { this.showTimePickerModal = false; }, // 切换时间类型 switchTimeType(type) { this.activeTimeType = type; const target = type === "start" ? this.startDate : this.endDate; this.currentDateIndexes = [ this.yearOptions.indexOf(target.year) || 0, this.monthOptions.indexOf(target.month) || 0, this.dayOptions.indexOf(target.day) || 0 ]; }, // 处理选择器变化 handlePickerChange(e) { const values = e.detail.value; const target = this.activeTimeType === "start" ? this.startDate : this.endDate; target.year = this.yearOptions[values[0]]; target.month = this.monthOptions[values[1]]; target.day = this.dayOptions[values[2]]; this.currentDateIndexes = values; }, // 重置时间选择 resetTimePicker() { this.startDate = { year: "", month: "", day: "" }; this.endDate = { year: "", month: "", day: "" }; this.currentDateIndexes = [0, 0, 0]; this.activeTimeType = "start"; this.timeRange = { start: "", end: "" }; this.selectedTime = ""; }, // 确认时间选择 confirmTimePicker() { if (!this.startDate.year || !this.startDate.month || !this.startDate.day) { common_vendor.index.showToast({ title: "请选择完整的开始时间", icon: "none" }); return; } if (!this.endDate.year || !this.endDate.month || !this.endDate.day) { common_vendor.index.showToast({ title: "请选择完整的结束时间", icon: "none" }); return; } const startTime = new Date(this.startDate.year, this.startDate.month - 1, this.startDate.day); const endTime = new Date(this.endDate.year, this.endDate.month - 1, this.endDate.day); if (startTime > endTime) { common_vendor.index.showToast({ title: "开始时间不能大于结束时间", icon: "none" }); return; } const start = `${this.startDate.year}年${this.startDate.month}月${this.startDate.day}日`; const end = `${this.endDate.year}年${this.endDate.month}月${this.endDate.day}日`; this.selectedTime = `${start} - ${end}`; this.timeRange = { start: `${this.startDate.year}-${this.startDate.month}-${this.startDate.day}`, end: `${this.endDate.year}-${this.endDate.month}-${this.endDate.day}` }; this.showTimePickerModal = false; }, // 搜索处理 handleSearch() { }, // 加载更多 loadMore() { }, // 获取状态文本 getStatusText(status) { const statusMap = { appointed: "已预约", pending: "待质检", waiting: "待结款", rejected: "已驳回" }; return statusMap[status] || status; }, // 处理驳回 handleReject(order) { common_vendor.index.showModal({ title: "提示", content: "确定要驳回该订单吗?", success: (res) => { if (res.confirm) ; } }); }, // 处理审批 handleApprove(order) { common_vendor.index.showModal({ title: "提示", content: "确定要审批通过该订单吗?", success: (res) => { if (res.confirm) ; } }); }, // 解析订单时间字符串为时间戳 parseOrderTime(timeStr) { if (timeStr.includes("周")) { return (/* @__PURE__ */ new Date()).getTime(); } return new Date(timeStr).getTime(); } } }; if (!Array) { const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons"); _easycom_uni_icons2(); } const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js"; if (!Math) { _easycom_uni_icons(); } function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return common_vendor.e({ a: common_vendor.p({ type: "left", size: "20" }), b: common_vendor.o((...args) => $options.navigateBack && $options.navigateBack(...args)), c: common_vendor.f($data.statusTabs, (tab, index, i0) => { return { a: common_vendor.t(tab.label), b: index, c: $data.currentStatus === tab.value ? 1 : "", d: common_vendor.o(($event) => $options.switchStatus(tab.value), index) }; }), d: common_vendor.t($data.selectedTime || "处理时间"), e: $data.showTimePickerModal || $data.selectedTime ? 1 : "", f: common_vendor.p({ type: $data.showTimePickerModal ? "up" : "down", size: "14", color: $data.showTimePickerModal || $data.selectedTime ? "#00C853" : "#666" }), g: common_vendor.o((...args) => $options.showTimePicker && $options.showTimePicker(...args)), h: $data.searchActive }, $data.searchActive ? common_vendor.e({ i: common_vendor.p({ type: "search", size: "16", color: "#999" }), j: $data.searchKey, k: common_vendor.o(($event) => $data.searchKey = $event.detail.value), l: $data.searchKey }, $data.searchKey ? { m: common_vendor.o(($event) => $data.searchKey = ""), n: common_vendor.p({ type: "clear", size: "16", color: "#bbb" }) } : {}, { o: common_vendor.o(($event) => { $data.searchActive = false; $data.searchKey = ""; }), p: $data.searchActive ? 1 : "" }) : { q: common_vendor.p({ type: "search", size: "20", color: "#999" }), r: common_vendor.o(($event) => $data.searchActive = true) }, { s: $data.showTimePickerModal }, $data.showTimePickerModal ? common_vendor.e({ t: $data.activeTimeType === "start" }, $data.activeTimeType === "start" ? {} : {}, { v: $data.activeTimeType === "start" ? 1 : "", w: common_vendor.o(($event) => $options.switchTimeType("start")), x: $data.activeTimeType === "end" }, $data.activeTimeType === "end" ? {} : {}, { y: $data.activeTimeType === "end" ? 1 : "", z: common_vendor.o(($event) => $options.switchTimeType("end")), A: common_vendor.f($options.yearOptions, (year, k0, i0) => { return { a: common_vendor.t(year), b: year }; }), B: common_vendor.f($options.monthOptions, (month, k0, i0) => { return { a: common_vendor.t(month), b: month }; }), C: common_vendor.f($options.dayOptions, (day, k0, i0) => { return { a: common_vendor.t(day), b: day }; }), D: $data.currentDateIndexes, E: common_vendor.o((...args) => $options.handlePickerChange && $options.handlePickerChange(...args)), F: common_vendor.o((...args) => $options.resetTimePicker && $options.resetTimePicker(...args)), G: common_vendor.o((...args) => $options.confirmTimePicker && $options.confirmTimePicker(...args)), H: $data.timePickerStyle.top + "px", I: common_vendor.o(() => { }), J: common_vendor.o((...args) => $options.closeTimePicker && $options.closeTimePicker(...args)), K: common_vendor.o(() => { }) }) : {}, { L: common_vendor.f($options.filteredOrders, (order, index, i0) => { return common_vendor.e({ a: common_vendor.t(order.orderId), b: common_vendor.t($options.getStatusText(order.status)), c: common_vendor.n(order.status), d: common_vendor.t(order.userName), e: common_vendor.t(order.phone), f: common_vendor.t(order.status === "appointed" ? "预约时间:" : "取件时间:"), g: common_vendor.t(order.time), h: order.status === "pending" }, order.status === "pending" ? { i: "b419a402-5-" + i0, j: common_vendor.p({ type: "undo", size: "16", color: "#666" }), k: common_vendor.o(($event) => $options.handleReject(order), index) } : {}, { l: order.status === "pending" }, order.status === "pending" ? { m: "b419a402-6-" + i0, n: common_vendor.p({ type: "checkmarkempty", size: "16", color: "#00C853" }), o: common_vendor.o(($event) => $options.handleApprove(order), index) } : {}, { p: index }); }), M: common_vendor.o((...args) => $options.loadMore && $options.loadMore(...args)) }); } const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b419a402"]]); wx.createPage(MiniProgramPage); //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/subcomponent/orders.js.map