docs: add design for reimburse apply page size options pilot
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
9fcb9270e6
commit
38c830ef99
1 file changed
+50
@@ -0,0 +1,50 @@
|
||||
# 报销申请列表 · 扩大每页条数选项(试点)
|
||||
|
||||
**日期:** 2026-08-21
|
||||
**状态:** 设计已确认,待实现
|
||||
**范围:** 仅【报销申请】列表页试点;合适后再推广其它列表
|
||||
|
||||
## 背景
|
||||
|
||||
- 列头过滤是**当前页前端过滤**,不能像 Excel 那样滤全量。
|
||||
- 用户希望通过更大的「每页条数」在单页加载更多行,再配合列头过滤使用。
|
||||
- 曾考虑「全部」分批拉取,因进度体验与大数据量风险已放弃。
|
||||
- OpenSpec `api-conventions` 规定分页 `pageSize` 全局最大 **100**(超限 422)。本试点**不修改**该全局规范,仅对报销申请「我的列表」接口放宽。
|
||||
|
||||
## 目标
|
||||
|
||||
1. 分页选项改为:`10 / 20 / 30 / 50 / 100 / 200 / 500`
|
||||
2. 后端对应列表接口显式允许 `pageSize` 最大 **500**;`> 500` 仍返回 **422**
|
||||
3. 不做「全部」、不做分批拼接、不改列头过滤语义
|
||||
|
||||
## 方案(已选)
|
||||
|
||||
**只改【报销申请】前端页 + `GET /reimburses/my` 上限到 500。**
|
||||
|
||||
| 项 | 说明 |
|
||||
|----|------|
|
||||
| 前端 | `web-admin/src/views/bx/reimburse/apply/index.vue`:`el-pagination` 的 `:page-sizes` 改为 `[10, 20, 30, 50, 100, 200, 500]` |
|
||||
| 数据流 | 仍用 `useServerPaged` + `reimburseApi.my`;换页大小时一次请求、沿用现有 `loading` |
|
||||
| 后端 | `backend/app/api/bx/reimburse.py` 的 `my_reimburses`:`pageSize` 增加显式校验 `ge=1, le=500`(建议 `Query(..., ge=1, le=500)`) |
|
||||
| 规范 | **不改** OpenSpec 全局「最大 100」;本接口为试点例外 |
|
||||
|
||||
说明:当前 `my_reimburses` 的 `pageSize` **尚未**声明 `le=100`,大页码有时可能已能通过;本改动将上限**显式**定为 500,避免契约模糊,也防止后续全局中间件/规范收紧时行为不一致。
|
||||
|
||||
## 非目标
|
||||
|
||||
- 不改其它报销列表(审批、备用金、发放等)及其接口
|
||||
- 不改全局 OpenSpec `pageSize` 上限
|
||||
- 不引入「全部」选项、分批加载进度条
|
||||
- 不改变列头客户端过滤「仅当前页」行为
|
||||
- 不调整默认每页条数(仍沿用 `useServerPaged` / `DEFAULT_LIST_PAGE_SIZE`)
|
||||
|
||||
## 验收
|
||||
|
||||
- 可选 `10~500`,列表行数与分页文案(`显示 x-y / total`)正确
|
||||
- `pageSize=501`(或更大)→ **422**
|
||||
- 切换每页条数后回到第 1 页并重新请求(现有 `onSizeChange` 行为保持)
|
||||
- 列头过滤仍只过滤当前页已加载行
|
||||
|
||||
## 后续(非本次)
|
||||
|
||||
试点满意后,可按相同档位推广其它列表,并评估是否将 OpenSpec 全局上限从 100 调整为 500。
|
||||
Reference in new issue
Block a user