fix(user): 修复「我的」页订单数量统计显示为 0 的问题

- 修正 UserOrderStats 接口字段与后端 DTO 完全对齐
- getUserOrderStats() 读取后端真实字段,数值使用 Number(x) 兜底
- 「我的订单」快捷入口 count 和 status 与 OrderListStatus 枚举对齐
- localStorage 缓存 key 升级至 v3,避免旧缓存干扰冷启动渲染
- 保证所有跳转订单列表的入口传递正确 status 参数,防止跳转错误的 tab
This commit is contained in:
2026-07-15 22:52:08 +08:00
parent 501e79eed7
commit ad616943c8
4 changed files with 58 additions and 18 deletions

View File

@@ -33,25 +33,39 @@ export async function getUserCardStats(): Promise<UserCardStats> {
/**
* 获取用户订单统计
* 后端接口:/api/user/orders/stats60s 缓存)
* 字段与后端 UserOrderStats DTO 对齐waitPay/waitDeliver/waitReceive/completed 等
*/
export async function getUserOrderStats(): Promise<UserOrderStats> {
try {
const res = await request.get<ApiResult<any>>('/user/orders/stats')
if (res.code === 0 && res.data) {
const d = res.data
return {
pending: res.data.pending || 0,
paid: res.data.paid || 0,
shipped: res.data.shipped || 0,
completed: res.data.completed || 0,
total: Number(d.total) || 0,
waitPay: Number(d.waitPay) || 0,
waitDeliver: Number(d.waitDeliver) || 0,
waitVerify: Number(d.waitVerify) || 0,
waitReceive: Number(d.waitReceive) || 0,
waitComment: Number(d.waitComment) || 0,
completed: Number(d.completed) || 0,
refund: Number(d.refund) || 0,
deleted: Number(d.deleted) || 0,
canceled: Number(d.canceled) || 0,
}
}
} catch (e) {
console.error('获取订单统计失败:', e)
}
return {
pending: 0,
paid: 0,
shipped: 0,
total: 0,
waitPay: 0,
waitDeliver: 0,
waitVerify: 0,
waitReceive: 0,
waitComment: 0,
completed: 0,
refund: 0,
deleted: 0,
canceled: 0,
}
}

View File

@@ -9,9 +9,20 @@ export interface UserCardStats {
giftCards: number
}
/**
* 用户订单状态数量统计
* 字段与后端 com.gxwebsoft.shop.dto.UserOrderStats 对齐
* statusFilter-1全部 0待支付 1待发货 2待核销 3待收货 4待评价 5已完成 6退款 7已删除 8已取消
*/
export interface UserOrderStats {
pending: number // 待付款
paid: number // 待发货
shipped: number // 待收货
completed: number // 已完成
total: number // 全部(不含已取消)
waitPay: number // 待付款statusFilter=0
waitDeliver: number // 待发货statusFilter=1
waitVerify: number // 待核销statusFilter=2
waitReceive: number // 待收货statusFilter=3
waitComment: number // 待评价statusFilter=4
completed: number // 已完成statusFilter=5
refund: number // 退款/售后statusFilter=6
deleted: number // 已删除statusFilter=7
canceled: number // 已取消statusFilter=8
}