hl-api-changelog/changelogs-v2/2026-07/85_5156_车务看板与矩阵主标识显示团号-前端待处理-管理后台.md
API Changelog Bot f7ebc9c6f9
所有检测均成功
changelog-filename-gate / validate (push) Successful in 1s
docs(fleet): reopen matrix team number display (#5156)
2026-07-23 11:36:53 +08:00

6.8 KiB

【前端待处理·管理后台】#5156 车务团号、中文状态与常驻关系筛选

服务: hl-fleet-service Issue: wx/HL#5156 日期: 2026-07-22 影响范围: 管理后台车务派单看板、订单详情、车务矩阵、派单候选弹窗


关键结论

  1. 看板与矩阵的可见订单主标识统一使用完整团号:

    const visibleOrderCode = teamNo?.trim() || orderNo?.trim() || '—'
    

    该规则只替换可见文案,不得用 teamNo 替换 idorderNumericIdassignmentIdassignmentGroupId,不得改变行键、路由和派单接口入参。

    2026-07-23 漏验收补充:矩阵“已派订单占用条”的正文必须直接显示 visibleOrderCode,不能只把团号放在鼠标悬浮 title 中。当前页面正文仍是 “人员构成 · 路线”,车务无法在矩阵中直接识别团号。建议正文按 “团号 · 人员构成 · 路线”排列;空间不足时优先保留完整团号,人员构成和路线可 省略或截断,悬浮提示继续展示完整信息。

  2. 订单详情 activeAssignments[] 新增 assignmentStatusLabel。页面只展示中文标签,例如 assignmentStatus=assigned 对应 assignmentStatusLabel=已派车assignmentStatus 继续用于程序判断,不直接显示英文状态码。

  3. 派单候选支持双向常驻关系展示和筛选:

    • 车辆候选有常驻司机时,展示 primaryDriverNameprimaryDriverMaskedPhonevehicleKeyword 支持车牌、车型、常驻司机姓名或 11 位完整手机号。
    • 司机候选有常驻车辆时,展示 residentVehiclePlatedriverKeyword 支持司机姓名、11 位完整手机号或常驻车牌。
    • 完整手机号只作为精确筛选入参,响应仍只返回脱敏手机号。

接口契约

1. 看板、详情与矩阵团号

页面场景 接口 团号字段
看板列表 GET /admin/fleet/board/orders data.records[].teamNo
看板详情 GET /admin/fleet/board/orders/{orderId} data.teamNo
矩阵已派占用 GET /admin/fleet/matrix/grid data.vehicles[].assignments[].teamNo
矩阵未派清单 GET /admin/fleet/matrix/unassigned-orders data[].teamNo
矩阵单日清单 GET /admin/fleet/matrix/day-orders data[].teamNo

前端处理位置:

  • src/views/fleet/board/index.vue
  • src/views/fleet/board/components/OrderRowList.vue
  • src/views/fleet/board/components/OrderDrawer.vue
  • src/views/fleet/matrix/composables/useFleetMatrixData.js
  • src/views/fleet/_shared/gantt/components/OrderGantt.vue
  • src/views/fleet/_shared/gantt/components/OrderBar.vue
  • src/views/fleet/_shared/gantt/components/VehicleGantt.vue
  • src/views/fleet/_shared/gantt/components/UnassignedPool.vue
  • src/views/fleet/matrix/components/DayListModal.vue

2. 订单详情中文状态

GET /admin/fleet/board/orders/{orderId} 的每个 data.activeAssignments[] 新增:

字段 类型 说明
assignmentStatus string 稳定状态码,供逻辑判断
assignmentStatusLabel string 后端统一解析的中文状态标签,供页面展示
{
  "assignmentStatus": "assigned",
  "assignmentStatusLabel": "已派车"
}

OrderDrawer.vue 中有效派车组右侧标签改为 assignment.assignmentStatusLabel || '—',不要再以 assignmentStatus 作为可见兜底。

3. 派单候选常驻关系

接口:POST /admin/fleet/assignments/candidates

请求关键词:

字段 新口径
vehicleKeyword 车牌/车型包含匹配;常驻司机姓名包含匹配;常驻司机 11 位完整手机号精确匹配
driverKeyword 司机姓名包含匹配;司机 11 位完整手机号精确匹配;常驻车牌包含匹配

车辆候选 data.vehicles.records[]

字段 类型 说明
primaryDriverId string | null 常驻司机 ID
primaryDriverName string | null 常驻司机姓名
primaryDriverMaskedPhone string | null 常驻司机脱敏手机号

司机候选 data.drivers.records[] 继续返回:

字段 类型 说明
residentVehicleId string | null 常驻车辆 ID
residentVehiclePlate string | null 常驻车牌

前端处理要求:

  • VehiclePickerList.vue:有常驻司机时显示“常驻司机:姓名 脱敏手机号”,无常驻时显示“无常驻”;搜索提示改为“搜索车牌/车型/常驻司机姓名/完整手机号”。
  • DriverPickerList.vue:保留现有“常驻 {residentVehiclePlate}”展示;搜索提示改为“搜索姓名/完整手机号/常驻车牌”。
  • useVehicleDriverPicker.js:关键词变化后分别重置对应页码为 1,并将原值传给 vehicleKeyword / driverKeyword;不在前端对当前页二次过滤。
  • 所有雪花 ID 保持字符串处理。

示例

{
  "vehicles": {
    "records": [
      {
        "vehicleId": "2000000000000000101",
        "plate": "蒙A77777",
        "primaryDriverId": "2000000000000000201",
        "primaryDriverName": "张师傅",
        "primaryDriverMaskedPhone": "138****5678"
      }
    ]
  },
  "drivers": {
    "records": [
      {
        "driverId": "2000000000000000201",
        "name": "张师傅",
        "maskedPhone": "138****5678",
        "residentVehicleId": "2000000000000000101",
        "residentVehiclePlate": "蒙A77777"
      }
    ]
  }
}

验收清单

  • 看板卡片、详情标题和矩阵各订单入口优先显示完整 teamNo,空值回退 orderNo
  • 矩阵已派占用条正文直接显示 teamNo || orderNo || '—';不能只在悬浮提示中显示。窄占用条优先保留完整团号,其次才是人员构成和路线。
  • 有效派车组状态只显示 assignmentStatusLabel 中文文案,不再出现 assigned 等英文状态码。
  • 有常驻司机的车辆显示姓名和脱敏手机号;可按姓名或完整手机号筛到对应车辆。
  • 有常驻车辆的司机显示常驻车牌;可按常驻车牌筛到对应司机。
  • 车牌/车型搜索和司机姓名/完整手机号搜索保持有效,关键词变化后分页正确重置。
  • 团号展示不改变详情、拖拽、派单、改派、取消等操作使用的稳定 ID。
  • 前端单元测试覆盖已派占用条正文团号、团号回退、中文状态、双向常驻关系显示与筛选参数。

后端核查证据

  • BoardOrderServiceTest 覆盖 assigned -> 已派车
  • AssignmentCandidateServiceTest 覆盖车辆按常驻司机姓名/完整手机号筛选、司机按常驻车牌筛选及双向关系回显。
  • DriverServiceTest 覆盖指定常驻司机集合内的姓名/完整手机号查询,明文手机号不离开司机域。