diff --git a/changelogs-v2/2026-07/20_订单详情用车安排缺少提交用车需求按钮-前端待处理-管理后台.md b/changelogs-v2/2026-07/20_订单详情用车安排缺少提交用车需求按钮-前端待处理-管理后台.md new file mode 100644 index 0000000..4fd1daf --- /dev/null +++ b/changelogs-v2/2026-07/20_订单详情用车安排缺少提交用车需求按钮-前端待处理-管理后台.md @@ -0,0 +1,132 @@ +# 订单详情用车安排缺少“用车需求”按钮(前端待处理) + +> 模块:管理后台 · 订单详情 v2 `/order-v2/detail/{orderId}` · 行程安排 +> 类型:**前端待处理(后端无接口变更)** +> 日期:2026-07-05 +> 说明:后端已有提交/修改/调整用车需求接口,前端需要在“用车安排”卡片补充入口。 + +## 问题现象 + +测试页面: + +- 页面:订单详情 v2 → 行程安排 +- 订单:`HL20260703140009401` +- 订单 ID:`2072923329412427777` +- 当前用车卡片文案:`尚未提交用车需求` +- 当前页面只显示“联系车务”按钮,缺少“用车需求 / 提交用车需求”按钮。 + +业务期望: + +- 当订单尚未提交用车需求时,定制师应能直接从“用车安排”卡片发起用车需求。 +- 用车需求提交后进入车务后续处理链路。 + +## 后端当前口径 + +后端已有接口,不需要新增接口。 + +```http +PUT /v3/admin/order/{id}/vehicle-requirement +``` + +源码契约: + +```text +提交/修改/调整用车需求(三分支自动判断:无 active=INIT_SUBMIT,PENDING=PENDING_EDIT,DONE=DONE_ADJUST) +``` + +测试服复验当前订单: + +```http +GET /v3/admin/order/2072923329412427777/itinerary +``` + +返回中住宿已完成,且当前没有 `vehicleGroup` 数据;页面展示“尚未提交用车需求”与接口状态一致。这种状态下前端应提供“用车需求”入口,而不是只提供“联系车务”。 + +## 接口说明 + +### 提交/修改/调整用车需求 + +```http +PUT /v3/admin/order/{id}/vehicle-requirement +Content-Type: application/json +``` + +请求体: + +```json +{ + "fleet": [ + { + "vehicleType": "BUSINESS", + "seats": 7, + "count": 1 + } + ], + "specialTags": ["需要大后备箱"], + "remark": "客户有 2 个大件行李" +} +``` + +字段约束: + +| 字段 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `fleet` | array | 是 | 车型组合,至少 1 项 | +| `fleet[].vehicleType` | string | 是 | 车型分类,字典 `vehicle_type` 的 value,如 `SUV/BUSINESS/CORE_PRODUCT` | +| `fleet[].seats` | number | 是 | 座位数,行李车可为 0 | +| `fleet[].count` | number | 是 | 辆数,需大于 0 | +| `specialTags` | array | 否 | 特殊诉求标签,允许自定义 | +| `remark` | string | 否 | 备注,最长 500 字 | + +响应中 `branchTaken` 表示后端实际分支: + +| branchTaken | 场景 | +|-------------|------| +| `INIT_SUBMIT` | 首次提交用车需求 | +| `PENDING_EDIT` | 已有待处理用车需求,编辑当前需求 | +| `DONE_ADJUST` | 已配车/已完成后再次调整用车需求 | + +## 【前端 · 管理后台】处理要求 + +### 1. 用车安排卡片补充“用车需求”按钮 + +在订单详情 `行程安排` 的“用车安排”卡片中: + +- 当当前无用车需求,页面显示“尚未提交用车需求”时,展示主操作按钮:`用车需求` 或 `提交用车需求`。 +- 按钮位置建议与“联系车务”同一操作区,避免用户只能联系车务而无法录入需求。 +- 点击后打开现有用车需求表单/弹窗,提交到 `PUT /v3/admin/order/{id}/vehicle-requirement`。 + +### 2. 已有用车需求时也应允许修改 + +用车需求与住宿需求一致,不应只在空状态可提交: + +- 待处理/PENDING:按钮文案可为 `修改用车需求`,提交后走 `PENDING_EDIT`。 +- 配车中/PROCESSING:仍允许修改,提交后由后端走调整链路。 +- 已完成/DONE:仍允许调整,提交后走 `DONE_ADJUST`。 + +前端不要因为用车卡片状态变成“配车中 / 已配车 / 已完成”就永久隐藏该入口。 + +### 3. 入口显示口径 + +建议前端按“订单存在行程安排页 + 用车安排模块可见”显示该入口,不要依赖是否已有 `vehicleGroup`: + +- 无 `vehicleGroup`:显示 `用车需求 / 提交用车需求`。 +- 有 `vehicleGroup`:显示 `修改用车需求`。 + +## 验收标准 + +| 场景 | 期望 | +|------|------| +| `HL20260703140009401` 用车卡片显示“尚未提交用车需求” | 卡片上显示“用车需求/提交用车需求”按钮 | +| 点击按钮 | 打开用车需求表单,至少可填写车型、座位数、辆数、特殊诉求、备注 | +| 首次提交 | 调用 `PUT /v3/admin/order/{id}/vehicle-requirement`,返回 `branchTaken=INIT_SUBMIT` | +| 已有待处理用车需求 | 仍可打开表单修改,后端返回 `PENDING_EDIT` | +| 已配车/已完成后调整 | 仍可打开表单修改,后端返回 `DONE_ADJUST` | +| “联系车务”按钮 | 保留,不替代“用车需求”入口 | + +## 影响范围 + +| 页面/能力 | 说明 | +|-----------|------| +| `/order-v2/detail/{orderId}` | 行程安排页签 · 用车安排卡片 | +| `PUT /v3/admin/order/{id}/vehicle-requirement` | 复用现有后端接口,无新增字段 |