# 商机管理模块迁移方案 — 06 分步实施计划 ## Phase 0:方案与 DDL(步骤 1~2) - [x] 步骤 1:编写 01~04 方案文档 - [ ] 步骤 2:执行 `incremental_crm_opportunity.sql`(含菜单与按钮权限) ## Phase 1:拷贝(步骤 3) - [x] 步骤 3:从原 CRM 拷贝 Vue + API 到 web-admin ## Phase 2:前端适配(步骤 4~8) - [x] 步骤 4:重写 `api/crm/opportunity/index.ts`(POST `/web/crm/opportunity/*`) - [x] 步骤 5:适配 `index.vue`(Fresh Mint 骨架、dictStore、useOpportunityPerm) - [x] 步骤 6:适配 components(表单/对话框/跟进/详情抽屉) - [x] 步骤 7:适配 detail / kanban / funnel / statistics - [x] 步骤 8:注册 `sqxp.ts` 路由 ## Phase 3:后端(步骤 9~12) - [x] 步骤 9:扩展 Model + CRUD 主表 - [x] 步骤 10:跟进/产品/阶段日志 CRUD - [x] 步骤 11:统计/看板/漏斗 API - [x] 步骤 12:crm.py 路由注册 ## Phase 4:验证(步骤 13~14) - [ ] 步骤 13:列表 CRUD + 赢输单 + 分配联调(需 DDL + 角色授权后手测) - [x] 步骤 14:更新 module-status.md + graphify ## 待办备注 - `winWithContract`(赢单并创建合同)依赖合同模块,暂未实现 - 手测前请为测试角色勾选商机菜单及 `crm:opportunity:*` 按钮权限