- 新增接口 confirmOfflinePayment 支持门店确认线下付款收款 - 修改订单操作类型,增加“确认收款”按钮供线下付款未付款订单使用 - 确认收款弹窗新增备注输入框和支付凭证上传(必填,单张) - 调整提交逻辑,确认收款操作调用新接口,并校验凭证上传 - 订单列表页“删除订单”改为“关闭订单”,调用更新接口逻辑关闭订单 - 修改订单详情页金额明细渲染逻辑,修复0时错误显示问题
32 lines
2.1 KiB
Markdown
32 lines
2.1 KiB
Markdown
# 2026-07-17 工作日志
|
||
|
||
## 门店订单管理页改造(src/pages/store/orders/index.tsx)
|
||
|
||
### 1. 删除订单改为关闭订单
|
||
- 原"删除订单"按钮调用 `removeShopOrder`(物理删除),改为"关闭订单"调用 `updateShopOrder({ orderId, orderStatus: 2 })`(逻辑关闭)
|
||
- 确认弹窗文案从"删除后无法恢复"改为"关闭后无法恢复"
|
||
- 移除 `removeShopOrder` 导入,新增 `confirmOfflinePayment` 导入
|
||
|
||
### 2. 待付款订单加确认收款按钮
|
||
- **背景**:线下付款(payType=9)且未付款的订单,门店需要"确认收款"功能,与后台管理(guilixu-admin)对齐
|
||
- **后端接口**:`PUT /shop/shop-order/confirm-offline-payment/{id}?remarks=xxx&paymentVoucher=xxx`
|
||
- 后端 `ShopOrderController.confirmOfflinePayment()` → `ShopOrderServiceImpl.confirmOfflinePayment()`
|
||
- 校验:payType必须为9(线下付款)、orderStatus不能为2(已关闭)、不能重复确认
|
||
- 确认后设置 payStatus=true、payTime=now(),可选保存 remarks(merchantRemarks) 和 paymentVoucher
|
||
- **前端API**:在 `src/api/shop/shopOrder/index.ts` 新增 `confirmOfflinePayment(id, remarks?, paymentVoucher?)` 函数
|
||
- 注意:Taro 的 `request.put` 不支持 `params` 参数,需手动拼接 query string
|
||
- **ShopOrder Model**:新增 `paymentVoucher?: string` 字段
|
||
- **页面改动**:
|
||
- OpType 从 `'pay'|'complete'|'editPrice'` 改为 `'confirmPay'|'complete'|'editPrice'`
|
||
- `getOrderActions` 新增条件:`!payStatus && payType===9 && orderStatus===0` → 显示"确认收款"按钮
|
||
- 弹窗新增备注 Textarea(仅 confirmPay 显示),凭证图片限制1张(confirmPay),必填校验
|
||
- `submitOperation` 新增 confirmPay 分支,调用 `confirmOfflinePayment` API
|
||
- 新增 `payRemarks` state
|
||
|
||
### 3. 订单详情页金额明细0隐藏(src/pages/order/detail.tsx)
|
||
- **Bug**:React 经典陷阱 `{order.reducePrice && Number(order.reducePrice) > 0 && (...)}`,当 reducePrice 为数字 0 时,`0 && ...` 短路求值为 0,React 渲染文本"0"
|
||
- **修复**:改为 `{Number(order.reducePrice || 0) > 0 && (...)}`,始终返回 boolean
|
||
|
||
### 验证
|
||
- `npx taro build --type weapp` 构建成功
|