feat: 统一后端分页查询与前端服务层适配

后端新增通用分页模块,为报销单、员工、预算、agent 资产等
端点统一接入分页参数和游标查询,优化 repository 层分页实
现,前端服务层适配分页响应结构,完善预算图表和全局样式,
优化侧边栏和企业选择器组件,引入 Element Plus 插件注册。
This commit is contained in:
caoxiaozhu
2026-05-29 14:11:06 +08:00
parent e080105f9f
commit 678f64d772
43 changed files with 1863 additions and 378 deletions

View File

@@ -0,0 +1,78 @@
# 票据夹功能 TODO
更新时间2026-05-29
## 阶段一:调研与契约
- [x] 梳理现有单据中心导航、列表样式和详情入口。[CONCEPT: 方案设计]
证据:已确认 `DocumentsCenterView.vue``useNavigation.js``AppShellRouteView.vue` 是前端入口。
- [x] 梳理现有 OCR 和报销附件存储链路。[CONCEPT: 背景与问题]
证据:已确认 `/ocr/recognize` 只临时识别;报销明细附件由 `expense_claim_attachment_*` 写入 `expense_claims` 存储。
- [x] 确定本轮不做数据库结构变更,先用票据文件资产和元数据 JSON 完成闭环。[CONCEPT: 目标与非目标]
证据:避免新增迁移,降低本轮开发风险。
## 阶段二:文档
- [x] 创建 `document/development/receipt-folder/CONCEPT.md`。[CONCEPT: 全文]
证据:本文档已落地。
- [x] 创建 `document/development/receipt-folder/TODO.md`。[CONCEPT: 测试方案]
证据:本文档已落地。
## 阶段三:后端票据资产层
- [ ] 新增 `schemas/receipt_folder.py`,定义列表项、详情、字段更新和删除响应。[CONCEPT: 后端]
- [ ] 新增 `services/receipt_folder.py`,负责源文件保存、元数据读写、预览解析、列表过滤和安全路径校验。[CONCEPT: 票据持久化]
- [ ] 新增 `api/v1/endpoints/receipt_folder.py`,暴露列表、详情、更新、删除、预览和源文件接口。[CONCEPT: 后端]
- [ ]`api/v1/router.py` 注册票据夹接口。[CONCEPT: 后端]
- [ ] 改造 `/ocr/recognize`OCR 后保存源文件并把 `receipt_id` 等可选字段带回前端。[CONCEPT: OCR 改造]
## 阶段四:前端票据夹页面
- [ ] 新增 `services/receiptFolder.js`,封装票据夹接口和 Blob 文件读取。[CONCEPT: 前端]
- [ ] 新增 `ReceiptFolderView.vue`,实现列表、状态页签、搜索、一键关联入口和详情切换。[CONCEPT: 列表]
- [ ] 新增 `receipt-folder-view.css`,复用单据中心紧凑企业级视觉,避免继续拉大现有 `DocumentsCenterView.vue`。[CONCEPT: 列表]
- [ ]`useNavigation.js` 增加 `receiptFolder`,并放在 `documents` 后面。[CONCEPT: 前端]
- [ ]`accessControl.js` 增加默认可见权限和默认路由顺序。[CONCEPT: 前端]
- [ ]`AppShellRouteView.vue` 渲染票据夹页面,并让页面可打开报销对话。[CONCEPT: 一键关联票据]
## 阶段五:一键关联流程
- [ ] 实现未关联票据多选弹窗第一步。[CONCEPT: 一键关联票据]
- [ ] 实现未提交草稿选择和“新建报销单”选择第二步。[CONCEPT: 一键关联票据]
- [ ] 从票据源文件接口取回 Blob 并构造 `File` 对象传给报销对话。[CONCEPT: 对话衔接]
- [ ] 选择已有草稿时,打开对话并带入草稿单号和关联提示。[CONCEPT: 一键关联票据]
- [ ] 选择新建报销单时,打开对话并带入基于票据新建的提示。[CONCEPT: 一键关联票据]
## 阶段六:测试与验证
- [ ] 补充后端票据夹服务和接口测试,超时时间控制在 60s 内。[CONCEPT: 测试方案]
- [ ] 补充前端导航和票据夹视图模型测试。[CONCEPT: 测试方案]
- [ ] 运行前端构建或定向测试。[CONCEPT: 指标与验收]
- [ ] 在 Docker `x-financial-main``/app` 内运行后端定向测试。[CONCEPT: 测试方案]
- [ ] 手动核对侧边栏位置、列表密度、详情预览和关联弹窗。[CONCEPT: 指标与验收]
## 阶段七:收口
- [ ] 回看 `CONCEPT.md` 验收标准,确认已实现项均有证据。[CONCEPT: 指标与验收]
- [ ] 更新本 TODO 的完成状态和验证记录。[CONCEPT: 测试方案]