删除现有 shanxia2.0 中公海池相关的不规范代码,为重新移植做准备。
web-admin/src/views/crm/customer/pool/ 目录web-admin/src/api/crm/poolRule.tsweb-admin/src/api/crm/customer.ts 中的公海池 API 函数backend/app/crud/crm/customer_pool.pybackend/app/crud/crm/pool_rule.pybackend/app/schemas/crm/customer_pool.pybackend/app/schemas/crm/pool_rule.pybackend/app/models/crm_models.py 中的 CrmCustomerPool 和 CrmCustomerPoolRulebackend/app/api/crm.py 中的公海池相关路由backend/app/tasks/customer_pool.py从原 CRM 拷贝 pool/index.vue 到 shanxia2.0,保留完整功能。
shanxia/crm/web/src/views/crm/pool/index.vue → web-admin/src/views/crm/customer/pool/index.vueweb-admin/src/views/crm/customer/pool/index.vue(新建)拷贝 claimDialog 和 assignDialog 到 shanxia2.0。
claimDialog.vue → ClaimDialog.vueassignDialog.vue → AssignDialog.vueweb-admin/src/views/crm/customer/pool/components/ClaimDialog.vue(新建)web-admin/src/views/crm/customer/pool/components/AssignDialog.vue(新建)逐行审阅并适配 pool/index.vue 的 <script> 部分。
getCurrentInstance() / proxy,改用直接 API 调用proxy?.useDict('xxx') → dictStore.getOptions('xxx')proxy?.$modal.msgSuccess → ElMessage.successrequest({ url, method }) → request.post(url, data)web-admin/src/api/crm/pool.ts 统一公海池 APIweb-admin/src/views/crm/customer/pool/index.vueweb-admin/src/api/crm/pool.ts(新建)适配模板和样式为 Fresh Mint 风格。
<el-card> 布局 → page-container + panel 布局<right-toolbar> → list-toolbar<dict-tag> → <el-tag> + dictStoretitle-bar-heading)label-width → label-position="top",添加 dialog-form-layout<el-icon> 到所有按钮web-admin/src/views/crm/customer/pool/index.vue适配两个弹窗组件。
listUser API 替换为 shanxia2.0 的用户列表 API新建公海池规则管理页面(原 CRM 无前端,shanxia2.0 新增)。
views/crm/customer/pool/RuleIndex.vue(参考标准列表模板 unit/index.vue)views/crm/customer/pool/components/RuleDialog.vue(新增/编辑弹窗)api/crm/pool.ts 中添加规则管理 API 函数router/modules/sqxp.ts 中添加规则管理路由web-admin/src/views/crm/customer/pool/RuleIndex.vue(新建)web-admin/src/views/crm/customer/pool/components/RuleDialog.vue(新建)web-admin/src/api/crm/pool.tsweb-admin/src/router/modules/sqxp.ts创建正确的 DDL 和 SQLAlchemy Model。
docs/sql/incremental_crm_customer_pool.sqlcrm_models.py 中的 CrmCustomerPool(字段名回归 sx.sql)crm_models.py 中的 CrmCustomerPoolRule(字段名/类型/值回归 sx.sql)docs/sql/incremental_crm_customer_pool.sql(新建)backend/app/models/crm_models.py创建 Pydantic v2 Schema,字段名回归。
schemas/crm/customer_pool.py:字段用 fromUserId, toUserId, reason, createByNameschemas/crm/pool_rule.py:字段用 poolName, timeoutDays, sort, ruleType(no_follow/no_deal), status(enable/disable)重写 crud/crm/customer_pool.py。
_row_to_dict:字段名回归(fromUserId, toUserId, reason, createByName)list_pool_records:按 create_time DESCcreate_pool_record:写入操作记录get_pool_record:按 ID 查询重写 crud/crm/pool_rule.py 和 tasks/customer_pool.py。
在 api/crm.py 中添加公海池相关路由。
/customer/pool/list/customer/pool/record/list, /customer/pool/record/detail/customer/pool/rule/list|detail|add|update|delete|updateStatus|execute将公海池相关字典从 sx.sql 导入 shanxia2.0。
sys_dict_data 是否有 crm_pool_* 字典端到端验证所有公海池功能。
07-verify.md| 步骤 | 类型 | 目标 | 涉及文件 | 预计代码量 |
|---|---|---|---|---|
| 1 | 清理 | 删除不规范代码 | 10+ 文件 | -800行 |
| 2 | 前端拷贝 | 拷贝 pool/index.vue | 1 文件 | ~350行 |
| 3 | 前端拷贝 | 拷贝弹窗组件 | 2 文件 | ~200行 |
| 4 | 前端适配 | script 部分适配 | 2 文件 | ~100行改动 |
| 5 | 前端适配 | template/style 适配 | 1 文件 | ~150行改动 |
| 6 | 前端适配 | 弹窗适配 | 2 文件 | ~60行改动 |
| 7 | 前端新增 | 规则管理页面 | 3 文件 | ~400行 |
| 8 | 后端 | DDL + Model | 2 文件 | ~120行 |
| 9 | 后端 | Schema | 2 文件 | ~120行 |
| 10 | 后端 | 操作记录 CRUD | 1 文件 | ~100行 |
| 11 | 后端 | 规则 CRUD + 任务 | 2 文件 | ~250行 |
| 12 | 后端 | API 路由 | 1 文件 | ~200行 |
| 13 | 数据 | 字典导入 | 1 文件 | ~20行 |
| 14 | 验证 | 整体验证 | — | — |
| 合计 | ~1170行 |