fix(order): 新增/编辑订单提交时 price/renew_price 由"分"换算为"元"

缘由:
后端 /api/v1/admin/order/create 与 /api/v1/admin/order/update 入参单位由"分"改为
"元"(用户 2026-05-12 确认两端都已生效)。前端列表与表单内部仍按"分"持有,提交时未
做换算,导致表单里的 9900(分)被后端当作 9900 元入库 = 990000 分,下次列表读取后
表现为"价格额外 *100"。

改动:
- src/views/order/OrderList.vue:submitForm 构造 submitData 时把 price 与 renew_price
  统一 /100,create 与 update 路径共享。输入框旁的"分"单位文案暂不改(用户明确仅
  要求 /100),UI 一致性问题(列表显示元、弹窗输入分)作为另一个 issue 留待后续。

预期:
- 编辑订单不改价直接保存:原 9900 分 → 提交 99 元 → 入库 9900 分(一致,修复前会
  入成 990000 分)。
- 编辑订单改价:用户在"分"单位输入框填 12000 → 提交 120 元 → 入库 12000 分。
- 新增订单:同上链路一致。

测试:未脚本化。建议人工核对一次"编辑→不改→保存→列表金额无变化"作为最低验收。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
shiran
2026-05-12 16:29:34 +08:00
parent 7394afb83f
commit 3d783cd224
+6 -3
View File
@@ -756,15 +756,18 @@ const submitForm = () => {
expireTimeSeconds = timestamp || 0
}
// 准备提交的数据
// 2026-05-12: /api/v1/admin/order/create 与 /update 入参 price / renew_price 单位由
// "分"改为"元"(后端接口变更,用户确认两端都已生效);列表与表单内部仍按"分"持有,
// 提交时统一除以 100 做"分→元"换算,避免再次入库时被当成元导致额外放大 100 倍。
// 输入框旁的"分"单位文案暂不改动(用户明确仅要求 /100),UI 一致性问题待后续单独处理。
const submitData = {
name: orderForm.name,
table: orderForm.table,
user_id: Number(orderForm.user_id),
commodity_id: Number(orderForm.commodity_id),
pay_num: Number(orderForm.pay_num),
price: Number(orderForm.price),
renew_price: Number(orderForm.renew_price),
price: Number(orderForm.price) / 100,
renew_price: Number(orderForm.renew_price) / 100,
expire_time: expireTimeSeconds,
discount_code_id: Number(orderForm.discount_code_id),
coupon_id: Number(orderForm.coupon_id),