# 订单详情用车安排缺少“用车需求”按钮（前端待处理）

> 模块：管理后台 · 订单详情 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` | 复用现有后端接口，无新增字段 |
