优化配送订单详情关联与参数展示

This commit is contained in:
czl231
2026-08-15 20:32:43 +08:00
parent 42a4fc2f41
commit a20e228296
14 changed files with 584 additions and 55 deletions

View File

@@ -210,6 +210,8 @@
订单合同候选必须同时满足“生效中、已到生效时间、尚未到期且到期时间有效”。草稿、未到生效时间、已到期和已终止合同不得进入订单候选;没有可履约合同时应引导管理员先启用或续签合同并禁止提交。
配送订单详情以订单号作为主要业务识别字段,请求流水号作为幂等追踪字段,系统唯一标识仅用于技术定位和复制。配送合同、创建方、服务用户、履约气站、当前配送点、当前配送人员和建单操作人均以当前业务名称或订单快照名称为主文案,并保留对应唯一标识复制能力;关联失效或尚未分配时显示明确中文状态。分配记录固定展示分配时间、气站、配送点、配送人员、分配人和分配原因,表头不得回退为英文接口键名。
订单状态机如下:
```text

View File

@@ -0,0 +1,55 @@
# 操作日志:配送订单设备参数展示
操作时间2026-08-15
操作类型:修改
影响模块:平台总后台、配送订单详情、订单明细关联表
## 操作前状态
订单明细的 `product_params` 使用普通固定布局表格单元格展示,并统一启用省略号。较长 JSON 只能看到开头字符,列位于表格右侧时几乎无法辨认完整内容。
## 具体操作
- 将订单明细设备参数列改为宽度固定的“查看参数”入口。
- 悬浮或点击入口后,在受视口宽度和高度限制的浮层中展示完整参数。
- JSON 字符串和对象统一使用两空格缩进格式化;历史非 JSON 文本保持原样。
- 增加详情设备参数静态回归检查及 npm 脚本。
## 操作后状态
订单详情表格不再直接塞入被截断的参数原文。用户可通过“查看参数”读取完整格式化内容,长参数支持浮层内滚动,不会继续撑宽页面。
## 代码变更
- `frontend/platform_admin/src/views/resource/ResourceDetailContent.vue`:设备参数专用单元格、格式化逻辑及浮层样式。
- `frontend/platform_admin/scripts/check-resource-detail-json-display.mjs`:设备参数完整查看回归检查。
- `frontend/platform_admin/package.json`:新增 `resource-detail-json:check` 命令。
- `docs/项目文档_配送订单合同气瓶显示优化_v1.0.md`:同步订单详情参数展示规则。
## 验证结果
- `pnpm.cmd resource-detail-json:check`:通过。
- `pnpm.cmd type:check`:通过。
- `pnpm.cmd build`通过Vite 成功构建 2621 个模块。
## 风险评估
- 本次仅修改展示层,不改变数据库、订单快照或 API 响应结构。
-`product_params` 列维持原表格展示逻辑。
- 历史空值显示“暂无参数”,历史非法 JSON 不会丢失,按原文本完整展示。
## 100% 缩放补充修复
操作前状态:关联表的内部最小宽度会参与详情页网格的固有宽度计算。在浏览器 100% 缩放、内容区约 1100 像素时,关联表可能反向撑宽整个详情页,导致基本信息右列和订单明细右侧列落到视口之外;缩小浏览器只能暂时掩盖问题。
具体操作:为记录页、详情栈、详情卡、页签内容和表格外壳补充宽度收缩边界;关联表改为在独立容器内处理横向溢出;长标识和值容器允许收缩换行。
操作后状态:页面按 100% 缩放下的真实内容区宽度布局,子表不能再扩张整页;宽度不足时仅表格区域内部滚动,基本信息和业务操作保持在可视区域内。
代码变更:`ResourceDetailContent.vue` 增加关联表宽度外壳和详情内容收缩约束;`ResourceRecordPage.less` 增加页面级最大宽度约束;静态检查同步覆盖整页横向溢出防护。
验证策略:在 1365×768 的 100% 等效视口验证页面壳宽度,并执行设备参数静态检查、类型检查和生产构建。目标历史订单在新 root 会话中返回“无权访问该记录”,因此该会话不能执行真实数据视觉回归,未通过修改权限或数据绕过限制。
风险评估:仅改变展示层的宽度收缩与溢出边界;不改变 API、订单状态、合同约束或设备参数内容。极窄视口下的多列表格可能出现表格内部横向滚动这是保留列信息的预期兜底行为。

View File

@@ -0,0 +1,39 @@
# 操作日志:配送订单详情关联可读展示
操作时间2026-08-15
操作类型:修改
影响模块:平台总后台、配送订单详情、分配记录
## 操作前状态
订单详情突出系统唯一标识,订单号位于后续动态字段中;除配送合同外,气站、用户、配送点、工作人员和创建方主要显示裸唯一标识。分配记录使用通用字段推断,缺少关联名称,并可能显示 `assigner_identity``assigner_name` 等英文表头。
## 具体操作
- 订单详情接口增加创建方、服务用户、气站、配送点和配送人员的只读名称字段。
- 分配历史增加气站、配送点和配送人员名称,不修改不可变事实表。
- 订单号、请求流水号和订单状态提前展示,系统唯一标识改称“系统唯一标识”。
- 分配记录固定为六个中文业务列,不再追加未知响应字段。
- 订单明细和状态记录同步改为固定业务列,移除英文 `active` 表头及多余技术标识;历史 `order created` 展示为“订单创建”,新记录直接写入中文原因。
- 关联名称和建单操作人姓名快照为主文案,稳定唯一标识继续提供复制能力;重复的操作人姓名字段不再单独展示。
## 操作后状态
业务人员可通过订单号和中文业务名称识别订单及分配历史;技术标识仍可复制。分配记录不再泄漏英文接口键名或内部主键。
## 验证结果
- 后端配送订单专项测试、全量 `go test ./...``go vet ./...` 和主程序构建通过。
- 前端配送订单可读显示静态检查、设备参数回归检查和 TypeScript 类型检查通过。
- 前端生产构建通过Vite 成功构建 2621 个模块。
- 本地后端已保留旧版本备份并重启12426 端口恢复监听,健康接口返回 `platform-api / ok`
- 内置浏览器重新登录并访问目标详情后完成真实数据渲染:订单号位于首项,创建方、服务用户、气站、配送点、配送人员和建单操作人均显示名称与可复制标识;分配记录显示六个中文业务列,整页无横向溢出。
- 浏览器验收发现的订单明细 `active` 英文列和状态记录技术列已继续收口为固定中文业务列,并由静态检查、类型检查和生产构建覆盖。
## 风险评估
- 新字段仅用于管理端只读展示,原 JSON 字段和客户端兼容性保持不变。
- 名称取自当前关联档案,档案改名后详情随之变化;分配时间、原因和关联标识仍保持历史事实。
- 关联档案被删除或不可读取时显示“记录已失效”,不伪造历史名称。

View File

@@ -12,6 +12,7 @@
- 支持按气瓶编码和气瓶类型名称搜索。
- 选项显示气瓶类型名称,类型名称缺失时才降级显示唯一标识。
- 多选后完整展示全部已选气瓶标签,方便业务人员逐项核对。
- 订单详情的设备参数列使用紧凑“查看参数”入口,在受视口限制的浮层中格式化展示完整 JSON历史非 JSON 文本保持原样。
- 切换配送合同时清空已选气瓶,并重新加载当前合同候选。
- 没有候选时提示先为合同绑定气瓶,并禁止提交。
- 合同气瓶管理列表不带合同筛选参数时继续展示完整历史。
@@ -34,6 +35,7 @@ GET /gasorder_contract_product?contract_identity=<配送合同唯一标识>&keyw
- `frontend/platform_admin/src/api/resources.ts`:业务标签和空状态配置。
- `frontend/platform_admin/src/api/resource-display.ts`:多字段关系标签组合。
- `frontend/platform_admin/src/views/resource/ResourceFieldForm.vue`:父级选择顺序提示。
- `frontend/platform_admin/src/views/resource/ResourceDetailContent.vue`:订单明细设备参数完整查看。
- `frontend/platform_admin/scripts/check-gasorder-contract-product-display.mjs`:前端专项静态检查。
## 5. 维护指南
@@ -57,3 +59,15 @@ GET /gasorder_contract_product?contract_identity=<配送合同唯一标识>&keyw
操作后状态:业务人员可通过气瓶类型名称识别候选,订单页面只展示当前合同尚未解绑的气瓶。
风险评估:管理列表不带筛选参数时保持原行为;数据库无变更;订单创建最终校验保持不变。
### v1.0.12026-08-15
- 修复订单详情中设备参数被表格省略号截断的问题。
- 参数列改为紧凑查看入口,完整内容在浮层中格式化展示。
- 本次仅修改展示层,不改变订单快照和 API 响应。
### v1.0.22026-08-15
- 修复浏览器 100% 缩放时,订单明细表反向撑宽详情页并导致右侧内容不可见的问题。
- 详情页、详情卡和关联表增加 `min-width: 0` 与最大宽度约束;关联表仅在自身宽度确实不足时内部滚动,不再产生整页横向溢出。
- 保留设备参数完整查看入口,不改变订单数据、接口字段和业务流程。

View File

@@ -0,0 +1,35 @@
# 项目文档:配送订单详情关联可读展示 v1.0
## 1. 项目概述
本次调整统一平台总后台配送订单详情的业务识别信息。订单号作为主要业务编号;系统唯一标识保留为辅助复制信息。订单主体和分配历史中的气站、配送点、用户、创建方及配送人员使用当前档案名称展示。
## 2. 展示规则
| 场景 | 主展示 | 辅助信息 |
| --- | --- | --- |
| 订单主体 | 订单号 | 请求流水号、系统唯一标识 |
| 配送合同 | 标题(合同编号) | 合同唯一标识 |
| 创建方 | 当前业务名称 | 创建方唯一标识 |
| 服务用户 | 用户名称或账号 | 用户唯一标识 |
| 履约气站 | 气站名称 | 气站唯一标识 |
| 当前配送点 | 配送点名称 | 配送点唯一标识 |
| 当前配送人员 | 人员姓名 | 工作人员唯一标识 |
| 建单操作人 | 操作人姓名快照 | 操作人唯一标识 |
分配记录固定显示“分配时间、气站、配送点、配送人员、分配人、分配原因”;订单明细固定显示设备名称、编码、类型、参数和成交单价;状态记录固定显示发生时间、原状态、新状态、操作人和原因。关联记录标识、订单标识和服务端内部主键不作为默认表格列,历史 `order created` 原因统一显示为“订单创建”。
## 3. 核心文件
- `backend/api/internal/logic/platform/gasorder/order_list_display.go`:批量读取详情关联名称并组装只读响应。
- `backend/api/internal/logic/platform/gasorder/gasorder.go`:订单详情返回可读订单主体和分配历史。
- `frontend/platform_admin/src/api/resource-display.ts`:订单详情及分配记录中文名称。
- `frontend/platform_admin/src/views/resource/ResourceDetailContent.vue`:订单号排序、名称与标识组合显示、固定分配记录列。
## 4. 接口兼容性
原订单和分配记录字段全部保留,仅新增 `*_display_name` 只读字段。数据库结构、业务动作参数和订单状态机不变。关联档案不存在时返回“记录已失效”;订单尚未分配配送点或人员时返回“暂未分配”。
## 5. 维护指南
新增订单聚合子表字段时必须同时声明固定中文列和业务顺序,不允许直接将未知 JSON 键名作为最终表头。新增关联对象时同时提供业务名称和稳定唯一标识,名称用于识别,标识用于复制和接口传输。