import PageContainerBehavior from "../../../../core/behavior/page-container.behavior"; import tickleBehavior, { getTickleContext, } from "../../../../core/behavior/tickle.behavior"; import { orderListMethod, orderCancelMethod, orderPayMethod, } from "../../request"; // module/article/pages/order-list/order-list.ts Page({ behaviors: [PageContainerBehavior, tickleBehavior], properties: {}, data: { showConfirm: false, currentTab: "all", // 当前选中的标签 orders: [ // { // orderId: "0038532223", // contact: "待付款 159****3314", // address: // "北京市海淀区永丰产业基地永丰路与翠湖南路交汇处南240米路西3-302", // servicePackage: "肿瘤术后中医调理服务包", // doctor: "余医生", // time: "2025-02-03 12:00:22", // imgUrl: // "https://pic.nximg.cn/file/20190718/28170468_214109363000_2.jpg", // amount: 1000, // status: "pending", // pending, received, completed, closed // statusText: "待付款", // statusClass: "status-pending", // }, // { // orderId: "0038532223", // contact: "待收货 159****3314", // address: // "北京市海淀区永丰产业基地永丰路与翠湖南路交汇处南240米路西3-302", // servicePackage: "肿瘤术后中医调理服务包", // doctor: "余医生", // time: "2025-02-03 12:00:22", // imgUrl: // "https://pic.nximg.cn/file/20190718/28170468_214109363000_2.jpg", // amount: 1000, // status: "received", // pending, received, completed, closed // statusText: "待收货", // statusClass: "status-received", // }, // { // orderId: "0038532223", // contact: "交易完成 159****3314", // address: // "北京市海淀区永丰产业基地永丰路与翠湖南路交汇处南240米路西3-302", // servicePackage: "肿瘤术后中医调理服务包", // doctor: "余医生", // time: "2025-02-03 12:00:22", // imgUrl: // "https://pic.nximg.cn/file/20190718/28170468_214109363000_2.jpg", // amount: 1000, // status: "completed", // pending, received, completed, closed // statusText: "交易完成", // statusClass: "status-completed", // }, // { // orderId: "0038532223", // contact: "交易关闭 159****3314", // address: // "北京市海淀区永丰产业基地永丰路与翠湖南路交汇处南240米路西3-302", // servicePackage: "肿瘤术后中医调理服务包", // doctor: "余医生", // time: "2025-02-03 12:00:22", // imgUrl: // "https://pic.nximg.cn/file/20190718/28170468_214109363000_2.jpg", // amount: 1000, // status: "closed", // 新增 closed 状态 // statusText: "交易关闭", // statusClass: "status-closed", // }, ], filteredOrders: [], // 用于存储过滤后的订单 patientId: 0, id: "", statusObj: { 0: "待付款", 6: "待收货", 345: "交易完成", 2: "交易关闭", }, statusClassObj: { 0: "status-pending", 6: "status-received", 345: "status-completed", 2: "status-closed", }, selectedAddress: null, paying: false, }, computed: {}, onLoad(options: any) { // 读取 tab 参数,默认为 all console.log(options, "options"); const tab = options?.tab || "all"; this.setData({ currentTab: tab }); // this.filterOrdersList(tab); }, onShow() { this.filterOrdersList(this.data.currentTab); // 读取地址 // if (JSON.stringify(this.data.selectedAddress) !== "{}") { // this.setData({ // name: this.data.selectedAddress?.liaison, // phone: this.data.selectedAddress?.phone, // address: this.data.selectedAddress?.fullAddress, // }); // } }, // 切换tab onTabChange(event: any) { const type = event.detail.value; console.log(type, "传来的type"); this.setData({ currentTab: type }); this.filterOrdersList(type); }, // 获取列表数据 async getOrderList(progress: string) { const patientId = wx.getStorageSync("patientId"); if (!patientId) { getTickleContext.call(this).showWarnMessage("请先登录"); return; } const res = await orderListMethod(patientId, progress); if (res && res.data) { res.data.forEach((item: any) => { item.address = `${item.provinceName}${item.cityName}${item.areaName}${item.detailAddress}`; item.liaison = (item.liaison !== null && item.liaison !== undefined) ? item.liaison : ''; item.phone = (item.phone !== null && item.phone !== undefined) ? item.phone : ''; }); this.setData({ orders: res.data }); console.log(this.data.orders, "获取订单列表"); } }, // 过滤订单l列表 filterOrdersList(type: any) { // 根据当前选中的标签过滤订单 console.log(type, "根据传来的type获取不同状态下的列表"); switch (type) { // 全部订单 case "all": this.getOrderList(""); break; // 待付款订单 case "pending": this.getOrderList("0"); break; // 待收货订单 case "received": this.getOrderList("6"); break; // 交易完成订单 case "completed": this.getOrderList("345"); break; default: break; } }, // 订单支付 async onPay(event: any) { if (this.data.paying) return; // 防重复 this.setData({ paying: true }); try { const orderId = event.currentTarget.dataset.id; const res = await orderPayMethod(orderId); wx.navigateTo({ url: "/module/article/pages/success-page/success-page?title=订单支付成功", }); } catch (error: any) { this.setData({ paying: false }); getTickleContext.call(this).showWarnMessage(error.errMsg); } }, // 查看物流 onSeeLogistics(e: any) { console.log(e, "查看物流"); wx.showToast({ title: "暂未开通", icon: "none", }); // const id = e.currentTarget.dataset.id; // wx.navigateTo({ // url: `/module/article/pages/see-logistics/see-logistics?id=${id}`, // }); }, // 切换地址 changeAddress(e: any) { const orderStatus = e.currentTarget.dataset.status; const id = e.currentTarget.dataset.id; console.log(orderStatus, "切换地址"); // 根据订单状态判断是否可以切换地址. 待支付状态下可以切换地址 if (orderStatus === "0") { wx.navigateTo({ url: "/module/article/pages/manage-address/manage-address?type=orderList&orderId=" +id, }); } }, // 打开取消订单弹窗 async onCancel(event: any) { const orderId = event.currentTarget.dataset.id; // 处理订单取消逻辑 this.setData({ id: orderId }); this.setData({ showConfirm: true }); }, // 取消订单 async cancelOrder(id: string) { this.setData({ showConfirm: true }); try { await orderCancelMethod(id); /* 取消订单逻辑 */ this.setData({ showConfirm: false }); wx.navigateTo({ url: "/module/article/pages/success-page/success-page?title=订单取消成功", }); } catch (error: any) { getTickleContext.call(this).showWarnMessage(error.errMsg); } }, // 确认取消订单 confirmCancelDialog() { this.cancelOrder(this.data.id); }, // 关闭取消订单弹窗 closeDialog() { this.setData({ showConfirm: false }); }, // 确认收货 onConfirmReceiving(e: any) { console.log(e, "确认收货"); const orderId = e.currentTarget.dataset.id; wx.navigateTo({ url: `/module/article/pages/confirm-receiving/confirm-receiving?orderId=${orderId}`, }); }, // 切换地址 onChangeAddress(e: any) { const orderId = e.currentTarget.dataset.id; // 打开地址选择器,选择后更新对应订单的地址 // 伪代码 wx.chooseAddress({ success: (res) => { // 假设你有 orders 数组 const idx = this.data.orders.findIndex((o) => o.orderId === orderId); if (idx !== -1) { this.setData({ [`orders[${idx}].address`]: res.detailInfo, }); } }, }); }, // 订单详情 onOrderDetail(e: any) { const id = e.currentTarget.dataset.id; // const status = e.currentTarget.dataset.status; wx.navigateTo({ url: `/module/article/pages/order-detail/order-detail?id=${id}`, }); }, });