dingdanquanliucheng/frontend/mini-manager/pages/dashboard.js

79 lines
1.9 KiB
JavaScript

Page({
data: {
loading: true,
message: "",
summary: {
pendingApproveCount: 0,
pendingFactoryCount: 0,
pendingDriverCount: 0,
},
recentOrders: [],
},
async onShow() {
await this.loadDashboard();
},
async loadDashboard() {
const app = getApp();
this.setData({ loading: true, message: "" });
try {
const statuses = ["pending_approve", "pending_factory", "pending_driver"];
const responseList = await Promise.all(
statuses.map((status) =>
app.request({
url: `/api/orders?order_status=${status}&page_no=1&page_size=20`,
method: "GET",
})
)
);
const [pendingApproveData, pendingFactoryData, pendingDriverData] = responseList;
const recentOrders = [
...(pendingApproveData.list || []),
...(pendingFactoryData.list || []),
...(pendingDriverData.list || []),
].slice(0, 8).map((item) => ({
orderId: item.order_id,
orderNo: item.order_no,
customerName: item.customer_name,
statusText: app.mapOrderStatus(item.order_status),
amount: Number(item.sale_price_total || 0).toFixed(2),
}));
this.setData({
summary: {
pendingApproveCount: (pendingApproveData.list || []).length,
pendingFactoryCount: (pendingFactoryData.list || []).length,
pendingDriverCount: (pendingDriverData.list || []).length,
},
recentOrders,
});
} catch (error) {
this.setData({
message: error.message || "加载经营概览失败",
});
} finally {
this.setData({ loading: false });
}
},
goApproveList() {
wx.navigateTo({
url: "/pages/approve-list",
});
},
goSupplierText() {
wx.navigateTo({
url: "/pages/supplier-text",
});
},
goTaskCreate() {
wx.navigateTo({
url: "/pages/task-create",
});
},
});