# 【行为变更·司机H5】司机续签车辆区仅「个人车 + 自带来源」显示,公司车/无常驻车隐藏

> 服务:hl-fleet-service(8087/8187) | 分支:dev-v3 | PR:#3995 | 工单:#3991
> 已部署测试服双实例 health UP,A/B 真实数据实测通过(2026-06-18)

## ⚠️ 关键说明

1. **后端口径变更**:司机续签初始化 `GET /app/h5/driver-onboard/init` 的 `prefill.currentVehicle`(常驻车回显/编辑块)**只在「司机常驻车是个人车(自用车)」时返回**;常驻车是**公司车**、或司机**无常驻车**,`currentVehicle` 一律为 `null`(旧行为:只要是某车常驻就返回,不分个人车/公司车)。
2. **前端需配合的完整显隐规则(两者都要)**:车辆区是否展示 = `prefill.currentVehicle != null` **且** 当前「车辆来源 vehicleSource」== `own`(自带)。
   - `currentVehicle == null`(公司车/无常驻)→ **隐藏车辆区**(后端已兜住,前端按 null 隐藏即可)。
   - `currentVehicle != null` 但司机把「车辆来源」下拉切到 `company`(公司分配)→ **前端隐藏车辆区**(这一半后端不管,按实时下拉值动态显隐)。
   - 二者都满足(个人车常驻 + 自带来源)→ **显示车辆区**。
3. **「个人车」判定按车辆所有权,与「车队归属(fleet)」无关**:前端无需关心 fleet 字段——后端已用所有权(ownerType=personal)gate,前端只看 `currentVehicle` 是否为 null + `vehicleSource` 下拉值。例:某个人车 `fleet=coopA`(合作车队A) 仍会下发 currentVehicle(因所有权=个人)。

## 1. currentVehicle 行为变更

| 场景(续签 init) | 旧行为 | 新行为 |
|---|---|---|
| 常驻车 = 个人车(自用车) | currentVehicle 返车辆档案块 | 不变,仍返(供前端在「车辆来源=自带」时展示) |
| 常驻车 = 公司车 | currentVehicle 返车辆档案块 | **currentVehicle = null** |
| 无常驻车 | currentVehicle = null | 不变,仍 null |

## 2. 前端动作(hl-ui 司机 H5)

续签流程「车辆区/携带车」的展示判定改为:

```
showVehicleSection = (prefill.currentVehicle != null) && (当前车辆来源下拉 vehicleSource === 'own')
```

- 车辆来源下拉值仍取 `prefill.vehicleSource`(own=自带 / company=公司分配)作初值,司机可实时改;改为 company 时即时隐藏车辆区,改回 own 且 currentVehicle 非 null 时再显示。
- 公司车司机(currentVehicle 恒 null)续签时**不展示车辆区**,只填司机侧变更项。

## 3. A/B 实测(测试服真实续签 token)

```bash
# 公司车常驻 → currentVehicle = null(车辆区隐藏)
curl -k "https://web.test.1814.love:9443/app/h5/driver-onboard/init?token=8dcfc0d597364bf7a6259afa3c5025ff"
# → data.prefill.currentVehicle = null  (常驻车 蒙C01E01 = 公司车)

# 个人车常驻 → currentVehicle 非 null(车辆区可显示)
curl -k "https://web.test.1814.love:9443/app/h5/driver-onboard/init?token=e8365dab9909445aad6725a23da17c00"
# → data.prefill.currentVehicle = { plate:"蒙A-H7777", ... }  (个人车,fleet=coopA)
```

## 4. 后端内部变更(前端无需关注,备查)

1. `VehicleService.getRenewVehiclePrefill`:门槛加 `ownerType=personal`,公司车/无常驻车返 null。
2. `DriverPendingReviewService.updateRenewedVehicle`:对称兜底——续签审核回写时常驻车为公司车则跳过(防自助续签越权改公司车档案;正常流前端已隐藏不会发车辆编辑,此处再兜一道)。
3. 无接口契约字段变更、无新增端点、无 Flyway:仅 `currentVehicle` 取值口径收紧。
