fix(store): 修复门店订单管理页操作按钮与标签筛选问题
- 调整已关闭标签参数,移除待发货状态,避免混入错误订单 - 修改金额按钮仅在未付款状态下显示,确认收款后隐藏 - 确认完成按钮改为仅在已付款状态下显示,避免过早显示 - 优化订单操作按钮显示逻辑,确保按钮状态与订单支付状态一致
This commit is contained in:
17
.workbuddy/memory/2025-07-17.md
Normal file
17
.workbuddy/memory/2025-07-17.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# 2025-07-17 工作日志
|
||||
|
||||
## 门店订单管理页修复(pages/store/orders/index.tsx)
|
||||
|
||||
三个问题修复:
|
||||
|
||||
1. **确认完成按钮过早显示**:`getOrderActions` 中"确认完成"原来对所有可操作订单都显示,改为仅在 `order.payStatus === true`(已确认收款)后才显示,避免占用位置。
|
||||
|
||||
2. **确认收款后仍可修改金额**:`getOrderActions` 中"修改金额"原来对所有可操作订单都显示,改为仅在 `!order.payStatus`(未付款)时显示。确认收款后修改金额按钮自动隐藏。
|
||||
|
||||
3. **已关闭 Tab 混入待发货订单**:`TABS` 配置中 `pending`(已关闭)的 params 原来同时包含 `statusFilter: 1`(待发货)和 `statusFilter: 8`(已关闭),导致待发货订单也出现。已改为只查 `statusFilter: 8`。
|
||||
|
||||
### 操作按钮逻辑总结(修复后)
|
||||
- **修改金额**:仅未付款(`!payStatus`)时显示
|
||||
- **确认收款**:仅线下付款(payType=9)且未付款时显示
|
||||
- **确认完成**:仅已付款(`payStatus === true`)时显示
|
||||
- **关闭订单**:所有可操作订单(非已完成、非已关闭)均显示
|
||||
@@ -21,8 +21,8 @@ const TABS: { key: TabKey; label: string; params: Partial<ShopOrderParam>[] }[]
|
||||
{key: 'all', label: '全部', params: [{}]},
|
||||
// 已完成:statusFilter=5(与后台管理一致)
|
||||
{key: 'completed', label: '已完成', params: [{statusFilter: 5}]},
|
||||
// 待处理:合并 statusFilter=1(待发货)和 statusFilter=8(已关闭)
|
||||
{key: 'pending', label: '已关闭', params: [{statusFilter: 1}, {statusFilter: 8}]},
|
||||
// 待处理:已关闭订单 statusFilter=8
|
||||
{key: 'pending', label: '已关闭', params: [{statusFilter: 8}]},
|
||||
]
|
||||
|
||||
// ─── 操作类型 ─────────────────────────────────────────────────────
|
||||
@@ -123,14 +123,16 @@ function isOrderActionable(order: ShopOrder): boolean {
|
||||
function getOrderActions(order: ShopOrder): { label: string; type: OpType }[] {
|
||||
if (!isOrderActionable(order)) return []
|
||||
const actions: { label: string; type: OpType }[] = []
|
||||
// 修改金额(门店权限)
|
||||
// 修改金额:仅在确认收款前显示(未付款时才可改价)
|
||||
if (!order.payStatus) {
|
||||
actions.push({label: '修改金额', type: 'editPrice'})
|
||||
}
|
||||
// 线下付款·待确认收款:显示"确认收款"按钮
|
||||
if (!order.payStatus && order.payType === 9 && order.orderStatus === 0) {
|
||||
actions.push({label: '确认收款', type: 'confirmPay'})
|
||||
}
|
||||
// 确认完成
|
||||
if (order.orderStatus !== 1 && order.orderStatus !== 2) {
|
||||
// 确认完成:仅在确认收款后显示(已付款才能确认完成)
|
||||
if (order.payStatus) {
|
||||
actions.push({label: '确认完成', type: 'complete'})
|
||||
}
|
||||
return actions
|
||||
|
||||
Reference in New Issue
Block a user