比较提交
| 作者 | SHA1 | 提交日期 | |
|---|---|---|---|
|
|
938ca1702f | ||
|
|
bb3034ac3d | ||
|
|
3fc70f0cf4 | ||
|
|
a20540e6ee | ||
|
|
aa6f8b0897 |
@@ -52,7 +52,7 @@ generated: "2026-07-22T13:25:00+08:00"
|
||||
| `requiredVehicleType` | String/null | 否 | 订单需求车型大类 key,只影响匹配标记,不限制选择 |
|
||||
| `vehiclePage` / `vehiclePageSize` | Integer | 是 | 车辆独立分页,页大小 1~100 |
|
||||
| `driverPage` / `driverPageSize` | Integer | 是 | 司机独立分页,页大小 1~100 |
|
||||
| `driverAvailability` | String | 否 | `ALL` / `AVAILABLE`,默认 `ALL` |
|
||||
| `driverAvailability` | String | 否 | `ALL` / `AVAILABLE`,接口默认 `ALL`;管理后台按原型首屏显式传 `AVAILABLE` |
|
||||
| `driverSort` | String | 否 | `SMART` / `RATING` / `YEARS` / `RECENT_ORDER`,默认 `SMART` |
|
||||
|
||||
雪花 ID 一律按字符串保存和提交,禁止 `Number()`、`parseInt()`。
|
||||
@@ -119,6 +119,13 @@ generated: "2026-07-22T13:25:00+08:00"
|
||||
|
||||
前端禁用判断只使用 `available === false`。禁止用 `requirementMatched === false`、`seatsEnough === false` 或车型不一致禁用车辆;这些情况应显示“需求不匹配/座位不足”提示,但允许车务选中。
|
||||
|
||||
需求不匹配必须使用车辆卡片内的显式标签,不能再以黄色外框作为主要提示:
|
||||
|
||||
- `requirementMatched === false`:在车辆名称/状态附近显示橙色 `需求不匹配` 标签。
|
||||
- `seatsEnough === false`:额外显示红色或橙红色 `座位不足` 标签。
|
||||
- 移除需求不匹配专用黄色外框;边框只保留选中态、档期冲突等已有交互语义,避免颜色含义不明。
|
||||
- 标签只负责提醒,不改变 `available`、点击选择或最终派单规则。
|
||||
|
||||
### 先选司机与取消车辆
|
||||
|
||||
- 仅传 `selectedDriverId` 时,`selectedDriverResidentVehicle` 返回该司机常驻车的完整车辆候选;司机无常驻车时为 `null`。
|
||||
@@ -138,6 +145,15 @@ generated: "2026-07-22T13:25:00+08:00"
|
||||
|
||||
`hasRating=false` 时显示“暂无评价”,不要展示星标和 `0.0/5.0`;不得再用固定 `5.0` 兜底。单量为司机历史累计,不按赛季清零。
|
||||
|
||||
### 原型一致性:司机筛选控件
|
||||
|
||||
司机筛选必须按原型平铺展示,不能用两个下拉框折叠选项。平铺按钮让车务一眼看到当前范围和全部排序方式,并可单击切换:
|
||||
|
||||
- 范围:`仅空闲`(`AVAILABLE`,首屏默认选中)、`全部`(`ALL`)。
|
||||
- 排序:`智能推荐`(`SMART`,首屏默认选中)、`评分`(`RATING`)、`驾龄`(`YEARS`)、`最近接单`(`RECENT_ORDER`)。
|
||||
- 切换范围或排序时只把 `driverPage` 重置为 1,不重置车辆筛选、车辆页码或已选车辆。
|
||||
- “全部司机/智能排序”两个 `NSelect` 不视为原型等价实现;验收以按钮全部可见、选中态明确为准。
|
||||
|
||||
## 最终派单规则
|
||||
|
||||
- 车型或座位不匹配:候选项仍可选,预检返回 warning,最终派单不阻断。
|
||||
@@ -148,9 +164,10 @@ generated: "2026-07-22T13:25:00+08:00"
|
||||
|
||||
- [ ] 车辆和司机列表分别接 `records/total/page/pageSize` 并增加独立分页控件。
|
||||
- [ ] 车队和车型筛选使用 `fleetTeamFacets/vehicleTypeFacets` 动态渲染及计数。
|
||||
- [ ] 车辆行展示车型、常驻司机、协议参考价;需求车型或座位不匹配只醒目标记,不禁选。
|
||||
- [ ] 车辆行展示车型、常驻司机、协议参考价;需求不匹配改用卡片内显式标签并移除黄色外框,座位不足追加独立标签,均不禁选。
|
||||
- [ ] 支持再次点击已选车辆取消选择,并传 `selectedVehicleId: null`。
|
||||
- [ ] 支持先选司机,并展示/置顶 `selectedDriverResidentVehicle`。
|
||||
- [ ] 司机范围与排序按原型平铺为 2+4 个按钮,默认“仅空闲 + 智能推荐”,不得折叠成两个下拉框。
|
||||
- [ ] 司机无评价显示“暂无评价”,不伪造 `5.0` 或 `0.0`;完成单量读取 `completedOrderCount`。
|
||||
- [ ] 雪花 ID 全程按字符串处理。
|
||||
|
||||
|
||||
@@ -59,6 +59,51 @@ generated: "2026-07-22T14:07:00+08:00"
|
||||
- [ ] 年保可查看保障起止日,且不把过期或部分覆盖年保展示为已保障。
|
||||
- [ ] 保险状态不改变司机可选性,候选禁用仍只依据 `available === false`。
|
||||
|
||||
## 编辑司机:无保单时直接线上投保
|
||||
|
||||
司机编辑抽屉选择“全年保险”后,如果“关联保游网保单”没有可选数据,不应只展示空下拉。需要在当前抽屉提供“立即投保”入口,复用保险订单页“投保下单 → 司机”的线上真实投保逻辑。
|
||||
|
||||
目标文件:
|
||||
|
||||
- `src/views/fleet/drivers/components/DriverEditModal.vue`
|
||||
- 可复用 `src/views/insurance/orders/index.vue` 中的司机投保表单和 `src/api/fleet/drivers.js` 的 `purchaseDriverInsurance`。
|
||||
|
||||
交互要求:
|
||||
|
||||
1. 无可关联保单时显示“暂无可关联保单”,并提供“立即投保”按钮。
|
||||
2. 点击后填写保险计划、保障开始、保障结束和可选备注;表单行为与保险订单页的司机投保一致。
|
||||
3. 用户点击“确认投保”后才发起真实线上投保;仅切换到“全年保险”不得自动出单。
|
||||
4. 投保请求必须传 `bindAnnual: true`。受理成功后,后端会自动把新保单绑定为司机档案的全年保险。
|
||||
5. 成功后重新加载司机保单列表和司机详情,回显新 `insuranceOrderId`、保单状态及保障起止;`INSURING` 时显示“出单中”,不能要求用户重复投保。
|
||||
6. 保留“手工录入线下保单”作为独立兜底路径,文案和操作不得与线上投保混用。
|
||||
|
||||
调用示例:
|
||||
|
||||
```http
|
||||
POST /admin/fleet/drivers/{driverId}/insurance/purchase
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"planId": "2080000000000000001",
|
||||
"coverageStartDate": "2026-07-23",
|
||||
"coverageEndDate": "2027-07-22",
|
||||
"bindAnnual": true,
|
||||
"remark": "司机全年保险"
|
||||
}
|
||||
```
|
||||
|
||||
`driverId`、`planId` 和响应中的 `insuranceOrderId` 均为雪花 ID,前端必须按字符串透传。保险计划继续使用 `GET /admin/fleet/drivers/insurance/plan-options`。
|
||||
|
||||
异常处理沿用保险订单页:全局展示后端错误文案;若返回 `600206`,表示可能已经出单但档案绑定失败,必须关闭投保弹窗并刷新保单列表,提示用户勿重复投保。
|
||||
|
||||
追加验收项:
|
||||
|
||||
- [ ] 编辑司机选择全年保险且无已有保单时,可在当前抽屉发起线上真实投保。
|
||||
- [ ] 请求携带 `bindAnnual: true`,投保受理后司机档案自动回显全年保险,无需先保存再关联。
|
||||
- [ ] 出单中、已承保和 `600206` 场景均不会诱导用户重复投保。
|
||||
- [ ] 线上投保与手工录入线下保单入口、文案和数据来源清晰分离。
|
||||
|
||||
## 验证证据
|
||||
|
||||
- 后端 PR [wx/HL#5143](https://git.1814.love:8443/wx/HL/pulls/5143) 已合并到 `dev-v3`。
|
||||
|
||||
在新工单中引用
屏蔽一个用户