2.6 KiB
2.6 KiB
归档弹窗回传信息编辑 — Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 归档人员在运输计划归档弹窗内,可独立保存司机回传与现场回传(空=补充,有数据=编辑,可覆盖任意字段)。
Architecture: 后端新增 2 个 PATCH 接口写 pl_transport / pl_transport_site_link 并记 pl_plan_change;前端在 PlPlanViewTabs 增加 feedbackEditable 模式与编辑子弹窗,归档弹窗传入该 prop。
Tech Stack: FastAPI + SQLAlchemy + Pydantic v2;Vue 3 + Element Plus + AttachmentUploadField
Spec: 会话确认(2026-07-11):独立保存;归档人员可改全部字段;空态=补充、有数据=编辑。
文件结构
| 文件 | 动作 |
|---|---|
backend/app/schemas/pl/plan.py |
新增 PlanDriverFeedbackUpdateBody、PlanSiteFeedbackUpdateBody |
backend/app/services/pl_plan_service.py |
新增 apply_plan_driver_feedback、apply_plan_site_feedback |
backend/app/api/pl/plan.py |
新增 PATCH 路由 |
web-admin/src/api/pl/index.ts |
类型 + planApi.updateDriverFeedback / updateSiteFeedback |
web-admin/src/components/business/pl-plan-driver-feedback-dialog/index.vue |
新建 |
web-admin/src/components/business/pl-plan-site-feedback-dialog/index.vue |
新建 |
web-admin/src/components/business/pl-plan-view-tabs/index.vue |
编辑按钮 + 弹窗联动 |
web-admin/src/components/business/pl-plan-archive-dialog/index.vue |
feedback-editable |
Task 1: 后端 Schema + Service + API
- Schema 与 service 函数
PATCH /transport/plan/{id}/driver-feedbackPATCH /transport/plan/{id}/site-feedback/{linkId}
Task 2: 前端 API + 编辑弹窗
planApi扩展- 司机/现场编辑弹窗组件
Task 3: 集成与验收
PlPlanViewTabs增加feedbackEditablePlPlanArchiveDialog传入 prop- 联调:未安排运输禁用司机编辑;现场按行编辑;保存后 reload
验收
| # | 场景 | 预期 |
|---|---|---|
| V1 | 归档弹窗下区司机区无数据 | 显示「补充」,保存后表格有数据 |
| V2 | 司机已有回传 | 「编辑」预填,保存覆盖 |
| V3 | 现场每行 | 独立「编辑/补充」+ 独立保存 |
| V4 | 未安排运输 | 司机编辑禁用并提示 |
| V5 | 保存回传 | 不触发归档接口;下区 refresh |