3.7 KiB
3.7 KiB
schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
| schema | ticket | title | consumer | author | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base | generated |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | frontend-fleet-clear-cancelled-occupancy-row | 行级「释放占用」对已取消全程槽行误报「缺少该派单的服务日期」 | admin | kimi(wx) | 前端缺陷 | not_required | not_required | verified | mmg | 9871cbb1 | 2026-08-22 | 前端缺陷:已取消的全程槽派单行(整单取消场景)行级「释放占用」解析服务日失败被误拦截,报「缺少该派单的服务日期,请刷新详情后重试」且刷新无效。建议解析为空时降级整单级释放(后端向后兼容)或该行隐藏行级按钮。根治在 #6152(后端详情将给已取消行补返起止日期)。临时绕路:用卡片顶「释放车辆/司机占用」整单级入口,功能正常。 | 2026-08-22 | dev-v3 | 2026-08-22T18:30:00+08:00 |
行级「释放占用」对已取消全程槽行误报「缺少该派单的服务日期」
前端缺陷,待前端修复。后端无问题(整单级释放入口功能正常,接口本身向后兼容)。
现象(TEST 实测,订单 26-9250)
订单行程中中止(整单取消),派单看板 → 订单详情 → 车辆执行段 → 已取消行内点「释放占用」(行级,#6114):
- 报错「缺少该派单的服务日期,请刷新详情后重试」,刷新详情后重试仍报同样错误(用户连点 4 次均失败)。
- 卡片顶部「释放车辆/司机占用」(整单级,#6107)功能正常,可作为临时绕路。
根因(前端)
src/views/fleet/board/index.vue onClearCancelledOccupancyRow:行级释放必须先解析该行的服务日期数组(先取 assignment.serviceDate,否则走 resolveVehicleFeeServiceDates 的 7 种来源:dailyVehiclePlan / dailyVehicleFees / chargeable+freeServiceDates / serviceDates / serviceDateSegments / itinerary.days / startDate~endDate),解析为空则拦截不发请求。
本条已取消派单是全程槽行(service_date 为 NULL),且已取消行按 #5828 读侧精简(身份字段置空、仅回显 cancelled* 快照,快照不含日期)——7 种日期来源在该行全部为空,于是误拦截。
#6114 实现时只覆盖了「终止勾选未用天」场景(行上带 serviceDates),未覆盖「整单取消的全程槽行」场景。
后端事实(无需改动)
POST /admin/fleet/assignments/clear-cancelled-occupancy:
- 不传
serviceDates(或传空数组)= 整单级释放该订单全部已取消派单占用,向后兼容且幂等(intentsWritten=0视为成功)。 - 传
serviceDates时后端对全程行按 startDate~endDate 自动展开为天(coveredServiceDates),即后端本身能处理全程槽行——缺的只是前端解析不出日期。
修复建议(前端二选一)
- 降级整单级:行级解析服务日为空时,确认弹窗文案改为整单级口径(「将释放该订单下已取消派单占用的车辆/司机」),请求不带
serviceDates直接发——后端即整单级释放。 - 隐藏行级按钮:
canClearCancelledOccupancyRow增加「能解析出服务日」前置条件,解析不出的行不显示行级「释放占用」,保留卡片顶整单级入口。
推荐方案 1(操作路径不变,用户无感)。
根治跟踪
后端工单 #6152(feat(fleet): 已派车后取消进异常桶对标房务)验收项包含「已取消行补返起止日期字段」,落地后行级释放可恢复逐天精确语义;本前端降级修复与其不冲突(解析得到日期时仍走行级)。