--- schema: "hl-changelog/v2" ticket: "5676" title: "统一选择只改第一天(前端改单次调 change=整体改派)" consumer: "admin" author: "wx" change_type: "前端修复" backend_status: "deployed" gateway_status: "verified" frontend_status: "implemented" frontend_owner: "mmg" frontend_ref: "f4223996" target_release: "" verified_at: "" status_note: "" updated_at: "2026-08-08" base: "origin/dev-v3" generated: "2026-08-08" --- # 统一选择只改第一天(前端修复) ## 问题(wx 实测) 派车"统一选择车辆/司机"选的车/司机**只应用到第一天**,没应用到所有出行日(该整体改派所有日期)。 ## 根因(#5676 后端实证,责任端=前端) 前端"统一选择"**逐日循环调 change**(每天一行,effectiveDate 分别 8/28、8/29...)——change 语义是"effectiveDate 起连续后缀",逐日循环互相覆盖→只部分生效。 **后端单次 change(effectiveDate=第一天,不传 serviceDates)正确全改所有天**(取消整段后缀+重建),后端无 bug。 ## 前端修复 "统一选择"(整体改派)改为**单次调 change:`effectiveDate=第一天`**(不传 serviceDates)——即整段改派所有出行日。不要逐日循环调。 - 按天改派(#5676 新增 serviceDates)是另一功能(按天单独改),保留 - 统一选择(整体)= 单次 change effectiveDate=第一天 ## 补充(wx 明确矩阵场景) **矩阵派单**:从矩阵某一行(车辆行)派车/司机时,**所有行程日对应槽位都该是这行的车+司机**(统一应用所有行程日,不只第一天)。与"统一选择"同一口径——矩阵一行派 = 单次 change effectiveDate=第一天(整段改派所有日)。 ## 验收 - [ ] 统一选择选的车/司机应用到所有出行日(不只第一天) - [ ] **矩阵派单从一行派车→所有行程日对应槽位=这行的车+司机** - [ ] 按天改派不受影响 ## 关联 - #5676(按天改派已实现;统一选择修复=本前端任务) ## 前端交付与矩阵场景实证(hl-admin@f4223996 + 3df533a5) 统一选择「只改第一天」已修:根因为逐日/多段槽位下统一选择只锚定被选执行段(effectiveDate=段首日、费用只本段),新增 `mergeSlotChangeSegments`(display.js:263)合并同槽全部有效执行段为整段改派目标,单次 change effectiveDate=整段首日、不发按天 serviceDates。 **矩阵场景补充实证**:矩阵派单从一行派车走 `matrix/index.vue:442 onDropAssign` → `openAssign(order, { vehicle, mode })`,复用 AssignModal 统一 assign/change 主流程,与统一选择同一单次 change 逻辑——一行派车即整段(所有行程日对应槽位=这行车+司机),不只第一天。按天改派(3df533a5)为独立入口,不受影响。 ## 联系人 - 后端/协调台:wx