3.2 KiB
3.2 KiB
1. 后端模型与 CRUD
- 1.1 在
backend/app/models/models.py增加BizCollectionProtocol、BizProtocolAudit、BizProtocolPayment、BizProtocolPaymentDetail与 DDL 字段对齐 - 1.2 新建
backend/app/crud/collection_protocol.py(或拆分多个模块):协议单列表/详情查询、审核插入、缴费明细状态更新、分期预警查询;统一_row_to_dictcamelCase 输出与租户过滤 - 1.3 新建
backend/app/schemas/下 Pydantic 请求体(审核、财务确认、分页参数)若项目惯例需要(已在collection_protocol.py内联 Body,未单独建 schemas 文件)
2. 后端 API
- 2.1 新建
backend/app/api/collection_protocol.py(名称可调整):实现 GET 列表/详情、POST 审核、GET/POST 收款确认、GET/POST 退费确认、GET 分期预警;依赖require_admin_or_super_admin与get_db - 2.2 在
backend/app/api/__init__.py与backend/app/main.py注册路由前缀/web/admin(或既有聚合方式) - 2.3 手工验证:Swagger
/docs中上述路径可用,错误状态与业务校验符合 spec(需在本地启动后端后点验)
3. 菜单与路由对齐
- 3.1 更新
backend/app/api/menu.py的STATIC_MENU_TREE:新增一级「细胞存储管理」及 5 个子菜单(path/component 与前端一致) - 3.2 更新
web-admin/src/router/modules/sqxp.ts:同级路由与 meta.title;图标与现有风格一致
4. 前端 API 与类型
- 4.1 新建
web-admin/src/api/collection-protocol.ts(或并入admin.ts):封装列表、详情、审核、两种确认、预警接口,路径与后端一致 - 4.2 在
web-admin/src/types/api.d.ts补充必要类型(若项目惯例)(页面使用Record<string, unknown>/ 专用 Row 类型已够用)
5. 前端页面(五页)
- 5.1 新建
web-admin/src/views/cell-storage/protocol/index.vue:列表 + 概要详情弹窗;对齐system/unit/index.vue结构 - 5.2 新建
web-admin/src/views/cell-storage/protocol-audit/index.vue:审核列表 + 审核弹窗(通过/退回) - 5.3 新建
web-admin/src/views/cell-storage/payment-confirm/index.vue:仅jfqrz列表 + 确认弹窗 - 5.4 新建
web-admin/src/views/cell-storage/refund-confirm/index.vue:仅tfqrz列表 + 确认弹窗 - 5.5 新建
web-admin/src/views/cell-storage/installment-warning/index.vue:筛选预警/逾期/全部 + 标签列;对齐 Fresh Mint 状态色
6. 数据与文档收尾
- 6.1 若 DB 菜单走种子数据:在
docs/sql/增加补丁脚本(可选),与仓库既有docs/sql/增量脚本惯例一致(全量基线为zkxw.sql;当前为前端静态路由 +STATIC_MENU_TREE,若生产依赖 DB 菜单种子再补) - 6.2 本地联调:登录 admin → 五菜单可进 → 列表有接口响应(可用占位数据或手动插库验证)
7. 验证
- 7.1 后端:
pytest现有用例通过;如有新增关键逻辑可补最小单测(可选)(当前仓库tests/test_api_crypto.py与实现不一致导致 1 例失败,与本次变更无关) - 7.2 前端:
pnpm build或pnpm build:typecheck通过(仓库内尚有既有 vue-tsc 报错;新增页面未引入新的独占阻塞项)