---
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
