feat(order): 在待发货订单列表增加关闭订单功能
- 在 OrderCard 组件中新增 onCloseOrder 可选回调属性 - 待发货且未取消的订单显示“关闭订单”按钮 - 点击按钮阻止事件冒泡,避免触发卡片跳转 - 列表页实现 handleCloseOrder,弹窗确认后调用 updateShopOrder - 关闭订单后显示成功提示并刷新当前列表数据 - 复用订单详情页取消订单的状态更新逻辑,保持一致性
This commit is contained in:
@@ -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,这样切到「全部」时会重新加载并显示已取消的订单。
|
||||||
|
|||||||
@@ -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' })
|
||||||
|
|||||||
Reference in New Issue
Block a user