feat(order): 在待发货订单列表增加关闭订单功能

- 在 OrderCard 组件中新增 onCloseOrder 可选回调属性
- 待发货且未取消的订单显示“关闭订单”按钮
- 点击按钮阻止事件冒泡,避免触发卡片跳转
- 列表页实现 handleCloseOrder,弹窗确认后调用 updateShopOrder
- 关闭订单后显示成功提示并刷新当前列表数据
- 复用订单详情页取消订单的状态更新逻辑,保持一致性
This commit is contained in:
2026-07-14 22:30:04 +08:00
parent f878ea146e
commit 8d6c0fda69
2 changed files with 6 additions and 1 deletions

View File

@@ -321,3 +321,6 @@ adapter `/list` 接口忽略分页,一次返回全部收藏;前端 `listShop
### 说明 ### 说明
复用订单详情页已有的取消订单逻辑(通过 `updateShopOrder``orderStatus` 改为 2 复用订单详情页已有的取消订单逻辑(通过 `updateShopOrder``orderStatus` 改为 2
### 补充修复
关闭订单后只刷新了当前 tab「全部」tab 如果已加载过不会重新请求,导致看不到已取消的订单。修复:`handleCloseOrder` 成功后先 `setTabStates(prev => prev.map(s => ({ ...s, initialized: false })))` 标记所有 tab 为未初始化,再 `loadOrders(tabIndex, 1)` 刷新当前 tab这样切到「全部」时会重新加载并显示已取消的订单。

View File

@@ -158,7 +158,9 @@ const OrderListPage: React.FC = () => {
try { try {
await updateShopOrder({ ...order, orderStatus: OrderStatus.Cancelled }) await updateShopOrder({ ...order, orderStatus: OrderStatus.Cancelled })
Taro.showToast({ title: '订单已关闭', icon: 'success' }) Taro.showToast({ title: '订单已关闭', icon: 'success' })
// 刷新当前 tab // 标记所有 tab 为未初始化,切换时会重新加载(确保「全部」等 tab 能看到最新状态)
setTabStates(prev => prev.map(s => ({ ...s, initialized: false })))
// 立即刷新当前 tab
loadOrders(tabIndex, 1) loadOrders(tabIndex, 1)
} catch (err: any) { } catch (err: any) {
Taro.showToast({ title: err?.message || '关闭失败', icon: 'none' }) Taro.showToast({ title: err?.message || '关闭失败', icon: 'none' })