From da2707f63b3e9197602889ac1a60bde98ca4e8e3 Mon Sep 17 00:00:00 2001 From: wx <2636507191@qq.com> Date: Sat, 25 Jul 2026 19:40:47 +0800 Subject: [PATCH] docs: correct frontend slot acceptance for #5245 --- ...链预览与同槽位改派解析-修改接口-管理后台.md | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/changelogs-v2/2026-07/25_5245_行程短链预览与同槽位改派解析-修改接口-管理后台.md b/changelogs-v2/2026-07/25_5245_行程短链预览与同槽位改派解析-修改接口-管理后台.md index 1c90c50..502ac27 100644 --- a/changelogs-v2/2026-07/25_5245_行程短链预览与同槽位改派解析-修改接口-管理后台.md +++ b/changelogs-v2/2026-07/25_5245_行程短链预览与同槽位改派解析-修改接口-管理后台.md @@ -6,13 +6,13 @@ consumer: "admin" change_type: "修改接口" backend_status: "deployed" gateway_status: "verified" -frontend_status: "implemented" +frontend_status: "claimed" frontend_owner: "hl-ui-codex" -frontend_ref: "mmg/hl-ui@9f29b1eef42f48e98431caab67cc8a776541be3f" +frontend_ref: "" target_release: "" verified_at: "" -status_note: "后端已通过 PR #5249/#5250 合并、部署并完成网关验证;前端已实现多车多司机消费,待发布及页面验证。" -updated_at: "2026-07-25T10:21:57.332Z" +status_note: "后端已部署并完成网关验证;用户验收发现排车页缺少新增车辆槽位入口,前端已退回 claimed 继续修复。" +updated_at: "2026-07-25" base: "dev-v3" --- @@ -36,6 +36,8 @@ base: "dev-v3" active 派车组时继续返回 `605308`。 - 批量派单和详情多司机字段是既有契约,本次明确前端消费口径:一次提交 `items[]`,详情展示 `activeAssignments[]`,不得只处理兼容代表字段 `currentAssignment`。 +- 排车页必须提供“+ 添加车辆槽位”入口。新增槽位不是替换“车辆槽位 1”,而是追加一个可独立 + 选择车辆和司机的草稿槽位;多个槽位统一映射为批量派单 `items[]`。 ## 变更接口 @@ -123,6 +125,12 @@ items: - `fleetItemIndex` 从 0 开始,对应需求展开后的稳定车辆槽位。 - `vehicleId`、`driverId` 必填;雪花 ID 全程按字符串处理。 - `protocolPrice`、`messageTemplateId`、`customBody`、`confirmCrossResident` 是单槽位可选字段。 +- 前端维护可编辑槽位列表。初始槽位来自当前有效派车组或订单用车需求;点击 + “+ 添加车辆槽位”后追加一个空白草稿槽位,不得覆盖或复用既有槽位。 +- 每个草稿槽位独立选择一辆车和一名司机;未提交的新槽位允许删除,已有 + `holding` / `assigned` 槽位不得被“删除草稿”操作静默撤销。 +- 进入下一步前校验所有可提交槽位均已选择车辆和司机,并为每个槽位生成唯一 + `fleetItemIndex`。页面可见槽位数必须等于本次提交的 `items[]` 数量。 - 不得为每辆车循环调用单条 `POST /admin/fleet/assignments` 代替批量接口。 - 批量响应按 `data.assignments[].assignment.assignmentGroupId` 返回各槽位派车组 ID; 前端逐项调用模板预览时传入对应 `assignmentGroupId`,不得只预览代表项。 @@ -155,13 +163,20 @@ GET /admin/fleet/board/orders/ | 通知预览传入有效派车组 | `assignmentGroupId` + `renderedBody` 中的 `itinerary.url` | 即时创建或复用并展示稳定短链 | | 旧前端未传派车组但订单、车辆、司机唯一定位 | `orderId` + `vehicleId` + `driverId` | 兼容定位并返回同一稳定短链 | | 派车组缺失、无效或定位不唯一 | “行程链接暂不可用,请联系车务确认” | 展示不可用态,不把文案当可发送链接 | -| 一单多个车辆槽位 | `items[]` | 每个槽位各选一辆车和一名司机,一次批量提交 | +| 已有车辆槽位 | `activeAssignments[]` 或当前排车草稿 | 按稳定槽位逐项展示;允许重选当前槽位的车辆或司机 | +| 新增车辆槽位 | 前端草稿槽位列表 | 展示“+ 添加车辆槽位”;每次点击只追加一个空白槽位,不替换已有槽位 | +| 新增槽位未选完整 | 草稿槽位的 `vehicleId` / `driverId` | 槽位显示未完成警示,禁用“下一步”;不生成可发送通知 | +| 删除未提交槽位 | 前端草稿槽位列表 | 只删除新增且未提交的草稿槽位,不撤销已有有效派车组 | +| 一单多个车辆槽位 | `items[]` | 每个槽位各选一辆车和一名司机,一次批量提交;可见槽位数与 `items[]` 数量守恒 | | 详情有多个 active 派车组 | `activeAssignments[]` | 按槽位逐项展示车辆、司机、脱敏电话和状态 | | 详情无 active 派车组 | `activeAssignments=[]` | 展示无有效派单空态 | ## 前端处理清单 -- [ ] 派车弹窗支持选择多个车辆槽位,并为每个槽位选择司机。 +- [ ] 排车页提供“+ 添加车辆槽位”入口,允许连续新增多个草稿槽位,不得只重选“车辆槽位 1”。 +- [ ] 每个新增槽位分别选择一辆车和一名司机,并支持删除未提交的草稿槽位。 +- [ ] “下一步”前校验所有槽位,按页面槽位顺序生成唯一 `fleetItemIndex`,可见槽位与 + `items[]` 一一对应。 - [ ] 统一提交 `POST /admin/fleet/assignments/batch` 的 `items[]`,保留批次级 `requestId`。 - [ ] 批量派单响应逐项保存 `assignmentGroupId`;通知预览传入当前槽位的 `orderId`、`vehicleId`、`driverId`、`assignmentGroupId`,只把真实短链视为可发送链接。 @@ -169,6 +184,13 @@ GET /admin/fleet/board/orders/ - [ ] 司机电话使用后端脱敏值,雪花 ID 始终按字符串处理。 - [ ] 覆盖无 active、多 active、短链不可用等空态/失败封闭场景。 +## 前端验收反馈 + +- 2026-07-25 用户页面验收:排车页仅显示“车辆槽位 1”,只能在该槽位内重选车辆或司机, + 无法新增第二个槽位;当前前端提交不满足多车辆、多司机批量派单要求。 +- 状态因此由 `implemented` 回退为 `claimed`。前端完成新增槽位、逐槽位选择和批量提交后, + 应填写新的 `frontend_ref` 再迁移为 `implemented`。 + ## 验证证据 - OpenAPI/oasdiff:`not_configured`。项目未配置可复现的 Swagger2 → OAS3 导出与 oasdiff 基线; @@ -193,4 +215,4 @@ GET /admin/fleet/board/orders/ - 不修改批量派单事务、价格、跨常驻确认、保险或通知冻结规则。 - 不新增 DDL,不清理、不回填存量数据。 -> `frontend_status: implemented` 表示前端代码已有真实提交引用;尚不代表已发布或完成页面验证。 +> `frontend_status: claimed` 表示前端已领取但仍需修复“新增车辆槽位”;尚未形成可验收的完整实现。