# 合同列表 — 06 分步实施计划 > 对照报价单 P2/P3;Java 快照按需拷贝 `reference/java/contract/`。 ## 阶段 B:后端 | 步骤 | 实施 | 完成标准 | |------|------|----------| | B1 | `incremental_crm_contract_list.sql` + Model 补字段 + `CrmContractApproval` | DDL 可执行 | | B2 | `contract.py` 扩展:`buildQueryWrapper`、update/delete、状态机 | 对齐 Java ServiceImpl | | B3 | `contract_approval.py` + 审批 API | 对齐 quote_approval | | B4 | `crm_contract_routes.py` 注册全量路由 + export | 04-api-spec ✅ | | B5 | `CONTRACT_EXPORT_COLUMNS` | 对齐 CrmContractVo @ExcelDictFormat | ## 阶段 D:前端 | 步骤 | 实施 | 完成标准 | |------|------|----------| | D1 | 拷贝 `views/crm/contract/` + `api/crm/contract/` | 文件齐全 | | D2 | `migrate-contract-vue.py` 机械替换 | dict/http/modal | | D3 | `index.vue` Fresh Mint 骨架(参照 quote) | panel/filter/toolbar/table | | D4 | `useContractPerm` + 路由 `sqxp.ts` | menu-codes | | D5 | API `types.ts` + POST `/web/crm/contract/*` | 对齐 04-api-spec | ## 阶段 E:验证 | 步骤 | 内容 | |------|------| | E1 | 列表 Tab 切换、筛选、展开产品、导出 | | E2 | 提交审批 → 通过/驳回 → 执行 → 完成/作废 | | E3 | 更新 `module-status.md` |