5.3 KiB
入库放行审核 · 待审核 / 已审核双 Tab
日期:2026-07-16
状态:已确认
模块:细胞存储 / 质检 → 入库放行审核
关联:docs/superpowers/specs/2026-05-23-storage-release-review-design.md
界面模式:P22(审核列表)+ 样本接收式panel-pill-tabs
参考页:web-admin/src/views/quality-inspection/sample-reception/index.vue
1. 背景与目标
现状
「入库放行审核」列表将所有记录(待审核 + 已审核)放在同一表格中。筛选区虽有「审核结论」,但选项「待审核」绑定空字符串,请求时被转成 undefined,后端不会按空结论过滤,实际无法单独查看待办。
目标
将列表拆成两个独立 Tab:
- 待审核:
review_conclusion为空的记录(审核员日常主工作台) - 已审核:已有结论(通过
tg+ 不通过btg),可用「审核结论」再筛
默认进入「待审核」。分页与总数按当前 Tab 正确计算。
范围外
- 不改审核弹窗、查看弹窗、入库业务规则
- 不新增菜单、不拆独立路由页
- 不做 Tab 角标数量(后续可单独立项)
2. 需求确认记录
| 维度 | 决定 |
|---|---|
| Tab 结构 | 两个:待审核 | 已审核(已审核含通过 + 不通过) |
| 已审核改结论 | 仍可点「审核」修改(与现网一致) |
| 筛选区 | 两 Tab 筛选项完全相同;已审核可用「审核结论」再筛 |
| 默认 Tab | 进入页面默认「待审核」 |
| 实现路径 | 前端双 Tab + 列表 API 增加 reviewPhase(方案 1) |
3. UI 与交互
3.1 布局顺序
与样本接收一致:
panel-top 标题 → pill Tabs(panel-pill-tabs)→ 筛选区 → 工具栏 → 表格 + 分页
3.2 Tabs
| key | 文案 | 默认 |
|---|---|---|
pending |
待审核 | ✓ |
reviewed |
已审核 |
3.3 切换 Tab
- 页码回到 1
- 清空表格勾选
- 保留当前筛选条件
- 重新请求列表(带对应
reviewPhase)
3.4 筛选区(两 Tab 相同)
字段:关键词、协议类别、审核结论、入库状态。
「审核结论」下拉:
- 去掉无效的「待审核」选项(空值曾被当成全部)
- 保留:清空 = 当前 Tab 内「全部」+ 通过 / 不通过
- 待审核 Tab 下若选通过/不通过,与阶段叠加,结果为空属预期
3.5 工具栏与操作列(两 Tab 相同)
- 工具栏:已选 N 项、批量审核、批量入库
- 行操作:查看、审核;通过且待入库时显示「样本入库」
- 已审核 Tab 仍可「审核」改结论
- 「批量入库」仅当所选行均为通过且待入库时可点(待审核 Tab 下通常为禁用)
3.6 审核提交后
- 刷新当前 Tab 列表,不强制跳 Tab
- 从待审核提交后,该行自然从待审核消失;需到已审核查看
4. API 与数据流
4.1 接口
沿用 GET /web/admin/storage-release-reviews,新增可选查询参数:
| 参数 | 类型 | 说明 |
|---|---|---|
reviewPhase |
pending | reviewed |
Tab 阶段;缺省时不按阶段过滤(与现网兼容) |
其余参数不变:page、pageSize、keyword、receptionSource、reviewConclusion、storageStatus。
4.2 过滤语义
在租户 / 软删 / 数据权限 / 其它筛选项之上叠加:
| reviewPhase | SQL 语义 |
|---|---|
pending |
review_conclusion IS NULL OR review_conclusion = '' |
reviewed |
review_conclusion IS NOT NULL AND review_conclusion != '' |
再叠加:keyword、receptionSource、reviewConclusion(仅 tg/btg)、storageStatus。
非法 reviewPhase:忽略该参数,按无阶段处理(避免误伤调用方)。
4.3 前端请求约定
- 待审核 Tab:始终传
reviewPhase=pending - 已审核 Tab:始终传
reviewPhase=reviewed reviewConclusion仅在有明确值(通过/不通过)时传入;不再用空字符串表示「待审核」
4.4 不变接口
详情、单条/批量审核、单条/批量入库接口与行为不变。
5. 改动清单
| 层 | 文件 | 改动 |
|---|---|---|
| Backend API | backend/app/api/storage_release_review.py |
增加 reviewPhase Query,传入 CRUD |
| Backend CRUD | backend/app/crud/storage_release_review.py |
list_reviews 按阶段过滤 |
| Frontend API | web-admin/src/api/storage-release-review.ts |
列表参数增加 reviewPhase |
| Frontend 页 | web-admin/src/views/quality-inspection/storage-release-review/index.vue |
pill Tabs、切 Tab 刷新、下拉去掉无效「待审核」、请求带 reviewPhase |
不改:StorageReleaseReviewDialog.vue、StorageReleaseViewDialog.vue、菜单/路由、表结构。
6. 验收要点
- 进入页面默认「待审核」,仅无结论记录;分页总数正确
- 「已审核」仅有通过/不通过;可用「审核结论」再筛
- 两 Tab 筛选字段一致;切 Tab 保留筛选、重置页码与勾选
- 待审核提交审核后,该行从待审核消失,出现在已审核
- 已审核仍可「审核」改结论;通过且待入库仍可入库 / 批量入库
- 不传
reviewPhase时列表行为与改前兼容
7. 非目标
- Tab 角标数量
- 独立菜单或独立列表页
- 修改审核/入库业务规则与弹窗结构