hl-api-changelog/changelogs-v2/2026-08/08_5693_矩阵拖拽改派一步到位-前端修复-管理后台.md
Mimingguang 4ac2465003
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
chore(changelog): #5693 一步到位 implemented (hl-admin@23d6e7b1) 含口径取舍说明
2026-08-08 15:15:04 +08:00

3.9 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 5693 矩阵拖拽改派一步到位(拖到目标车/司机直接改成,不再弹窗手选) admin wx 前端修复 deployed verified implemented mmg 23d6e7b1 2026-08-08 origin/dev-v3 2026-08-08

矩阵拖拽改派一步到位(前端修复)

口径wx

矩阵拖拽改派要一步到位——拖到目标车辆/司机就直接改成它(该车常驻司机或拖到的司机),不再弹改派页手选槽位+重选车/司机(拖完还手选=失去拖拽意义)。

现状(前端问题)

matrix/index.vue:442 onDropAssign 拖后仍 openAssign 弹窗手选——拖拽后还要手选槽位+车/司机。

后端能力已齐备(零改动)

  • change API POST /admin/fleet/assignments/{id}/changenewVehicleId/newDriverId 均可空,必填仅 effectiveDate/holdMode/reason/requestId
  • 拖拽落点行已带 assignmentId/slotId(只切片该槽位)
  • 矩阵车辆行已带 primaryDriverId(常驻司机)
  • 价格/收费日默认沿用

前端修复

拖拽 drop 后直接调 change

  • 拖到车辆行 → change 传该 vehicleId + 其 primaryDriverId常驻司机,effectiveDate=落点日期,切片该槽位
  • 拖到司机 → change 传该 driverId
  • 多槽位拖拽落点确定改哪个槽位slotId
  • 仅跨常驻确认 / 605041 基线差异 / 多车 warning 等分支弹轻量确认,不弹完整改派页手选

验收

  • 拖拽到目标车/司机直接改派生效(一步到位,不弹改派页手选)
  • 多槽位拖拽落点确定改哪个槽位
  • 跨常驻/基线差异等弹轻量确认
  • 拖拽后价格/逐日正确

关联

  • #5693后端排查,契约齐备零改动;证据 evidence/5693/issue-comment-onestep.md

联系人

  • 后端/协调台wx

前端实证确认2026-08-08 mmg,hl-admin

按协调台拍板的「向导预选直达确认步」口径实现(非字面「直接调 change 不弹页」,hl-admin@23d6e7b1

  • 矩阵拖拽补传常驻司机matrix/index.vue onDropAssign 从落点车辆行取 primaryDriverId(字符串透传,空归一 null,两个模式分支统一 openAssign(order, { vehicle, driver: residentDriverId, mode })
  • AssignModal reassign 应用预选:拖拽条目 order.assignmentId 命中 activeAssignments 且带预选车辆时,自动锁定被拖槽位为改派目标 + 进入「已清除重选」态(changeDraftCleared=true,等价手选槽位后点清除),费用草稿按 mergeSlotChangeSegments 整段合并目标 + preferSavedTotal 恢复;restoreSelection({ vehicleId, driverId, autoSelectResidentDriver }) 复用 batch 分支同一机制——预选司机仅作初始草稿,仍随 loadCandidates 携带两侧 ID 复核可用性与常驻关系,不硬信车辆档案;落点车无常驻司机时留空走既有空态。
  • 保持不变:提交链 buildAssignmentSubmission/changeAssignment、跨常驻确认605036、基线差异605041、ORDER_HAS_OTHER_VEHICLES warning、逐日车费拦截全部未触碰。
  • 与原口径差异:拖拽后仍需用户在改派向导点一次「下一步/确认」提交(未做到完全不弹页直接 change。取舍原因落点缺目标司机、落点日期、逐日车费三个向导输入,直接重建精简 change 链需自行补齐这三值,风险高于复用既有向导校验;多槽位由被拖条目 assignmentId 确定槽位(满足「落点确定改哪个槽位」)。
  • 验证fleet/board 定向 vitest 413/413 通过;checkpoint含生产构建全绿。若需进一步做到「完全不弹页直改」,属另一次精简 change 链重建,建议单列工单。