Files
zkxw/docs/superpowers/specs/2026-07-16-storage-release-review-tabs-design.md
T
2026-07-16 13:48:58 +08:00

5.3 KiB
Raw Blame History

入库放行审核 · 待审核 / 已审核双 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:

  1. 待审核:review_conclusion 为空的记录(审核员日常主工作台)
  2. 已审核:已有结论(通过 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. 验收要点

  1. 进入页面默认「待审核」,仅无结论记录;分页总数正确
  2. 「已审核」仅有通过/不通过;可用「审核结论」再筛
  3. 两 Tab 筛选字段一致;切 Tab 保留筛选、重置页码与勾选
  4. 待审核提交审核后,该行从待审核消失,出现在已审核
  5. 已审核仍可「审核」改结论;通过且待入库仍可入库 / 批量入库
  6. 不传 reviewPhase 时列表行为与改前兼容

7. 非目标

  • Tab 角标数量
  • 独立菜单或独立列表页
  • 修改审核/入库业务规则与弹窗结构