Files
xinlong-shop-taro/.workbuddy/memory/2026-07-17.md
赵忠林 22fed3b163 feat(store): 新增线下付款确认收款功能并改为关闭订单
- 新增接口 confirmOfflinePayment 支持门店确认线下付款收款
- 修改订单操作类型,增加“确认收款”按钮供线下付款未付款订单使用
- 确认收款弹窗新增备注输入框和支付凭证上传(必填,单张)
- 调整提交逻辑,确认收款操作调用新接口,并校验凭证上传
- 订单列表页“删除订单”改为“关闭订单”,调用更新接口逻辑关闭订单
- 修改订单详情页金额明细渲染逻辑,修复0时错误显示问题
2026-07-17 00:38:57 +08:00

2.1 KiB
Raw Blame History

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

  • BugReact 经典陷阱 {order.reducePrice && Number(order.reducePrice) > 0 && (...)},当 reducePrice 为数字 0 时,0 && ... 短路求值为 0React 渲染文本"0"
  • 修复:改为 {Number(order.reducePrice || 0) > 0 && (...)},始终返回 boolean

验证

  • npx taro build --type weapp 构建成功