diff --git a/.workbuddy/memory/2026-07-01.md b/.workbuddy/memory/2026-07-01.md index d3f3064..1934e55 100644 --- a/.workbuddy/memory/2026-07-01.md +++ b/.workbuddy/memory/2026-07-01.md @@ -56,3 +56,9 @@ - 已完成/已关闭订单:无操作按钮,无删除按钮 - 其他订单:显示"确认收款"/"确认完成"和"删除订单" - 状态文案完善:已完成、已关闭、待收款、待发货、待收货、进行中 +- 移除"确认收款"按钮:货到付款场景下,"确认完成"操作已包含 `payStatus=true` 设置,无需单独的"确认收款"入口 +- 确认完成时设置 `deliveryStatus=30`(已收货)+ `deliveryTime`(收货时间),与后台"确认收货"逻辑对齐 +- `sendEndImg` 用 JSON 数组保存多张图片(避免 OSS URL 中 `,` 解析错误),解析时兼容旧逗号分隔数据 +- 修复 `OrderCard.getCardStatus` 状态判断顺序 bug: + - 旧逻辑:先判 `deliveryStatus=30` → "待收货",导致 `orderStatus=1` 的"已完成"订单状态栏错显示"待收货" + - 新逻辑:`orderStatus=1`(已完成)作为终态最先判断;`deliveryStatus=30` 单独显示"已收货"(绿色),与"待收货"(蓝色)区分 diff --git a/src/components/common/OrderCard/index.tsx b/src/components/common/OrderCard/index.tsx index 0b8c057..de109ba 100644 --- a/src/components/common/OrderCard/index.tsx +++ b/src/components/common/OrderCard/index.tsx @@ -19,10 +19,13 @@ const getCardStatus = (order: ShopOrder): { text: string; color: string } => { if (orderStatus === 4 || orderStatus === 7) return { text: '退款申请中', color: '#ee0a24' } if (orderStatus === 5) return { text: '退款被拒绝', color: '#ee0a24' } + // 终态:orderStatus=1 必须最先判断,盖过 deliveryStatus/payStatus + if (orderStatus === 1) return { text: '已完成', color: '#0e932e' } + if (!payStatus) return { text: '待付款', color: '#ee0a24' } if (deliveryStatus === 10) return { text: '待发货', color: '#4b9cf5' } - if (deliveryStatus === 20 || deliveryStatus === 30) return { text: '待收货', color: '#4b9cf5' } - if (orderStatus === 1) return { text: '已完成', color: '#0e932e' } + if (deliveryStatus === 20) return { text: '待收货', color: '#4b9cf5' } + if (deliveryStatus === 30) return { text: '已收货', color: '#0e932e' } return { text: '已付款', color: '#0e932e' } }