# 归档弹窗回传信息编辑 — 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 - [x] Schema 与 service 函数 - [x] `PATCH /transport/plan/{id}/driver-feedback` - [x] `PATCH /transport/plan/{id}/site-feedback/{linkId}` ### Task 2: 前端 API + 编辑弹窗 - [x] `planApi` 扩展 - [x] 司机/现场编辑弹窗组件 ### Task 3: 集成与验收 - [x] `PlPlanViewTabs` 增加 `feedbackEditable` - [x] `PlPlanArchiveDialog` 传入 prop - [ ] 联调:未安排运输禁用司机编辑;现场按行编辑;保存后 reload --- ## 验收 | # | 场景 | 预期 | |---|------|------| | V1 | 归档弹窗下区司机区无数据 | 显示「补充」,保存后表格有数据 | | V2 | 司机已有回传 | 「编辑」预填,保存覆盖 | | V3 | 现场每行 | 独立「编辑/补充」+ 独立保存 | | V4 | 未安排运输 | 司机编辑禁用并提示 | | V5 | 保存回传 | 不触发归档接口;下区 refresh |