Files
zkxw/openspec/changes/cell-storage-protocol-modules/tasks.md
T
2026-05-17 08:36:37 +08:00

40 lines
3.2 KiB
Markdown

## 1. 后端模型与 CRUD
- [x] 1.1 在 `backend/app/models/models.py` 增加 `BizCollectionProtocol`、`BizProtocolAudit`、`BizProtocolPayment`、`BizProtocolPaymentDetail` 与 DDL 字段对齐
- [x] 1.2 新建 `backend/app/crud/collection_protocol.py`(或拆分多个模块):协议单列表/详情查询、审核插入、缴费明细状态更新、分期预警查询;统一 `_row_to_dict` camelCase 输出与租户过滤
- [x] 1.3 新建 `backend/app/schemas/` 下 Pydantic 请求体(审核、财务确认、分页参数)若项目惯例需要(已在 `collection_protocol.py` 内联 Body,未单独建 schemas 文件)
## 2. 后端 API
- [x] 2.1 新建 `backend/app/api/collection_protocol.py`(名称可调整):实现 GET 列表/详情、POST 审核、GET/POST 收款确认、GET/POST 退费确认、GET 分期预警;依赖 `require_admin_or_super_admin` 与 `get_db`
- [x] 2.2 在 `backend/app/api/__init__.py` 与 `backend/app/main.py` 注册路由前缀 `/web/admin`(或既有聚合方式)
- [ ] 2.3 手工验证:Swagger `/docs` 中上述路径可用,错误状态与业务校验符合 spec(需在本地启动后端后点验)
## 3. 菜单与路由对齐
- [x] 3.1 更新 `backend/app/api/menu.py` 的 `STATIC_MENU_TREE`:新增一级「细胞存储管理」及 5 个子菜单(path/component 与前端一致)
- [x] 3.2 更新 `web-admin/src/router/modules/sqxp.ts`:同级路由与 meta.title;图标与现有风格一致
## 4. 前端 API 与类型
- [x] 4.1 新建 `web-admin/src/api/collection-protocol.ts`(或并入 `admin.ts`):封装列表、详情、审核、两种确认、预警接口,路径与后端一致
- [x] 4.2 在 `web-admin/src/types/api.d.ts` 补充必要类型(若项目惯例)(页面使用 `Record<string, unknown>` / 专用 Row 类型已够用)
## 5. 前端页面(五页)
- [x] 5.1 新建 `web-admin/src/views/cell-storage/protocol/index.vue`:列表 + 概要详情弹窗;对齐 `system/unit/index.vue` 结构
- [x] 5.2 新建 `web-admin/src/views/cell-storage/protocol-audit/index.vue`:审核列表 + 审核弹窗(通过/退回)
- [x] 5.3 新建 `web-admin/src/views/cell-storage/payment-confirm/index.vue`:仅 `jfqrz` 列表 + 确认弹窗
- [x] 5.4 新建 `web-admin/src/views/cell-storage/refund-confirm/index.vue`:仅 `tfqrz` 列表 + 确认弹窗
- [x] 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 报错;新增页面未引入新的独占阻塞项)