比较提交

...
作者 SHA1 备注 提交日期
API Changelog Bot e66c76f96b docs: hand off API contract (#5244)
changelog-filename-gate / validate (pull_request) Successful in 2s
2026-07-25 09:09:32 +08:00
API Changelog Bot 3b4e095f26 docs(changelog): report driver confirmation header spacing (#5146)
changelog-filename-gate / validate (push) Successful in 2s
2026-07-24 19:19:30 +08:00
wx e8fbd19fc5 docs: 告知车队管理列宽与暗色模式问题 (#5131)
changelog-filename-gate / validate (push) Successful in 1s
补充 /fleet/teams 列宽、响应式和暗色主题展示矩阵及验收标准。
2026-07-24 19:09:06 +08:00
API Changelog Bot 1e2f39e76f docs: report fleet team layout and dark mode (#5131)
changelog-filename-gate / validate (pull_request) Successful in 1s
2026-07-24 19:06:59 +08:00
Mimingguang 4d7d0d5e5c chore(changelog): 标记前端已实现 #5236
changelog-filename-gate / validate (push) Failing after 2s
修改原因:hl-ui changelog loop 需要把前端消费进度回写到契约源,避免领取、实现状态与实际交付脱节。

修改内容:将 frontend_status 与已有 legacy frontend 同步为 implemented,记录负责人 hl-ui-codex,并关联 mmg/hl-ui@85851ad68d427e161d9342525af4567c1d108d5f;发布和验收字段保持不变。

实际验证:回写器已校验目标文件、状态单调性、提交范围和 Front Matter 内容,提交只包含当前 changelog。

Frontend-Status: tools/mcp-api-sync/.changelog-repo/changelogs-v2/2026-07/24_5236_用车接送改由大交通默认驱动-修改接口-管理后台.md
2026-07-24 18:59:50 +08:00
Mimingguang 93d013f1d4 chore(changelog): 标记前端已领取 #5236
changelog-filename-gate / validate (push) Failing after 1s
修改原因:hl-ui changelog loop 需要把前端消费进度回写到契约源,避免领取、实现状态与实际交付脱节。

修改内容:将 frontend_status 与已有 legacy frontend 同步为 claimed,记录负责人 hl-ui-codex,实现引用保持为空;发布和验收字段保持不变。

实际验证:回写器已校验目标文件、状态单调性、提交范围和 Front Matter 内容,提交只包含当前 changelog。

Frontend-Status: tools/mcp-api-sync/.changelog-repo/changelogs-v2/2026-07/24_5236_用车接送改由大交通默认驱动-修改接口-管理后台.md
2026-07-24 18:48:28 +08:00
wx 9891fee76e Merge pull request #27 from docs/5236-transport-driven-transfer
changelog-filename-gate / validate (push) Successful in 1s
docs: publish transport-driven transfer handoff (#5236)
2026-07-24 18:46:30 +08:00
共修改 4 个文件,包含 177 行新增和 4 行删除
@@ -6,13 +6,13 @@ consumer: "admin"
change_type: "修改接口" change_type: "修改接口"
backend_status: "deployed" backend_status: "deployed"
gateway_status: "verified" gateway_status: "verified"
frontend_status: "pending" frontend_status: "implemented"
frontend_owner: "" frontend_owner: "hl-ui-codex"
frontend_ref: "" frontend_ref: "mmg/hl-ui@85851ad68d427e161d9342525af4567c1d108d5f"
target_release: "" target_release: ""
verified_at: "" verified_at: ""
status_note: "后端 PR #5241 已合并至 dev-v3(9578f78d5),order/fleet 已部署测试环境(b57ce915/0da3b9e6),双实例 internal 契约与网关汇总/列表/详情已验证;前端仍为 pending,待删除车辆接送开关并改用大交通摘要。" status_note: "后端 PR #5241 已合并至 dev-v3(9578f78d5),order/fleet 已部署测试环境(b57ce915/0da3b9e6),双实例 internal 契约与网关汇总/列表/详情已验证;前端仍为 pending,待删除车辆接送开关并改用大交通摘要。"
updated_at: "2026-07-24" updated_at: "2026-07-24T10:59:50.144Z"
base: "dev-v3" base: "dev-v3"
--- ---
@@ -0,0 +1,139 @@
---
schema: "hl-changelog/v2"
ticket: "5244"
title: "派单详情分别返回接送说明与通用备注"
consumer: "admin"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "pending"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "后端 PR #5246 已合并并部署;前端需在派单 Step1 大交通卡片分别渲染两个字段。"
updated_at: "2026-07-25"
base: "dev-v3"
generated: "2026-07-25T09:05:18+08:00"
---
# 车务派单详情:分别返回接送说明与通用备注
> **服务**: `hl-order-service-v3`、`hl-fleet-service`
>
> **工单**: [wx/HL#5244](https://git.1814.love:8443/wx/HL/issues/5244)
>
> **后端 PR**: [wx/HL#5246](https://git.1814.love:8443/wx/HL/pulls/5246)
>
> **影响范围**: 车务管理 → 派车看板 → 派单弹窗 Step1 → 大交通
## 业务口径
`pickupRemark` 与 `remark` 是两个独立字段,不得合并、互相覆盖或只取其中一个:
- `pickupRemark`:接机/送机说明;ARRIVAL 展示为“接机说明”,DEPARTURE 展示为“送机说明”。
- `remark`:大交通通用备注,展示为“备注”。
- 整团 `arrive/depart` 与分批 `batches[]` 使用同一字段口径。
- 任一字段为 `null` 或空白时,只隐藏该字段对应的展示行,不影响另一字段。
## 变更接口
### 管理后台
```http
GET /admin/fleet/board/orders/:orderId
```
`data.transport.arrive`、`data.transport.depart` 与 `data.transport.batches[]` 均包含:
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `pickupRemark` | `String/null` | 否 | 接机/送机说明 |
| `remark` | `String/null` | 否 | 大交通通用备注;既有字段继续保留 |
响应示例:
```json
{
"code": 200,
"data": {
"transport": {
"arrive": {
"direction": "ARRIVAL",
"pickupRemark": "到达出口举牌接机",
"remark": "航班可能延误"
},
"depart": {
"direction": "DEPARTURE",
"pickupRemark": "提前三小时送机",
"remark": "请再次确认航站楼"
},
"batches": [
{
"direction": "ARRIVAL",
"pickupRemark": "分批接机说明",
"remark": "分批通用备注"
}
]
}
}
}
```
### 内部契约
```http
GET /v3/internal/order/orders/:orderId/fleet-detail-context
```
order-v3 → fleet 的共享 `OrderTransportForFleetDTO` 在整团段与分批段均独立传递
`pickupRemark`、`remark`。这是兼容性增量:路径、HTTP 方法、既有字段、枚举、错误码及
`pickupRequired` 三态口径均不变。
## 前端展示矩阵
| 方向/模式 | `pickupRemark` | `remark` | 页面展示 |
| --- | --- | --- | --- |
| ARRIVAL,整团或分批 | 有 | 有 | 分别显示“接机说明”和“备注” |
| DEPARTURE,整团或分批 | 有 | 有 | 分别显示“送机说明”和“备注” |
| 任一方向 | 有 | 空 | 只显示接机/送机说明 |
| 任一方向 | 空 | 有 | 只显示备注 |
| 任一方向 | 空 | 空 | 两行均不显示 |
前端不得根据 `pickupRequired` 推导说明文本,也不得用一个字段回填另一个字段。
## 前端处理清单
- [ ] 派单弹窗 Step1 大交通卡片读取 `pickupRemark`,按方向显示“接机说明”或“送机说明”。
- [ ] 通用备注继续读取 `remark`,与接机/送机说明分行展示。
- [ ] 同时覆盖 `arrive`、`depart`、`batches[]`。
- [ ] 对 `null`、空字符串和纯空白字符串使用单字段空态规则。
- [ ] 不显示 `travelerIds` 等内部关联字段;既有出行人脱敏规则不变。
## 契约验证状态
- OpenAPI/oasdiff:`not_configured`。项目当前未配置稳定 Swagger2 → OAS3 导出与 oasdiff 基线。
- 消费者契约/Spring Cloud Contract:`not_configured`。项目当前未配置 SCC。
- fallback:源码与 Codemap 影响比对、order-v3 生产者测试、fleet 消费者/Controller 测试以及完整 reactor 验证。
- 本次没有临时安装 oasdiff 或 Spring Cloud Contract 依赖。
## 验证证据
- 合并提交:`ca3c5c7310ddc142398382644a40ab57d951248e`。
- 定向生产者/消费者测试:88 项通过。
- 影响范围测试:25 个 reactor 模块全部通过。
- Fleet 完整验证:2361 项测试,0 失败、0 错误、1 跳过;Spotless 606 个 Java 文件通过。
- 测试部署:
- order-v3 任务 `a5916436`,8086/8186 双实例成功;
- fleet 任务 `a198456e`,8087/8187 双实例成功。
- 部署面板与 Nacos 均确认两个服务 2/2 running、healthy、enabled;部署后日志新增错误匹配为 0。
- 经测试网关验证真实团单:列表与详情 HTTP/业务码均为 200,`relatedDetailReady=true`;
ARRIVAL、DEPARTURE 均同时返回非空且取值不同的 `pickupRemark`、`remark`。
## 不影响范围
- 不修改 `D:/work2/hl-ui`。
- 不修改大交通录入、接送默认值、接送需求聚合、派车状态机或历史数据。
- 不新增 DDL,不清理、不回填存量大交通备注。
> 后端与网关已验证;`frontend_status: pending` 表示等待前端真实领取,不代表页面已实现、发布或验证。
@@ -121,10 +121,30 @@ user-service 在“车务管理”目录下新增子菜单:
## 前端必须修改的范围 ## 前端必须修改的范围
### 2026-07-24 页面复测反馈:列表列宽与暗色模式
测试环境 `/fleet/teams` 页面已经能展示负责人和脱敏电话,但当前样式仍需前端修正,本反馈不涉及后端接口或字段变化:
1. 表格列宽分配失衡。“车队名称”列占用过多空白,把“负责人 / 负责人电话”等核心联系人信息推到页面右侧,首屏信息密度过低。
2. 暗色模式不能只替换页面背景。当前筛选区、表头、行分隔线、空值、状态标签和操作区的层级与对比度不足,部分边界难以辨认。
3. 样式必须复用项目主题 token;禁止在本页写死仅适用于浅色模式的背景色、文字色或边框色。负责人电话仍只展示接口返回的脱敏值,样式调整不得绕过脱敏。
#### 展示矩阵
| 视口 / 主题 | 车队名称 | 负责人 / 负责人电话 | 其他列 | 验收表现 |
| --- | --- | --- | --- | --- |
| `>= 1440px`,浅色 | 弹性列,限制最大占比;超长省略并可查看完整名称 | 建议分别保留约 `120px / 140px`,左对齐 | 类型、付款方式、数量、排序、状态和操作按内容定宽 | 联系人紧邻业务字段,首屏无大段无意义空白 |
| `>= 1440px`,暗色 | 同浅色列宽规则 | 同浅色列宽规则 | 使用暗色主题 token | 页面、筛选区、表头、数据行、状态标签和操作区层级清楚 |
| `1024px - 1439px`,浅色/暗色 | 优先收缩并省略,不能无限占宽 | 不压缩为空或挤出主要阅读区 | 保留操作列可用宽度 | 联系人信息仍可直接阅读 |
| `< 1024px`,浅色/暗色 | 设置表格最小宽度 | 保持可读宽度 | 允许横向滚动 | 不通过隐藏关键列或强行挤压完成适配 |
空负责人和空电话统一显示 `—`。联系人文本左对齐;车辆数、排序、状态和操作居中。浅色与暗色模式都必须覆盖默认、悬停、聚焦、禁用和空数据状态;普通文本与背景建议至少达到 `4.5:1` 对比度,控件边界和状态提示应清晰可辨。
### 管理后台 ### 管理后台
1. 新增 `src/api/fleet/teams.js` 和 `src/views/fleet/teams/index.vue`,完成车队分页、新增、编辑、启停和删除: 1. 新增 `src/api/fleet/teams.js` 和 `src/views/fleet/teams/index.vue`,完成车队分页、新增、编辑、启停和删除:
- “车队管理”必须显示在“车务管理”目录内,不得作为一级菜单处理。 - “车队管理”必须显示在“车务管理”目录内,不得作为一级菜单处理。
- 按上面的展示矩阵修正表格列宽和明暗主题样式,不能让“车队名称”列挤占联系人信息区域。
- 仅 `vehicleCount === 0` 时展示/启用删除动作;调用删除接口后刷新列表。 - 仅 `vehicleCount === 0` 时展示/启用删除动作;调用删除接口后刷新列表。
- 后端仍会独立校验车辆及未完结司机录入关联,返回 `601107` 时提示“请先完成车辆/司机转移”。 - 后端仍会独立校验车辆及未完结司机录入关联,返回 `601107` 时提示“请先完成车辆/司机转移”。
- 编辑历史迁入车队时补齐负责人、负责人电话、付款方式和排序。 - 编辑历史迁入车队时补齐负责人、负责人电话、付款方式和排序。
@@ -189,6 +209,8 @@ DELETE FROM sys_dict_type WHERE dict_type = 'fleet_attribution';
## 验收清单 ## 验收清单
- [ ] 独立车队菜单可分页、新增、编辑、启停,付款方式与资源页选项一致。 - [ ] 独立车队菜单可分页、新增、编辑、启停,付款方式与资源页选项一致。
- [ ] `/fleet/teams` 在桌面端不再由“车队名称”列制造大段空白,负责人和脱敏电话位于首屏连续阅读区;窄屏按展示矩阵滚动而不是隐藏或挤压关键列。
- [ ] `/fleet/teams` 的浅色、暗色模式均使用主题 token,筛选区、表头、数据行、空值、状态标签和操作区在默认/悬停/聚焦/禁用状态下层级清晰。
- [ ] “车队管理”位于“车务管理”目录下;空车队可删除,非空车队删除入口禁用或明确提示后端 `601107`。 - [ ] “车队管理”位于“车务管理”目录下;空车队可删除,非空车队删除入口禁用或明确提示后端 `601107`。
- [ ] 历史迁入车队可通过编辑补齐负责人、负责人电话、付款方式和排序,保存时不允许提交空资料。 - [ ] 历史迁入车队可通过编辑补齐负责人、负责人电话、付款方式和排序,保存时不允许提交空资料。
- [ ] 车辆新增/编辑/筛选/详情/导入均使用动态车队,不再出现固定三项。 - [ ] 车辆新增/编辑/筛选/详情/导入均使用动态车队,不再出现固定三项。
@@ -135,6 +135,17 @@ POST /admin/fleet/assignments/{assignmentId}/confirm
- 等待态:“等待司机回复确认” - 等待态:“等待司机回复确认”
- 已登记态:“司机已确认接单,待车务确认执行” - 已登记态:“司机已确认接单,待车务确认执行”
### 2026-07-24 界面验收补充
当前“待确认”步骤中,“司机待确认通知 / 模板与预览均来自后端”标题区下方存在明显的
大块空白,导致模板选择行和消息预览整体下移。模板标签及消息正文已经正常显示,因此
这是前端布局问题,不是后端模板或渲染接口缺少数据。
- 移除标题区不必要的固定高度、最小高度或空占位,让高度由标题和副标题内容自然撑开。
- 标题区与模板选择行保持正常紧凑间距,不要为未来内容预留不可见空白。
- 常用桌面分辨率下,标题区底部到模板选择行的垂直空白不应超过 16px。
- 本项不新增接口、不调整字段,也不要为修复布局重新维护前端本地模板。
## 前端处理清单 ## 前端处理清单
- [ ] 模板列表来自后端 `hold_notify` 模板,默认选中 `isDefault=true`,不再使用前端假模板。 - [ ] 模板列表来自后端 `hold_notify` 模板,默认选中 `isDefault=true`,不再使用前端假模板。
@@ -145,6 +156,7 @@ POST /admin/fleet/assignments/{assignmentId}/confirm
- [ ] 无凭证时仍可成功登记司机确认并执行最终确认。 - [ ] 无凭证时仍可成功登记司机确认并执行最终确认。
- [ ] `605025` 时提示“请先登记司机已确认接单”,不提示“缺少凭证”。 - [ ] `605025` 时提示“请先登记司机已确认接单”,不提示“缺少凭证”。
- [ ] 页面刷新后能按后端状态恢复待回复/已确认阶段。 - [ ] 页面刷新后能按后端状态恢复待回复/已确认阶段。
- [ ] 修复“司机待确认通知”标题区异常留白,模板选择与消息预览紧凑衔接。
## 验证证据 ## 验证证据