文件
hl-api-changelog/changelogs-v2/2026-08/09_frontend_车辆接续派车通知多司机分tab与按日改派汇总-前端缺陷-管理后台.md
T
Mimingguang 87ed9d0a3f
changelog-filename-gate / validate (push) Failing after 2s
chore(changelog): 全量清理 implemented 存量——81 条复核翻 verified + 1 条改判 not_required + #5827 补登 frontend_ref
处置明细(mmg 2026-09-18):
- 68 条机械核验通过批量翻 verified:frontend_ref 均可达且为 v2.1 祖先、
  交付文件 HEAD 均在、关联 spec 批量 58 文件 891 例全绿。
- 11 条带演进史的例外逐条核后翻 verified:3 条交付自删文件(06_5610/
  07_5655/11_5810,删除即交付内容且终态保持);8 条被后续 changelog 预期
  演进(10_5784→#5810、07_5664/08_5592→#5827、07_5665→去槽位化 U1、
  01_5380/05_5356/06_5567/06_5581→settlement 族A扁平化与 mock 清理),
  status_note 均如实记录演进链。
- 05_5552 改判 not_required:frontend_ref 自述前端无需改动,grep 实证
  vehicleFeeAmount.js 直接读后端 calendarPrice/calendarPriceMissing。
- 11_5827 frontend_ref 原空,经核交付即 753503c8(向导 4 步改 3 步提交
  即派定),补登全哈希 753503c87cc635e5646b4368a8ed506746c79cf1。
另:保险域 2 条相邻条目(05_5530/06_5593)同标准复核翻 verified。
2026-07 历史月 45 条按规则不回扫,保持原状。
2026-09-18 15:56:52 +08:00

110 行
8.9 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
---
schema: "hl-changelog/v2"
ticket: "frontend-fleet-continuity-notify-tabs"
title: "车辆接续场景:派车通知需按司机分多 tab(接入 render-batch)+ 按日改派槽位汇总显示接续"
consumer: "admin"
author: "wx(GIT)"
change_type: "前端缺陷"
backend_status: "not_required"
gateway_status: "not_required"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "84ed152e"
target_release: ""
verified_at: "2026-09-18"
status_note: "车辆接续(一槽多天不同车/司机)派车通知需按司机分 tab。mmg 已在 d7f78a17 接入 render-batch 分 tab,但实测只显示【未确认】段(改派 8/23 道尔吉时只有道尔吉 tab,已确认的王信 8/24-25 被 slotChangeRows 的『终态段不产生行』过滤掉了)。车务口径 B:接续单派车通知要展示【全部接续司机】tab(含已确认段),不只未确认段——故 reopen 待补充。[mmg 2026-09-18 批量复核翻 verified] ref 84ed152e 可达且为 v2.1 祖先;交付文件 HEAD 均在;关联 spec 批量 891 例全绿。"
updated_at: "2026-09-18"
base: "dev-v3"
generated: "2026-08-09T11:20:00+08:00"
---
# 车辆接续场景:派车通知按司机分多 tab + 按日改派槽位汇总显示接续
> 前端改造,**后端能力已具备、无需改后端**。待前端接入。
## 场景(车辆接续)
一个车辆槽位在多天内由**不同车辆/司机接续**服务。例:订单 26-6436(8/23~8/25 三天),按天改派后:
- 8/23:蒙A-E2E01 道尔吉
- 8/24~8/25:蒙A-E2E99 王信
即同一槽位 8/23 是道尔吉、8/24-25 是王信——**一个槽位对应多个司机/多辆车(接续)**。
## 问题 1:派车通知只显示单 tab,接续的其他司机没通知预览
**现象**:待确认页「司机待确认通知」微信消息预览**只有一个 tab(道尔吉)**,接续的王信(8/24-25)没有 tab、看不到也给不了他的派车通知。
**期望**:派车通知预览**按司机分多个 tab,一个 tab 一个司机**,每个 tab 显示该司机所负责天数/车辆的派车通知;发送时按选中司机取对应的 renderedBody。
**后端已支持——直接用 `render-batch` 批量渲染接口**:
```
POST https://api.test.1814.love:9443/admin/fleet/message-templates/{templateId}/render-batch
```
接口注释原文:**"多槽位/多司机预览按槽位逐项渲染同一模板,返回与请求 items 同序的结果列表;前端预览区按司机分 tab,发送时按选中司机取对应 renderedBody。"**
请求体(**真实调用**,订单 26-6436 orderId=2086270156475936769,模板 id=2073978002412105729「排车待确认-标准」):
```json
{
"items": [
{"orderId":"2086270156475936769","vehicleId":"2085284111341023234","driverId":"2065272150012444674","serviceDates":["2026-08-23"]},
{"orderId":"2086270156475936769","vehicleId":"2085539421276286978","driverId":"2067084362829979650","serviceDates":["2026-08-24","2026-08-25"]}
]
}
```
- `items[]` 每项 = 一个司机/接续段的预览入参(orderId/vehicleId/driverId/assignmentGroupId/serviceDates 等,同单渲染),1~20 项;1 项时等价单渲染(无 tab)。
- vehicleId:蒙A-E2E01=2085284111341023234 / 蒙A-E2E99=2085539421276286978;driverId:道尔吉=2065272150012444674 / 王信=2067084362829979650。
响应(**真实返回**,code=200):
```json
{"code":200,"message":"成功","data":{"items":[
{"success":true,"renderedBody":"呼伦旅行—订车单\n...\n道尔吉,您好,请确认以下订车信息:\n团号:26-6436\n日期:2026-08-23 至 2026-08-25\n人数:2人(成人2)\n车辆:蒙A-E2E01 丰田普拉多(7座)\n..."},
{"success":true,"renderedBody":"呼伦旅行—订车单\n...\n王信,您好,请确认以下订车信息:\n团号:26-6436\n日期:2026-08-23 至 2026-08-25\n人数:2人(成人2)\n车辆:蒙A-E2E99 丰田普拉多(7座)\n...行程详情:https://web.test.1814.love:9443/s/tlMa2xQ..."}
]}}
```
- `items[]` 与请求同序,每项独立 success + renderedBody;单项失败不阻断其他项。
**⚠️ 实测发现的后端问题(另见后端工单)**:两个司机渲染的「日期」都是「2026-08-23 至 2026-08-25」(订单全程),**没按各自 serviceDates 分段**——道尔吉只负责 8/23(serviceDates=[8/23])却显示全程,王信负责 8/24-25 也显示全程。司机会搞不清自己负责哪几天。需后端 render-batch 渲染的日期按 serviceDates 分段。
**前端现状**:`src/api/fleet/message-template.js` **只封装了单渲染 `POST /render`,没有 render-batch**;待确认页预览仍调单渲染,只渲染第一个司机。
**前端要改**:
1. `message-template.js` 增加 `renderBatch(templateId, items)` 封装(POST `/fleet/message-templates/{templateId}/render-batch`)。
2. 待确认页派车通知预览:从 `board/orders/{orderId}` 的 `dailyVehiclePlan` 按 `assignmentId`/司机分组得到各接续段(每段的 vehicleId/driverId/serviceDates),调 render-batch 传入多 item;预览区按司机分 tab 展示各 item 的 renderedBody;发送时按选中司机取对应 renderedBody。
## 问题 2:按日改派顶部槽位汇总只显示第一天,未反映接续
**现象**:按日改派表格里每天已正确显示各车各司机(8/23 道尔吉、8/24-25 王信),但**顶部槽位表格「当前车辆/当前司机」只显示第一天的**(蒙A-E2E01 道尔吉),看不出这是接续单。
**期望**:接续槽位的顶部「当前车辆/当前司机」汇总应体现接续(如显示「多车接续」/分段列出各段车与司机,或标注「接续:道尔吉(8/23)+王信(8/24-25)」),让车务一眼看出该槽位是多车多司机接续。
**数据源**:`board/orders/{orderId}` 的 `dailyVehiclePlan`(按 serviceDate 各天 vehiclePlate/driverName/assignmentId)——前端按 assignmentId 分组即可识别接续并分段展示。
## 复现路径
派单看板 → 已派车订单(如 26-6436)→ 改派 → 下一步 → 按天改派 → 选中 8/23 改派给另一车/司机(形成接续)→ 待确认页看派车通知预览(只有单 tab);排车页看顶部槽位汇总(只显示第一天)。
## 补充 2(2026-08-09,新建派车 batchMode 槽位内接续也丢司机 tab)
**现象**:新建派车(多槽位,非改派)场景,一个槽位内有接续(多天不同司机)时,派车通知只按「槽位」分 tab,**槽位内接续的司机没有单独 tab**。实测 26-3559 吴国强:槽位1 蒙A-E5555(阿木古愣 8/24-25 + 道尔吉 8/26 接续)、槽位2 蒙A-G8888(满都拉全程),共 **3 个司机**,但派车通知只 **2 个 tab(阿木古愣、满都拉)**——道尔吉(槽位1 的 8/26 接续)没 tab,且阿木古愣 tab 的日期含不属于他的 8/26。
**根因**:`AssignModal.messagePreviewSlots` 的 batchMode 分支(3131-3153)按 `selectedSlots.map`(每槽位 1 项),`driverName = slot.driver?.name || cells.find(driverName)`(取槽位第一个司机)、`serviceDates = 全部 used 天`——**没拆槽位内接续司机**。
**期望**:batchMode 也按「槽位×司机段」分 tab——同一槽位内有接续(多天不同司机)时,拆成多个司机 tab(如槽位1 拆成 阿木古愣 8/24-25 + 道尔吉 8/26 两个 tab),每个 tab 的 serviceDates 只含该司机负责的天。与改派分支的口径一致(按司机分段)。
## 备注
- 后端 `change` 接口的 `serviceDates`(按天改派限定日期集,其余天保留)已支持拆接续;`render-batch` 已支持多司机预览。**后端两处均无需改**。
- 关联:改派回显缺陷(08_frontend_改派选完车司机槽位列不回显)——都是接续/改派场景的前端展示问题,可一并处理。
## 补充(2026-08-09 车务口径 B,reopen 原因)
mmg 已在 d7f78a17 接入 render-batch 分 tab,但实测(订单 26-6436,改派 8/23 道尔吉、8/24-25 王信)**只显示道尔吉 1 个 tab**——因为 `slotChangeRows`(AssignModal.vue:1306)的过滤规则是「**终态段不产生行**」,已确认的王信 8/24-25 段被过滤,只有未确认的道尔吉段生成 tab。
**车务口径 B:接续单派车通知要展示【全部接续司机】tab(含已确认段),不只未确认段。**
- **期望**:改派/接续场景待确认页,派车通知按该槽位【全部接续司机】分 tab(如道尔吉 8/23 + 王信 8/24-25 两个 tab),含已确认段;车务可复制任意 tab 话术分别发给对应司机(已确认段是否重发由车务决定,但预览要能看到全部)。
- **需调整**:`slotChangeRows`(或派车通知预览专用的段数据源)不要过滤已确认终态段,把该槽位全部接续执行段都喂给 render-batch 分 tab。
- **接口**:仍用 `POST /admin/fleet/message-templates/{templateId}/render-batch`,items 传全部接续段(每段 vehicleId/driverId/serviceDates),后端渲染无问题(已实证能渲染任意段)。