diff --git a/changelogs-v2/2026-07/85_5156_车务看板与矩阵主标识显示团号-前端待处理-管理后台.md b/changelogs-v2/2026-07/85_5156_车务看板与矩阵主标识显示团号-前端待处理-管理后台.md new file mode 100644 index 0000000..474bea1 --- /dev/null +++ b/changelogs-v2/2026-07/85_5156_车务看板与矩阵主标识显示团号-前端待处理-管理后台.md @@ -0,0 +1,91 @@ +# 【前端待处理·管理后台】#5156 车务看板与矩阵主标识显示团号 + +> **服务**: `hl-fleet-service` +> **Issue**: [wx/HL#5156](https://git.1814.love:8443/wx/HL/issues/5156) +> **日期**: 2026-07-22 +> **影响范围**: 管理后台车务派单看板、车务矩阵中的可见订单标识 + +--- + +## 关键结论 + +后端现有看板与矩阵接口均已返回订单当前 `teamNo`,本次不新增或修改接口。管理后台需将截图标注的订单主标识改为团号,并将同类车务展示收口为一致规则: + +```js +const visibleOrderCode = teamNo?.trim() || orderNo?.trim() || '—' +``` + +- `teamNo` 有值:主要业务标识展示完整团号,不截取尾号。 +- `teamNo` 为空:才回退展示 `orderNo`。 +- 该规则只用于可见文案;不得用 `teamNo` 替换 `id`、`orderNumericId`、`assignmentId` 或 `assignmentGroupId`,不得改变行键、路由和派单接口入参。 + +## 前端处理范围 + +### 1. 车务派单看板 `/fleet/board` + +- 列表卡片首行当前使用 `o.id`(适配层实际填入 `orderNo`)作为主标识,改为显示 `teamNo || orderNo`。 +- 订单详情抽屉标题当前使用 `order.orderNo || order.id`,改为显示 `teamNo || orderNo`。 +- 基本信息区保留明确的“团号”字段;如仍需诊断订单号,可作为次要字段保留,但不再作为抽屉标题和卡片主标识。 +- 确认、拒接、取消等对话框中的可见订单标识同步使用上述规则,不得把 Long ID 或派单 ID 显示给车务人员。 + +当前前端重点位置: + +- `src/views/fleet/board/index.vue` +- `src/views/fleet/board/components/OrderRowList.vue` +- `src/views/fleet/board/components/OrderDrawer.vue` + +### 2. 车务矩阵 `/fleet/matrix` + +- 矩阵数据适配层必须保留后端 `teamNo`,不能在 `adaptMatrixAssignment` 或页面二次适配时丢失。 +- 订单甘特图左侧标识、占用条悬浮文案、未派订单池、单日订单清单中的主标识统一显示完整 `teamNo`。 +- 移除 `String(o.id).slice(-4)` 这类内部 ID/订单号尾号展示;团号不截断。 +- 点击、拖拽、派单和改派仍使用现有稳定 ID,只替换文字展示值。 + +当前前端重点位置: + +- `src/views/fleet/matrix/composables/useFleetMatrixData.js` +- `src/views/fleet/matrix/index.vue` +- `src/views/fleet/_shared/gantt/components/OrderGantt.vue` +- `src/views/fleet/_shared/gantt/components/OrderBar.vue` +- `src/views/fleet/_shared/gantt/components/VehicleGantt.vue` +- `src/views/fleet/_shared/gantt/components/UnassignedPool.vue` +- `src/views/fleet/matrix/components/DayListModal.vue` + +## 现有接口字段 + +| 页面场景 | 接口 | 团号字段 | +| --- | --- | --- | +| 看板列表 | `GET /admin/fleet/board/orders` | `data.records[].teamNo` | +| 看板详情 | `GET /admin/fleet/board/orders/{orderId}` | `data.teamNo` | +| 矩阵已派占用 | `GET /admin/fleet/matrix/grid` | `data.vehicles[].assignments[].teamNo` | +| 矩阵未派清单 | `GET /admin/fleet/matrix/unassigned-orders` | `data[].teamNo` | +| 矩阵单日清单 | `GET /admin/fleet/matrix/day-orders` | `data[].teamNo` | + +示例: + +```json +{ + "orderNumericId": "2000000000000000101", + "orderNo": "HL20260708144557879", + "teamNo": "26-7218" +} +``` + +前端可见主标识应为 `26-7218`;详情请求仍使用 `orderNumericId=2000000000000000101`。 + +## 验收清单 + +- [ ] 车务看板卡片主标识显示完整团号。 +- [ ] 车务订单详情抽屉标题和基本信息区显示团号。 +- [ ] 车务矩阵甘特图、占用条、未派池和单日清单显示完整团号,不再显示订单号尾 4 位。 +- [ ] `teamNo` 为 `null`/空字符串时回退显示 `orderNo`,页面无 `undefined` 或空白标识。 +- [ ] 有团号和无团号两类数据的详情、拖拽、派单、改派、取消操作均使用原稳定 ID,不串单。 +- [ ] 相关前端单元测试覆盖“团号优先”与“空团号回退订单号”。 +- [ ] 在测试环境以车务角色完成看板和矩阵截图验收。 + +## 后端核查证据 + +- `BoardOrderServiceTest` 已包含看板列表和当前订单上下文 `teamNo` 断言。 +- `MatrixServiceTest` 已覆盖矩阵当前团号映射;2026-07-22 定向执行 35 个测试,0 失败、0 错误。 +- 本次后端源码、数据库和接口契约无变更;不需要后端部署。 +