完善订单金额调整上下文

This commit is contained in:
czl231
2026-08-29 22:29:15 +08:00
parent 965e12cbcc
commit 9bbe25fa79
7 changed files with 97 additions and 4 deletions

View File

@@ -0,0 +1,35 @@
# 操作日志:配送点订单金额调整上下文
操作时间2026-08-29
操作类型:修改
影响模块5176 订单详情、业务动作弹窗
## 操作前状态
- 订单详情已显示当前配送费和优惠金额。
- 打开“调整金额”时两个金额输入框为空,操作员缺少当前值上下文。
## 具体操作
1. 动作字段增加显式 `actionContextKey`,只读取声明过的当前记录字段。
2. 详情页将当前订单记录传入动作弹窗。
3. 金额初始值由分转换为元,避免预填后再次提交造成金额放大 100 倍。
4. 静态检查覆盖两个金额字段、当前记录传递和分转元处理。
## 行为变化
- 变更前:调整金额弹窗的配送费、优惠金额为空。
- 变更后:弹窗显示当前值,例如服务端 `100` 分显示为 `1.00` 元。
- 原因保持空白且必填,其他业务动作不受影响。
## 验证结果
- `npm.cmd run type:check`:通过。
- `npm.cmd run resource-pages:check`:通过,详情 17、新建 9、编辑 5。
- `npm.cmd run contract:check`通过18 个资源。
- `npm.cmd run build`通过2648 个模块完成生产构建。
## 风险评估
- 仅显式声明的动作字段读取上下文,避免历史原因或无关字段被自动带入。
- 金额单位转换与现有提交协议对称,不修改后端接口。

View File

@@ -58,6 +58,8 @@ frontend/delivery_admin/
创建配送订单时以配送合同为父级收货地址只加载合同签约用户地址合同气瓶只加载当前未解绑绑定切换合同清空旧值并丢弃过期响应。候选为空或仍在加载时禁止保存金额区只提供预估最终金额继续由服务端计算。详细规则见《项目文档_配送点订单创建联动_v1.0.md》。
订单详情的“调整金额”动作读取当前配送费和优惠金额作为弹窗初始值,并完成分到元的展示转换;本次操作原因继续单独填写,不复用历史原因。
配送人员资质列表必须由配送人员列表进入。页面先通过受保护人员详情接口回查姓名,再以当前气站、配送点、`delivery` 角色和人员 ID 四重条件加载资质;缺少、无效或越权人员上下文时停止加载,绝不回退为全部资质。标题和上下文区域显示人员姓名及可复制唯一标识,表格隐藏重复人员列。新建页自动预填所属人员,创建和编辑均锁定该关系,返回地址只接受安全站内路径。
资源搜索由后端 `searchFields` 契约驱动。没有有效字段的配送点资料、用户地址和银行卡页面不渲染搜索区域;其他页面显示“可搜索:具体字段”提示。枚举字段同时接受中文展示名称和内部稳定编码,查询、分页和重置始终保留人员上下文及安全来源参数。

View File

@@ -0,0 +1,36 @@
# 项目文档:配送点订单金额调整上下文 v1.0
## 1. 项目概述
5176 配送点后台的“调整金额”弹窗从当前订单详情读取配送费和优惠金额,按页面金额单位预填,操作员只需在现值基础上修改并填写原因。
## 2. 展示与提交规则
- 当前详情响应中的金额单位为分,动作输入框单位为元。
- 打开弹窗时将 `delivery_fee``discount_amount` 分别除以 100 后预填。
- 保存时沿用现有表单协议,将元乘以 100 后提交服务端。
- “原因”不从历史记录预填,仍要求本次操作单独填写。
- 标记异常、取消订单等其他动作不读取无关字段,不受本次修改影响。
## 3. 核心文件
```text
frontend/delivery_admin/src/
├── api/resources.ts # 声明动作上下文字段
└── views/resource/
├── ResourceRecordPage.vue # 传入当前订单记录
└── ResourceActionDialog.vue # 读取上下文并执行分转元
```
## 4. 验证
```text
npm.cmd run type:check
npm.cmd run resource-pages:check
npm.cmd run contract:check
npm.cmd run build
```
## 5. 变更记录
- v1.02026-08-29调整金额弹窗预填当前配送费和优惠金额。