72 lines
1.9 KiB
JavaScript
72 lines
1.9 KiB
JavaScript
function mapOrderStatus(status) {
|
|
const statusMap = {
|
|
pending_approve: "待审批",
|
|
cancel_pending: "待取消审批",
|
|
approved: "已审批",
|
|
rejected: "已驳回",
|
|
canceled: "已取消",
|
|
};
|
|
return statusMap[status] || status || "-";
|
|
}
|
|
|
|
Page({
|
|
data: {
|
|
loading: true,
|
|
message: "",
|
|
approveType: "all",
|
|
orderRows: [],
|
|
},
|
|
|
|
async onShow() {
|
|
await this.loadOrders();
|
|
},
|
|
|
|
async loadOrders() {
|
|
const app = getApp();
|
|
this.setData({ loading: true, message: "" });
|
|
try {
|
|
const statuses = this.data.approveType === "cancel" ? ["cancel_pending"] :
|
|
(this.data.approveType === "order" ? ["pending_approve"] : ["pending_approve", "cancel_pending"]);
|
|
const requestList = statuses.map((status) =>
|
|
app.request({
|
|
url: `/api/orders?order_status=${status}&page_no=1&page_size=50`,
|
|
method: "GET",
|
|
})
|
|
);
|
|
const responseList = await Promise.all(requestList);
|
|
const rows = responseList.flatMap((data) => data.list || []).map((item) => ({
|
|
orderId: item.order_id,
|
|
orderNo: item.order_no,
|
|
customerName: item.customer_name,
|
|
customerMobile: item.customer_mobile,
|
|
orderStatus: item.order_status,
|
|
statusText: mapOrderStatus(item.order_status),
|
|
amount: Number(item.sale_price_total || 0).toFixed(2),
|
|
}));
|
|
this.setData({
|
|
orderRows: rows,
|
|
});
|
|
} catch (error) {
|
|
this.setData({
|
|
message: error.message || "加载待审批订单失败",
|
|
});
|
|
} finally {
|
|
this.setData({ loading: false });
|
|
}
|
|
},
|
|
|
|
handleChangeType(event) {
|
|
this.setData({
|
|
approveType: event.currentTarget.dataset.type,
|
|
});
|
|
this.loadOrders();
|
|
},
|
|
|
|
handleOpenDetail(event) {
|
|
const { id } = event.currentTarget.dataset;
|
|
wx.navigateTo({
|
|
url: `/pages/approve-detail?id=${id}`,
|
|
});
|
|
},
|
|
});
|