dingdanquanliucheng/frontend/mini-manager/pages/approve-list.js

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}`,
});
},
});