--- schema: "hl-changelog/v2" ticket: "frontend" title: "确认执行页「车·师傅」多段/已派槽位显示空白:单段分支读 UI 选中态 props 而非执行段数据" consumer: "admin" change_type: "前端缺陷" author: "wx(GIT)" backend_status: "not_required" gateway_status: "not_required" frontend_status: "pending" frontend_owner: "mmg" frontend_ref: "" target_release: "" verified_at: "" status_note: "后端零改动。已用测试服真实 API 核实(订单 26-3698,看板 GET /admin/fleet/board/orders/2086270138171994114):activeAssignments 返回 1 条完整执行段(vehiclePlate=蒙A-H7777 / vehicleModel=丰田汉兰达 / vehicleSeats=7 / driverName=阿拉坦 / driverPhone=135****5019 / startDate=08-17 / endDate=08-19),父层 confirmationAssignments 即取自该数据。根因在前端 Step4Confirm.vue:confirmationSegments.length<=1 时走单段分支,读的是父层 vehicle/driver props(= AssignModal 的 selVehicleObj/selDriverObj,useVehicleDriverPicker 的 UI 当前选中态),用户未做改派选择时为空 → 显示空白。应对单段分支也 fallback 到 confirmationSegments[0](或直接统一走 segments 分支)。" updated_at: "2026-08-12" base: "dev-v3" --- # 确认执行页「车·师傅」多段/已派槽位显示空白(前端) > **页面**:车务管理 → 派单看板 → 订单派车弹窗 → Step4「确认执行」→「车 · 师傅」区 > **后端**:本条**零改动**。下面结论来自测试服真实 API(订单 26-3698)。 --- ## 一、现象 确认执行页(Step4)「车 · 师傅」区显示空白/不全:车辆「· · 座」、师傅「·」,明明该槽位已派 1 车 3 天。 ## 二、后端已排除(数据完整) `GET /admin/fleet/board/orders/2086270138171994114` → `activeAssignments` 返回 **1 条聚合执行段**: ```json { "vehiclePlate": "蒙A-H7777", "vehicleModel": "丰田汉兰达", "vehicleSeats": 7, "driverName": "阿拉坦", "driverPhone": "135****5019", "serviceDate": null, "startDate": "2026-08-17", "endDate": "2026-08-19" } ``` (单槽位聚合整段,startDate~endDate=3 天。字段完整,非空。) ## 三、根因(前端) `AssignModal.vue` 把 `confirmationAssignments`(= `activeAssignments`)作为 `:assignments` 传给 `Step4Confirm.vue`,同时传 `:vehicle="selVehicleObj"` `:driver="selDriverObj"`。 `Step4Confirm.vue` 渲染逻辑(`confirmationSegments` computed): - **多段分支**(`confirmationSegments.length > 1`):遍历 `confirmationSegments` 正确展示。 - **单段分支**(`length <= 1`,当前场景命中):读父层 props `vehicle?.plate / driver?.name` —— 即 `selVehicleObj/selDriverObj`(`useVehicleDriverPicker` 的 **UI 当前选中态**)。用户直接从已派状态进入 Step4 未做改派选择时,这两个对象为 **null** → 显示空白。 即:单段执行时错误依赖了「本次 UI 是否选中过车辆/司机」,而不是回退到服务端已有的执行段数据。 ## 四、修复建议 - 单段分支也改为读 `confirmationSegments[0]`(vehiclePlate/vehicleModel/vehicleSeats + driverName/driverPhone),与多段分支同一数据源; - 或直接去掉单段分支,统一走 `confirmationSegments` 遍历(数据已由父层聚合好)。 ## 五、验收 - [ ] 已派 1 车 3 天的槽位进 Step4,「车·师傅」显示 蒙A-H7777 · 丰田汉兰达 · 7座 / 阿拉坦 · 135****5019 - [ ] 未做任何改派选择时也能正确回显(不再依赖 UI 选中态) - [ ] 多段接续(同一槽位不同天不同车/司机)仍按段展示不受影响