79 lines
1.9 KiB
JavaScript
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",
|
|
});
|
|
},
|
|
});
|