fix: 采购价格上限按数量计算总价 (#181)

This commit is contained in:
chengma
2026-08-12 14:43:18 +08:00
parent 8c7be7bd07
commit 253be7cb61
24 changed files with 203 additions and 106 deletions
+9 -9
View File
@@ -599,7 +599,7 @@ PDD 采集中(超时)行可用于
### 6.4 创建采购任务
只有“可创建采购任务”的行能参与采购批量动作。勾选后打开服务端渲染的确认弹窗:选择当前账号
可见的任意客户端,并逐行确认人民币价格上限。离线或尚未就绪的 Client 也可提前
可见的任意客户端,并逐行确认人民币单价上限和自动计算的订单总价上限。离线或尚未就绪的 Client 也可提前
指派,待其就绪后领取;选项继续显示在线状态但不因能力状态禁用。默认价格来自映射规格
的 PDD 采集价;没有价格时留空强制填写。新任务固定为真实下单(不支付),不显示执行
模式选择,也不再要求额外风险复选框、确认短语或浏览器二次确认。
@@ -616,7 +616,7 @@ grid 样式不得覆盖 `hidden`,关闭后改变勾选再打开也不得残留
- 同一明细已有 `pending`、`assigned`、`claimed`、`succeeded` 或 `manual_review` 的采购任务时
拒绝重复创建;成功任务是采购终态,待人工核对任务可能已经下单。`failed/cancelled` 的现有
人工判断后重新创建策略不变。
- 顺运宝列表继续显示台币售价,但绝不把它带入人民币价格上限。
- 顺运宝列表继续显示台币售价,但绝不把它带入人民币单价或订单总价上限。
```text
成功创建 3 个任务。以下 2 条未创建:
@@ -624,8 +624,8 @@ grid 样式不得覆盖 `hidden`,关闭后改变勾选再打开也不得残留
· SO-...-009 规格未匹配
```
`[必须]` 创建前弹出确认框,让操作员选**分配给哪个当前账号可见的 Client**,并确认价格上限。
价格上限默认从当前映射的 PDD 规格采集价带出,可改,**不允许为空**。
`[必须]` 创建前弹出确认框,让操作员选**分配给哪个当前账号可见的 Client**,并确认人民币单价上限。
单价上限默认从当前映射的 PDD 规格采集价带出,可改,**不允许为空**。每行必须同时显示固定数量和即时计算的 `订单总价上限 = 单价上限 × 数量`;总价使用只读 `output` 和 `aria-live` 提供反馈。JavaScript 只负责展示,后端必须用数据库中的最新数量重新计算。
可采购行的“下一步”显示“创建采购任务”。点击后复用同一个确认弹窗并只带入当前明细,
不改变表格复选框状态;顶部批量入口仍按已勾选明细打开。客户端选项显示名称和 Client
@@ -634,7 +634,7 @@ ID 和在线状态;所有可见 Client 都可选择且只有一个时自动选
“采集采购”页,不得再次创建;采购完成行显示
“查看采购结果”,待人工核对行显示“查看采购任务”,两者同样进入按订单号筛选的采集采购页。
服务端仍必须重新
校验映射、数量、人民币价格上限、客户端权限、固定 live 模式、创建审计和重复任务,不能
校验映射、数量、人民币单价与订单总价上限、客户端权限、固定 live 模式、创建审计和重复任务,不能
信任列表页的旧状态。
@@ -677,9 +677,9 @@ placeholder 写「任务编号 / 订单号 / 商品 ID」,**不要写全「PDD
不能只靠前缀或颜色区分。
- `[必须]` **目标列**:采集显示 `PDD <pdd_goods_id>`(能 join 到未删除商品
的标题时追加显示);采购显示 `<order_no> · <颜色/尺码> · <数量>件 · ≤<价格上限>`。
的标题时追加显示);采购显示 `<order_no> · <颜色/尺码> · <数量>件 · ≤<订单总价上限>`。
拼接逻辑在 service 层组装成一个字符串,模板只负责显示。
- `[必须]` 价格上限显示成 `¥42.00`(分转元),底层存的是整数分。
- `[必须]` 订单总价上限显示成 `¥42.00`(分转元),底层存的是整数分。
- `[必须]` **PDD 店铺列**:按任务的 `pdd_goods_id` 关联当前未删除
`pdd_products.shop_name`;没有商品、尚未采集、店铺为空或商品已软删除时显示 `—`。
- `[必须]` **客户端列**:优先显示当前 `clients.name`;名称为空或客户端记录不存在时
@@ -711,7 +711,7 @@ placeholder 写「任务编号 / 订单号 / 商品 ID」,**不要写全「PDD
│ PDD 店铺 某某店铺 │
│ 目标规格 黑色 / M (采购任务才有) │
│ 数量 2 (采购任务才有) │
│ 价格上限 ¥42.00 (采购任务才有) │
│ 订单总价上限 ¥42.00 (采购任务才有) │
├──────────────────────────────────────────────┤
│ PDD 核单结果 (采购任务才有) │
│ PDD 订单编号 PDD-20260810-001 │
@@ -727,7 +727,7 @@ placeholder 写「任务编号 / 订单号 / 商品 ID」,**不要写全「PDD
└──────────────────────────────────────────────┘
```
- `[必须]` 采购专有字段(数量、价格上限、目标规格)在采集任务的弹窗里
- `[必须]` 采购专有字段(数量、订单总价上限、目标规格)在采集任务的弹窗里
**整段隐藏**,不显示空行。
- PDD 核单结果只在采购任务显示,订单编号使用可选择复制的普通文本;付款状态标签
必须包含“上报时”,不能暗示为实时状态。