From 8d6c0fda6904bd5999ae90c0bf5c1c064f13378c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Tue, 14 Jul 2026 22:30:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E5=9C=A8=E5=BE=85=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E8=AE=A2=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 OrderCard 组件中新增 onCloseOrder 可选回调属性 - 待发货且未取消的订单显示“关闭订单”按钮 - 点击按钮阻止事件冒泡,避免触发卡片跳转 - 列表页实现 handleCloseOrder,弹窗确认后调用 updateShopOrder - 关闭订单后显示成功提示并刷新当前列表数据 - 复用订单详情页取消订单的状态更新逻辑,保持一致性 --- .workbuddy/memory/2026-07-14.md | 3 +++ src/pages/order/list.tsx | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.workbuddy/memory/2026-07-14.md b/.workbuddy/memory/2026-07-14.md index 960047d..211465e 100644 --- a/.workbuddy/memory/2026-07-14.md +++ b/.workbuddy/memory/2026-07-14.md @@ -321,3 +321,6 @@ adapter `/list` 接口忽略分页,一次返回全部收藏;前端 `listShop ### 说明 复用订单详情页已有的取消订单逻辑(通过 `updateShopOrder` 将 `orderStatus` 改为 2)。 + +### 补充修复 +关闭订单后只刷新了当前 tab,「全部」tab 如果已加载过不会重新请求,导致看不到已取消的订单。修复:`handleCloseOrder` 成功后先 `setTabStates(prev => prev.map(s => ({ ...s, initialized: false })))` 标记所有 tab 为未初始化,再 `loadOrders(tabIndex, 1)` 刷新当前 tab,这样切到「全部」时会重新加载并显示已取消的订单。 diff --git a/src/pages/order/list.tsx b/src/pages/order/list.tsx index 1c6777c..cbf3b33 100644 --- a/src/pages/order/list.tsx +++ b/src/pages/order/list.tsx @@ -158,7 +158,9 @@ const OrderListPage: React.FC = () => { try { await updateShopOrder({ ...order, orderStatus: OrderStatus.Cancelled }) Taro.showToast({ title: '订单已关闭', icon: 'success' }) - // 刷新当前 tab + // 标记所有 tab 为未初始化,切换时会重新加载(确保「全部」等 tab 能看到最新状态) + setTabStates(prev => prev.map(s => ({ ...s, initialized: false }))) + // 立即刷新当前 tab loadOrders(tabIndex, 1) } catch (err: any) { Taro.showToast({ title: err?.message || '关闭失败', icon: 'none' })