4.0 KiB
4.0 KiB
ADDED Requirements
Requirement: Per-row stock log dialog
耗材/试剂管理列表每行操作列 SHALL 有一个「变动记录」按钮,点击弹出 Dialog,标题显示物料名称,列表仅展示该物料的变动记录,支持分页。
Scenario: Open stock log for single material
- WHEN 用户点击耗材A行的「变动记录」按钮
- THEN 弹出 Dialog,标题为"耗材A — 变动记录",列表按时间倒序展示该耗材的所有变动记录
Scenario: Stock log dialog pagination
- WHEN 变动记录超过 20 条
- THEN Dialog 内列表支持分页
Requirement: Tab view for all stock logs
耗材管理页面和试剂管理页面 SHALL 各自有一个顶部 Tab「全部变动记录」,切换后展示所有耗材(或试剂)的汇总变动记录列表,支持按物料名称/编码、变动类型、时间范围筛选,支持分页。
Scenario: Switch to all stock logs tab
- WHEN 用户点击耗材管理页面顶部「全部变动记录」Tab
- THEN 切换到全部变动记录视图,展示所有耗材的变动记录汇总列表
Scenario: Filter by material name
- WHEN 用户在全部变动记录 Tab 中搜索物料名称"培养皿"
- THEN 列表仅展示物料名称包含"培养皿"的变动记录
Scenario: Filter by change type
- WHEN 用户筛选变动类型为"出库"
- THEN 列表仅展示 change_type=use 的变动记录(含 manual_out 和 step_save)
Scenario: Filter by time range
- WHEN 用户选择时间范围 2026-01-01 至 2026-03-31
- THEN 列表仅展示该时间范围内的变动记录
Requirement: Stock log display fields
变动记录列表(弹窗和 Tab 视图)SHALL 展示以下字段:
- 物料编码(material_code)
- 物料名称(material_name)
- 变动类型(change_type):入库/出库/步骤扣减,以
<el-tag>展示 - 变动数量(change_qty):正数绿色,负数红色
- 变动前库存(stock_before)
- 变动后库存(stock_after)
- 来源(source_type):手动入库/手动出库/步骤保存,以
<el-tag>展示 - 关联任务(task_no):步骤扣减时展示任务编号
- 领用人(receiver):手动出库时展示
- 用途(purpose):手动出库时展示
- 操作人(create_by_name)
- 操作时间(create_time)
Scenario: Manual out log display
- WHEN 变动记录为手动出库类型
- THEN 展示领用人、用途、操作人、时间,来源显示"手动出库"
Scenario: Step save log display
- WHEN 变动记录为步骤保存类型
- THEN 展示关联任务编号、操作人、时间,来源显示"步骤扣减",不展示领用人/用途
Requirement: Stock log API endpoints
后端 SHALL 提供以下变动记录 API:
GET /web/admin/consumables/{id}/stock-logs— 单个耗材变动记录(分页)GET /web/admin/consumables/stock-logs— 全部耗材变动记录(分页,支持筛选)GET /web/admin/reagents/{id}/stock-logs— 单个试剂变动记录(分页)GET /web/admin/reagents/stock-logs— 全部试剂变动记录(分页,支持筛选)
Scenario: Single material stock log API
- WHEN 前端请求
GET /web/admin/consumables/{id}/stock-logs?page=1&pageSize=20 - THEN 返回该耗材的变动记录列表和总数
Scenario: All stock logs API with filters
- WHEN 前端请求
GET /web/admin/consumables/stock-logs?keyword=培养皿&changeType=out&startTime=2026-01-01&endTime=2026-03-31 - THEN 返回筛选后的变动记录列表和总数
Requirement: Status field display in list
耗材/试剂管理列表的状态列 SHALL 使用 <el-tag> 展示:启用显示 success 类型,停用显示 info 类型。
Scenario: Enabled status display
- WHEN 耗材状态为启用(status='1')
- THEN 列表显示绿色
<el-tag type="success" size="small">文本"启用"
Scenario: Disabled status display
- WHEN 耗材状态为停用(status='0')
- THEN 列表显示灰色
<el-tag type="info" size="small">文本"停用"