docs: 记录接机参与无法选中 (#5292) #57

已合并
wx 2026-07-28 10:25:15 +08:00 将 1 次代码提交从 docs/5292-pickup-checkbox-unselectable合并至 main

查看文件

@ -11,7 +11,7 @@ frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "2026-07-28 产品口径补充:新建逐日派车草稿默认全部行程服务日用车;现有 7b99fe7d 实现把后端 UNPLANNED 直接渲染为未勾选,故回退 pending 等待修正"
status_note: "2026-07-28 页面复验阻断:除默认全行程用车待修正外,要求接机日的 ARRIVAL 参与复选框点击后也无法保持选中,继续 pending 等待前端修复"
updated_at: "2026-07-28"
base: "dev-v3"
---
@ -60,6 +60,31 @@ base: "dev-v3"
- [ ] 补充 `createDailyVehiclePlan()``appendDailyVehiclePlanSlot()` 和真实挂载 `FleetAssignModal` 的回归测试,覆盖首次进入、增加槽位、重新打开以及主动取消用车。
- [ ] 提交请求仍满足:每个 `used=true` 日格具备车辆、司机和价格;全天不用车时带明确二次确认。
## 2026-07-28 页面阻断ARRIVAL 接机参与无法选中
真实页面复验中,服务日 **2026-08-04** 已标记“要求接机”,该日格已勾选“当天用车”、已选车辆和司机、无只读或锁定提示,但点击“参与 ARRIVAL 接机 / 接站”后复选框无法保持选中。该操作发生在派车草稿提交前,属于前端日格交互与状态同步阻断,不是后端保存接口拒绝。
当前 `origin/v2.1@e744c909` 中:
- `DailyVehiclePlanMatrix.vue` 的复选框仅发出 `update:pickup(key, checked)`
- `AssignModal.vue``handleDailyPlanPickupUpdate()` 只将结果写入本地 `dailyPlan`
- 现有 `daily-vehicle-plan-matrix.spec.js` 只断言子组件已发出事件,没有挂载 `FleetAssignModal` 验证父层接收后、候选状态 watcher 运行后以及切换日格后的值是否仍为 `true`
因此,子组件事件测试通过不能作为页面可用证据。前端需要从浏览器事件开始逐段核对 `NCheckbox → update:pickup → handleDailyPlanPickupUpdate → dailyPlan → 提交 payload`,找出勾选值被丢弃或覆盖的位置;不得通过跳过逐日方案校验或伪造后端字段规避。
### 前端验收清单
- [ ] 对 `pickupRequired=true``used=true` 且可编辑的日格,点击后复选框立即选中,并在多轮 `nextTick`、候选状态刷新以及价格编辑后保持选中。
- [ ] 切换到其他服务日再返回,接机参与状态仍保留;再次点击可以明确取消。
- [ ] 更新只作用于当前 `serviceDate + fleetItemIndex`,不得串改同日其他车辆或其他服务日。
- [ ] 将该日改为不用车时自动清除 `pickupParticipant`;重新用车后由车务再次明确选择,不沿用陈旧值。
- [ ] 提交前的 `dailyPlan` 以及最终请求体均包含该日格 `pickupParticipant=true`;后端返回成功后详情回显一致。
- [ ] 要求接机的服务日至少一辆实际用车标记参与接机;未选择时继续显示既有校验提示,选择后提示收敛。
- [ ] 新增 `FleetAssignModal` 父子联动回归测试,覆盖事件接收、watcher 稳定、日格切换和 payload;不能只断言 `DailyVehiclePlanMatrix` 发出了事件。
- [ ] 页面 Console 无 `Maximum recursive updates exceeded``unhandledrejection`,复选框操作不得重新触发无界候选请求。
在该页面交互修复并完成真实浏览器复验前,`frontend_status` 保持 `pending`,不得流转为 `implemented/released/verified`
## 变更接口
| # | 接口 | 方法 | 路径 | 变更类型 | 说明 |