From ceadb463c595c4a7dc3ab97d4bf9cae8d2acb27a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Wed, 1 Jul 2026 17:23:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(order):=20=E4=BC=98=E5=8C=96=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD=E4=B8=8E=E6=94=B6?= =?UTF-8?q?=E8=B4=A7=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除货到付款场景下的"确认收款"按钮,统一使用"确认完成"操作设置 payStatus=true - 确认完成时新增设置 deliveryStatus=30(已收货)和 deliveryTime,保持与后台确认收货逻辑一致 - sendEndImg 字段改为 JSON 数组格式,兼容多图保存,避免 OSS URL 中逗号解析错误 - 修复 OrderCard.getCardStatus 判断顺序错误,确保 orderStatus=1(已完成)优先判定,区分已收货和待收货状态显示颜色与文案 --- .workbuddy/memory/2026-07-01.md | 6 ++++++ src/components/common/OrderCard/index.tsx | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) 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' } }