feat(tender): 我的订单加「去支付」「取消订单」入口,并新建收银台

hjc-web 此前**没有收银台**——支付步骤内嵌在购标流程(BuyDocument 的 step='pay')里,
买家一旦离开就再也回不到未完成的支付。本提交补上按订单号付款的独立页面。

- 新建 /tender/pay 收银台:只认订单号,金额取自**订单本身**(by-no)而非支付响应
  (支付一失败页面就会停在 0.00);进入先判状态,已支付/已取消/已退款**不发**统一下单,
  就地显示结论——既无意义,也会多撞一次跨端 OUT_TRADE_NO_USED
- 订单列表:待支付卡片加两个按钮 + 手搓 Tailwind 二次确认弹窗(照 ConsultDialog 的风格,
  不用 antd 的 Modal:买家页无先例,视觉与站点自建风格不一致)
- 状态口径改读 orderStatus(原先只看 payStatus,取消后会把已取消显示成「待支付」
  并带上「去支付」),抽 app/utils/orderStatus.ts,与 hjc-h5 刻意保持同一套优先级
- 新增两个 Nitro 代理 order-by-no.get.ts / cancel.post.ts,照既有 my-orders / pay-status
  的范式原样透传 ApiResult
- 标书详情「购买人数」改读 buyerCount(后端实时统计的已付款订单数)
- 跨端 OUT_TRADE_NO_USED:识别后端回带的 data.wechatCode 并给可行动提示,
  不匹配 message 字符串(包装方式一改就会静默失效)
This commit is contained in:
2026-09-17 03:39:59 +08:00
parent 81ef9317c7
commit a7399e0624
8 changed files with 681 additions and 34 deletions
+6 -1
View File
@@ -39,8 +39,13 @@ export interface Tender {
status?: number
/** 来源 */
dataSource?: string
/** 已售数量 */
/** 已售数量(下单即加、从不回退;当前已无展示用途,历史字段) */
saleCount?: number
/**
* 购买人数:后端实时统计的**已付款订单数**`COUNT(*) WHERE pay_status=1`)。
* 口径与「人数」字面有偏差(同一企业买 2 单计 2),这是明确拍定的取值。
*/
buyerCount?: number
}
/** 分页返回结构 */