Commit 6c31a476 authored by liguangyu06's avatar liguangyu06
Browse files

同步基础管理与统计报表用例文档,并更新 Playwright 脚本与 PO。

对齐 CSV/MD/测试点与现网列名及组合查询;补充厂商资质子 Tab 与基础模块复跑脚本。
parent aa8987ce
...@@ -10,112 +10,79 @@ ...@@ -10,112 +10,79 @@
**自动化框架**:Playwright + TypeScript(`tests/spd/vendor-audit.spec.ts`,依赖 `auth.setup` 登录态) **自动化框架**:Playwright + TypeScript(`tests/spd/vendor-audit.spec.ts`,依赖 `auth.setup` 登录态)
**通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 授权变更初审」权限。 **通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 授权变更初审」权限。
**页面约定**:整页渲染,**无报表 iframe**。 **页面约定**:整页渲染,**无报表 iframe**;**状态**筛选默认值为 **通过**。
**写操作**:审批写操作只打开详情后返回,不确认通过/驳回/提交。 **查询默认值**:除 **VENDOR-AF1-001**(验证重置恢复默认)外,用例前置须 **先清空查询条件默认值**(含「状态」=通过、制单日期区间等进页自带项);自动化在 `open()` 中执行 `clearQueryConditionDefaults()`。
**动态取数**:默认查询后从首行读取 `${sampleOrderNo}`;禁止写死单号;mock:`__NOT_EXIST_ORDER__99999`。 **动态取数**:mock 单号:`__NOT_EXIST_ORDER__99999`。
--- ---
## 基础设置 · 厂商管理 ## 基础设置 · 厂商管理
### 授权变更初审 · 页面进入 ### 授权变更初审 · 筛选与列表
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-AF1-001】【TP_VENDOR_AF1_001】菜单进入授权变更初审页 ##### 【P1】【TC-UI-VENDOR-AF1-001】【TP_VENDOR_AF1_013】重置恢复默认
- 前置条件:已登录且具备厂商管理权限 - 前置条件:已进入授权变更初审页;状态筛选默认值为「通过」
- 操作步骤: - 操作步骤:
1. 按菜单「基础设置 → 厂商管理 → 授权变更初审」进入 1. 确认「状态」筛选默认值为「通过」
2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/authAudit` 2. 填写其它筛选项后点击「重 置」
3. 断言可见「查 询」「重 置」及制单日期筛选 3. 断言文本条件清空、「状态」恢复为「通过」、列表按默认规则刷新
- 自动化断言:与 CSV `VENDOR-AF1-001` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF1-001` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
进入授权变更初审页;不误入其它变更审批菜单。 重置成功;状态仍为「通过」。
--- ---
### 授权变更初审 · 筛选与列表 #### 异常验证点
#### 功能验证点
##### 【P0】【TC-UI-VENDOR-AF1-002】【TP_VENDOR_AF1_009】默认查询列表有数据或空态明确 ##### 【P1】【TC-UI-VENDOR-AF1-002】【TP_VENDOR_AF1_017】无匹配空态(mock反例)
- 前置条件:已进入授权变更初审页 - 前置条件:已进入授权变更初审页;状态筛选默认值为「通过」
- 操作步骤: - 操作步骤:
1. 点击「查 询」并等待列表稳定 1. 确认「状态」筛选默认值为「通过」
2. 断言出现数据行或空态明确 2. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
3. 断言空态且分页总数为 0
- 自动化断言:与 CSV `VENDOR-AF1-002` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF1-002` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
查询无报错;有数据时分页 N≥1。 无匹配时不报错;总数为 0。
---
##### 【P0】【TC-UI-VENDOR-AF1-003】【TP_VENDOR_AF1_010】按单号筛选
- 前置条件:列表至少 1 条且单号非空
- 操作步骤:
1. 从首行读取 `${sampleOrderNo}` 取关键字
2. 单号填入关键字并「查 询」
3. 断言结果行「单号」包含关键字
- 自动化断言:与 CSV `VENDOR-AF1-003` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果
单号列与条件一致。
--- ---
##### 【P0】【TC-UI-VENDOR-AF1-004】【TP_VENDOR_AF1_011】按进院供应商筛选 ##### 【P1】【TC-UI-VENDOR-AF1-004】【TP_VENDOR_AF1_019】筛选区展开与收起正常使用
- 前置条件:列表至少 1 条 - 前置条件:已进入授权变更初审页;状态筛选默认值为「通过」;页面具备展开/收起按钮
- 操作步骤: - 操作步骤:
1. 按样本填写或选择「进院供应商」并查询 1. 点击展开/收起切换筛选区
2. 断言结果列与条件匹配 2. 断言收起区字段隐藏、展开后可见,且收起后再展开保留已填单号
- 自动化断言:与 CSV `VENDOR-AF1-004` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF1-004` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
筛选条件生效。 筛选区展开收起正常且条件不丢失。
--- ---
##### 【P1】【TC-UI-VENDOR-AF1-005】【TP_VENDOR_AF1_012】重置恢复默认 ### 授权变更初审 · 列设置
- 前置条件:已进入授权变更初审页 #### 功能验证点
- 操作步骤:
1. 填写筛选项后点击「重 置」
2. 断言文本条件清空、列表按默认规则刷新
- 自动化断言:与 CSV `VENDOR-AF1-005` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果
重置成功。
---
#### 异常验证点
##### 【P1】【TC-UI-VENDOR-AF1-006】【TP_VENDOR_AF1_016】无匹配空态(mock反例) ##### 【P0】【TC-UI-VENDOR-AF1-003】【TP_VENDOR_AF1_020】列设置取消勾选后再勾选列表列恢复
- 前置条件:已进入授权变更初审页 - 前置条件:已进入授权变更初审页;状态默认「通过」;列表已查询出数据
- 操作步骤: - 操作步骤:
1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询 1. 打开列设置,取消勾选一列非核心列后确认表头隐藏
2. 断言空态且分页总数为 0 2. 再次勾选该列后确认表头恢复
- 自动化断言:与 CSV `VENDOR-AF1-006` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF1-003` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
无匹配时不报错;总数为 0。 列设置 toggle 后列表列展示与勾选状态一致。
---
#### 功能验证点
--- ---
...@@ -123,39 +90,34 @@ ...@@ -123,39 +90,34 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-AF1-005】【TP_VENDOR_AF1_015】点击详情进入详情页后返回
--- - 前置条件:已进入授权变更初审页;状态默认「通过」;存在含「详情」的行
### 授权变更初审 · 筛选与列表
#### 边界验证点
##### 【P2】【TC-UI-VENDOR-AF1-007】【TP_VENDOR_AF1_015】制单日期起止同一天
- 前置条件:已进入授权变更初审页
- 操作步骤: - 操作步骤:
1. 制单日期起止选同一天并查询 1. 点击行内「详 情」
2. 断言仅返回该日单据或空态明确 2. 断言详情层可见且含单号片段
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 返回/关闭且不提交审批
- 自动化断言:与 CSV `VENDOR-AF1-005` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
同日区间行为明确。 详情只读可返回;列表状态不变。
--- ---
### 授权变更初审 · 详情 ### 授权变更初审 · 组合查询
#### 集成验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-AF1-008】【TP_VENDOR_AF1_018】与终审单据衔接不串单 ##### 【P0】【TC-UI-VENDOR-AF1-006】【TP_VENDOR_AF1_021】首行九项组合查询
- 前置条件:已进入授权变更初审页 - 前置条件:已进入授权变更初审页;状态默认「通过」;列表至少有 1 条数据
- 操作步骤: - 操作步骤:
1. 记录本页某单号后切换到对应终审菜单 1. 点选首行
2. 断言同业务单据状态流转合理、不串到非本业务菜单 2. 用首行制单日期、单号、筛选项「销售商(自定义)」(取值列「销售商(自定义)名称」)、预转供应商、状态、变更类型、原供应商、医院ID、医院名称填入筛选并查询
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 断言结果行单号与首行一致
- 自动化断言:与 CSV `VENDOR-AF1-006` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
初审/终审衔接正确。 组合查询结果与首行关键字段匹配。
...@@ -7,115 +7,110 @@ ...@@ -7,115 +7,110 @@
**元素扫描**:`data/scan/vendor-auth-final-elements.json`(40 项) **元素扫描**:`data/scan/vendor-auth-final-elements.json`(40 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-004.md` **关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-004.md`
**版本**:2026-09-30 **版本**:2026-09-30
**自动化框架**:Playwright + TypeScript(`tests/spd/vendor-audit.spec.ts`,依赖 `auth.setup` 登录态) **自动化框架**:Playwright + TypeScript(`tests/spd/` 下 vendor-audit.spec.ts,依赖 `auth.setup` 登录态)
**通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 授权变更终审」权限。 **通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 授权变更终审」权限。
**页面约定**:整页渲染,**无报表 iframe**。 **页面约定**:整页渲染,**无报表 iframe**。
**写操作**:审批写操作只打开详情后返回,不确认通过/驳回/提交。 **写操作**:审批写操作只打开详情后返回,不确认通过/驳回/提交。
**查询默认值**:除 **VENDOR-AF2-001**(验证重置恢复默认)外,用例前置须 **先清空查询条件默认值**(含制单日期区间、下拉默认项等);自动化在 `open()` 中执行 `clearQueryConditionDefaults()`。
**动态取数**:默认查询后从首行读取 `${sampleOrderNo}`;禁止写死单号;mock:`__NOT_EXIST_ORDER__99999`。 **动态取数**:默认查询后从首行读取 `${sampleOrderNo}`;禁止写死单号;mock:`__NOT_EXIST_ORDER__99999`。
--- ---
## 基础设置 · 厂商管理 ## 基础设置 · 厂商管理
### 授权变更终审 · 页面进入 ### 授权变更终审 · 筛选与列表
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-AF2-001】【TP_VENDOR_AF2_001】菜单进入授权变更终审页 ##### 【P1】【TC-UI-VENDOR-AF2-001】【TP_VENDOR_AF2_012】重置恢复默认
- 前置条件:已登录且具备厂商管理权限 - 前置条件:已进入授权变更终审页
- 操作步骤: - 操作步骤:
1. 按菜单「基础设置 → 厂商管理 → 授权变更终审」进入 1. 填写筛选项后点击「重 置」
2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/authAuditFinal` 2. 断言文本条件清空、列表按默认规则刷新
3. 断言可见「查 询」「重 置」及制单日期筛选
- 自动化断言:与 CSV `VENDOR-AF2-001` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF2-001` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
进入授权变更终审页;不误入其它变更审批菜单。 重置成功。
--- ---
### 授权变更终审 · 筛选与列表 #### 异常验证点
#### 功能验证点
##### 【P0】【TC-UI-VENDOR-AF2-002】【TP_VENDOR_AF2_009】默认查询列表有数据或空态明确 ##### 【P1】【TC-UI-VENDOR-AF2-002】【TP_VENDOR_AF2_016】无匹配空态(mock反例)
- 前置条件:已进入授权变更终审页 - 前置条件:已进入授权变更终审页
- 操作步骤: - 操作步骤:
1. 点击「查 询」并等待列表稳定 1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
2. 断言出现数据行或空态明确 2. 断言空态且分页总数为 0
- 自动化断言:与 CSV `VENDOR-AF2-002` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF2-002` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
查询无报错;有数据时分页 N≥1。 无匹配时不报错;总数为 0。
--- ---
##### 【P0】【TC-UI-VENDOR-AF2-003】【TP_VENDOR_AF2_010】按单号筛选 ##### 【P1】【TC-UI-VENDOR-AF2-003】【TP_VENDOR_AF2_011】筛选区展开与收起正常使用
- 前置条件:列表至少 1 条且单号非空 - 前置条件:已进入授权变更终审页;页面具备展开/收起
- 操作步骤: - 操作步骤:
1. 从首行读取 `${sampleOrderNo}` 取关键字 1. 切换展开/收起
2. 单号填入关键字并「查 询」 2. 断言收起区字段隐藏、展开后可见
3. 断言结果行「单号」包含关键字 3. 收起后再展开保留已填单号
- 自动化断言:与 CSV `VENDOR-AF2-003` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF2-003` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
单号列与条件一致。 筛选区展开收起正常且条件不丢失。
--- ---
##### 【P0】【TC-UI-VENDOR-AF2-004】【TP_VENDOR_AF2_011】按进院供应商筛选 ##### 【P1】【TC-UI-VENDOR-AF2-007】【TP_VENDOR_AF2_009】分页翻至第 2 页
- 前置条件:列表至少 1 条 - 前置条件:列表总条数足够翻页
- 操作步骤: - 操作步骤:
1. 按样本填写或选择「进院供应商」并查询 1. 默认查询后翻到第 2 页
2. 断言结果列与条件匹配 2. 断言当前页为 2 且列表有数据
- 自动化断言:与 CSV `VENDOR-AF2-004` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF2-007` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
筛选条件生效。 第 2 页可加载。
--- ---
##### 【P1】【TC-UI-VENDOR-AF2-005】【TP_VENDOR_AF2_012】重置恢复默认 ##### 【P1】【TC-UI-VENDOR-AF2-008】【TP_VENDOR_AF2_010】切换 20 条/页
- 前置条件:已进入授权变更终审页 - 前置条件:总条数大于 20
- 操作步骤: - 操作步骤:
1. 填写筛选项后点击「重 置」 1. 分页区选择「20 条/页」
2. 断言文本条件清空、列表按默认规则刷新 2. 断言当前页行数与总条数展示一致
- 自动化断言:与 CSV `VENDOR-AF2-005` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF2-008` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
重置成功。 每页条数切换后列表与分页展示同步更新。
--- ---
#### 异常验证点 ### 授权变更终审 · 列设置
#### 功能验证点
##### 【P1】【TC-UI-VENDOR-AF2-006】【TP_VENDOR_AF2_016】无匹配空态(mock反例) ##### 【P0】【TC-UI-VENDOR-AF2-004】【TP_VENDOR_AF2_013】列设置取消勾选后再勾选列表列恢复
- 前置条件:已进入授权变更终审页 - 前置条件:列表已查询出数据
- 操作步骤: - 操作步骤:
1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询 1. 打开列设置,取消勾选一列非核心列
2. 断言空态且分页总数为 0 2. 再次勾选恢复
- 自动化断言:与 CSV `VENDOR-AF2-006` 及 `tests/spd/vendor-audit.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-AF2-004` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
无匹配时不报错;总数为 0。 列设置 toggle 后列表列展示与勾选状态一致。
---
#### 功能验证点
--- ---
...@@ -123,39 +118,36 @@ ...@@ -123,39 +118,36 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-AF2-005】【TP_VENDOR_AF2_014】点击详情进入详情页后返回
--- - 前置条件:存在含「详情」的行
### 授权变更终审 · 筛选与列表
#### 边界验证点
##### 【P2】【TC-UI-VENDOR-AF2-007】【TP_VENDOR_AF2_015】制单日期起止同一天
- 前置条件:已进入授权变更终审页
- 操作步骤: - 操作步骤:
1. 制单日期起止选同一天并查询 1. 点击行内「详 情」
2. 断言仅返回该日单据或空态明确 2. 断言详情层可见且含单号片段
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 返回/关闭且不提交审批
- 自动化断言:与 CSV `VENDOR-AF2-005` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
同日区间行为明确。 详情只读可返回;列表状态不变。
--- ---
### 授权变更终审 · 详情 ### 授权变更终审 · 组合查询
#### 集成验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-AF2-008】【TP_VENDOR_AF2_018】与初审单据衔接不串单 ##### 【P0】【TC-UI-VENDOR-AF2-006】【TP_VENDOR_AF2_015】首行七项组合查询
- 前置条件:已进入授权变更终审页 - 前置条件:列表至少 1 条
- 操作步骤: - 操作步骤:
1. 记录本页某单号后切换到对应初审菜单 1. 点选首行
2. 断言同业务单据状态流转合理、不串到非本业务菜单 2. 用首行制单日期、单号、销售商(自定义)、预转供应商、状态、变更类型、原供应商组合查询
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 断言结果行单号与首行一致
- 自动化断言:与 CSV `VENDOR-AF2-006` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
初审/终审衔接正确。 组合查询结果与首行关键字段匹配。
---
...@@ -7,106 +7,90 @@ ...@@ -7,106 +7,90 @@
**元素扫描**:`data/scan/vendor-cert-first-elements.json`(40 项) **元素扫描**:`data/scan/vendor-cert-first-elements.json`(40 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-005.md` **关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-005.md`
**版本**:2026-09-30 **版本**:2026-09-30
**自动化框架**:Playwright + TypeScript(`tests/spd/vendor-audit.spec.ts`,依赖 `auth.setup` 登录态) **自动化框架**:Playwright + TypeScript(`tests/spd/` 下 vendor-audit.spec.ts,依赖 `auth.setup` 登录态)
**通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 注册证变更初审」权限。 **通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 注册证变更初审」权限。
**页面约定**:整页渲染,**无报表 iframe**。 **页面约定**:整页渲染,**无报表 iframe**;**状态**筛选默认值为 **通过**。
**写操作**:审批写操作只打开详情后返回,不确认通过/驳回/提交。 **查询默认值**:除 **VENDOR-CF1-001**(验证重置恢复默认)外,用例前置须 **先清空查询条件默认值**(含「状态」=通过、制单日期区间等进页自带项);自动化在 `open()` 中执行 `clearQueryConditionDefaults()`。
**动态取数**:默认查询后从首行读取 `${sampleOrderNo}`;禁止写死单号;mock:`__NOT_EXIST_ORDER__99999`。 **动态取数**:mock 单号:`__NOT_EXIST_ORDER__99999`;组合查询从首行读取制单日期、单号、变更类型、注册证号(新)、状态、变更情况具体说明。
--- ---
## 基础设置 · 厂商管理 ## 基础设置 · 厂商管理
### 注册证变更初审 · 页面进入
#### 功能验证点
##### 【P0】【TC-UI-VENDOR-CF1-001】【TP_VENDOR_CF1_001】菜单进入注册证变更初审页
- 前置条件:已登录且具备厂商管理权限
- 操作步骤:
1. 按菜单「基础设置 → 厂商管理 → 注册证变更初审」进入
2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/regCertAudit`
3. 断言可见「查 询」「重 置」及制单日期筛选
- 自动化断言:与 CSV `VENDOR-CF1-001` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果
进入注册证变更初审页;不误入其它变更审批菜单。
---
### 注册证变更初审 · 筛选与列表 ### 注册证变更初审 · 筛选与列表
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-CF1-002】【TP_VENDOR_CF1_009】默认查询列表有数据或空态明确 ##### 【P1】【TC-UI-VENDOR-CF1-001】【TP_VENDOR_CF1_012】重置恢复默认
- 前置条件:已进入注册证变更初审页 - 前置条件:已进入注册证变更初审页;进页筛选保留默认值(含「状态」=通过、制单日期区间等)
- 操作步骤: - 操作步骤:
1. 点击「查 询」并等待列表稳定 1. 确认「状态」筛选默认值为「通过」
2. 断言出现数据行或空态明确 2. 填写其它筛选项后点击「重 置」
- 自动化断言:与 CSV `VENDOR-CF1-002` 及 `tests/spd/vendor-audit.spec.ts` 一致 3. 断言文本条件清空、「状态」恢复为「通过」、列表按默认规则刷新
- 自动化断言:与 CSV `VENDOR-CF1-001` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
查询无报错;有数据时分页 N≥1。 重置成功;状态仍为「通过」。
--- ---
##### 【P0】【TC-UI-VENDOR-CF1-003】【TP_VENDOR_CF1_010】按单号筛选 ##### 【P1】【TC-UI-VENDOR-CF1-004】【TP_VENDOR_CF1_019】筛选区展开与收起正常使用
- 前置条件:列表至少 1 条且单号非空 - 前置条件:已进入注册证变更初审页;页面具备展开/收起按钮
- 操作步骤: - 操作步骤:
1. 从首行读取 `${sampleOrderNo}` 取关键字 1. 点击展开/收起切换筛选区
2. 单号填入关键字并「查 询」 2. 断言收起区字段隐藏、展开后可见,且收起后再展开保留已填单号
3. 断言结果行「单号」包含关键字 - 自动化断言:与 CSV `VENDOR-CF1-004` 及 `tests/spd/vendor-audit.spec.ts` 一致
- 自动化断言:与 CSV `VENDOR-CF1-003` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
单号列与条件一致。 筛选区展开收起正常且条件不丢失。
--- ---
##### 【P0】【TC-UI-VENDOR-CF1-004】【TP_VENDOR_CF1_011】按注册证号(新)筛选 ##### 【P1】【TC-UI-VENDOR-CF1-006】【TP_VENDOR_CF1_022】分页翻至第 2 页
- 前置条件:列表至少 1 条 - 前置条件:已进入注册证变更初审页;列表总条数足够翻页
- 操作步骤: - 操作步骤:
1. 按样本填写或选择「注册证号(新)」并查询 1. 先清空默认条件并查询
2. 断言结果列与条件匹配 2. 点击分页页码 2(或下一页)
- 自动化断言:与 CSV `VENDOR-CF1-004` 及 `tests/spd/vendor-audit.spec.ts` 一致 3. 断言当前页为第 2 页且本页有数据
- 自动化断言:与 CSV `VENDOR-CF1-006` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
筛选条件生效。 第 2 页展示正常;数据不足时 skip。
--- ---
##### 【P1】【TC-UI-VENDOR-CF1-005】【TP_VENDOR_CF1_012】重置恢复默认 ##### 【P1】【TC-UI-VENDOR-CF1-007】【TP_VENDOR_CF1_023】切换20条每页页面正常且列表同步
- 前置条件:已进入注册证变更初审页 - 前置条件:已进入注册证变更初审页;列表有数据且总条数大于 20
- 操作步骤: - 操作步骤:
1. 填写筛选项后点击「重 置」 1. 先清空默认条件并查询
2. 断言文本条件清空、列表按默认规则刷新 2. 分页区选择「20 条/页」
- 自动化断言:与 CSV `VENDOR-CF1-005` 及 `tests/spd/vendor-audit.spec.ts` 一致 3. 断言分页器、当前页行数与总条数一致
- 自动化断言:与 CSV `VENDOR-CF1-007` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
重置成功。 每页条数切换后列表与分页展示同步更新。
--- ---
#### 异常验证点 #### 异常验证点
##### 【P1】【TC-UI-VENDOR-CF1-006】【TP_VENDOR_CF1_016】无匹配空态(mock反例) ##### 【P1】【TC-UI-VENDOR-CF1-002】【TP_VENDOR_CF1_016】无匹配空态(mock反例)
- 前置条件:已进入注册证变更初审页 - 前置条件:已进入注册证变更初审页;已先清空查询条件默认值
- 操作步骤: - 操作步骤:
1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询 1. 先清空查询条件默认值并点击「查 询」
2. 断言空态且分页总数为 0 2. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
- 自动化断言:与 CSV `VENDOR-CF1-006` 及 `tests/spd/vendor-audit.spec.ts` 一致 3. 断言空态且分页总数为 0
- 自动化断言:与 CSV `VENDOR-CF1-002` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -114,48 +98,58 @@ ...@@ -114,48 +98,58 @@
--- ---
#### 功能验证点 ### 注册证变更初审 · 列设置
#### 功能验证点
--- ##### 【P0】【TC-UI-VENDOR-CF1-003】【TP_VENDOR_CF1_020】列设置取消勾选后再勾选列表列恢复
### 注册证变更初审 · 详情 - 前置条件:已进入注册证变更初审页;列表已查询出数据
- 操作步骤:
1. 打开列设置,取消勾选一列非核心列后确认表头隐藏
2. 再次勾选该列后确认表头恢复
- 自动化断言:与 CSV `VENDOR-CF1-003` 及 `tests/spd/vendor-audit.spec.ts` 一致
#### 功能验证点 ###### 预期结果
列设置 toggle 后列表列展示与勾选状态一致。
--- ---
### 注册证变更初审 · 筛选与列表 ### 注册证变更初审 · 详情
#### 边界验证点 #### 功能验证点
##### 【P2】【TC-UI-VENDOR-CF1-007】【TP_VENDOR_CF1_015】制单日期起止同一天 ##### 【P0】【TC-UI-VENDOR-CF1-005】【TP_VENDOR_CF1_014】点击详情进入详情页后返回
- 前置条件:已进入注册证变更初审页 - 前置条件:已进入注册证变更初审页;存在含「详情」的行
- 操作步骤: - 操作步骤:
1. 制单日期起止选同一天并查询 1. 点击行内「详 情」
2. 断言仅返回该日单据或空态明确 2. 断言详情层可见且含单号片段
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 返回/关闭且不提交审批
- 自动化断言:与 CSV `VENDOR-CF1-005` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
同日区间行为明确。 详情只读可返回;列表状态不变。
--- ---
### 注册证变更初审 · 详情 ### 注册证变更初审 · 组合查询
#### 集成验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-CF1-008】【TP_VENDOR_CF1_018】与终审单据衔接不串单 ##### 【P0】【TC-UI-VENDOR-CF1-008】【TP_VENDOR_CF1_021】首行六项组合查询
- 前置条件:已进入注册证变更初审页 - 前置条件:已进入注册证变更初审页;列表至少有 1 条数据
- 操作步骤: - 操作步骤:
1. 记录本页某单号后切换到对应终审菜单 1. 点选首行
2. 断言同业务单据状态流转合理、不串到非本业务菜单 2. 用首行制单日期、单号、变更类型、注册证号(新)、状态、变更情况具体说明填入筛选并查询
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 断言结果行单号与首行一致
- 自动化断言:与 CSV `VENDOR-CF1-008` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
初审/终审衔接正确。 组合查询结果与首行关键字段匹配。
---
...@@ -7,106 +7,90 @@ ...@@ -7,106 +7,90 @@
**元素扫描**:`data/scan/vendor-cert-final-elements.json`(40 项) **元素扫描**:`data/scan/vendor-cert-final-elements.json`(40 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-006.md` **关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-006.md`
**版本**:2026-09-30 **版本**:2026-09-30
**自动化框架**:Playwright + TypeScript(`tests/spd/vendor-audit.spec.ts`,依赖 `auth.setup` 登录态) **自动化框架**:Playwright + TypeScript(`tests/spd/` 下 vendor-audit.spec.ts,依赖 `auth.setup` 登录态)
**通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 注册证变更终审」权限。 **通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 注册证变更终审」权限。
**页面约定**:整页渲染,**无报表 iframe**。 **页面约定**:整页渲染,**无报表 iframe**;**状态**筛选默认值为 **通过**。
**写操作**:审批写操作只打开详情后返回,不确认通过/驳回/提交。 **查询默认值**:除 **VENDOR-CF2-001**(验证重置恢复默认)外,用例前置须 **先清空查询条件默认值**(含「状态」=通过、制单日期区间等进页自带项);自动化在 `open()` 中执行 `clearQueryConditionDefaults()`。
**动态取数**:默认查询后从首行读取 `${sampleOrderNo}`;禁止写死单号;mock:`__NOT_EXIST_ORDER__99999`。 **动态取数**:mock 单号:`__NOT_EXIST_ORDER__99999`;组合查询从首行读取制单日期、单号、变更类型、注册证号(新)、状态、变更情况具体说明。
--- ---
## 基础设置 · 厂商管理 ## 基础设置 · 厂商管理
### 注册证变更终审 · 页面进入
#### 功能验证点
##### 【P0】【TC-UI-VENDOR-CF2-001】【TP_VENDOR_CF2_001】菜单进入注册证变更终审页
- 前置条件:已登录且具备厂商管理权限
- 操作步骤:
1. 按菜单「基础设置 → 厂商管理 → 注册证变更终审」进入
2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal`
3. 断言可见「查 询」「重 置」及制单日期筛选
- 自动化断言:与 CSV `VENDOR-CF2-001` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果
进入注册证变更终审页;不误入其它变更审批菜单。
---
### 注册证变更终审 · 筛选与列表 ### 注册证变更终审 · 筛选与列表
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-CF2-002】【TP_VENDOR_CF2_009】默认查询列表有数据或空态明确 ##### 【P1】【TC-UI-VENDOR-CF2-001】【TP_VENDOR_CF2_012】重置恢复默认
- 前置条件:已进入注册证变更终审页 - 前置条件:已进入注册证变更终审页;进页筛选保留默认值(含「状态」=通过、制单日期区间等)
- 操作步骤: - 操作步骤:
1. 点击「查 询」并等待列表稳定 1. 确认「状态」筛选默认值为「通过」
2. 断言出现数据行或空态明确 2. 填写其它筛选项后点击「重 置」
- 自动化断言:与 CSV `VENDOR-CF2-002` 及 `tests/spd/vendor-audit.spec.ts` 一致 3. 断言文本条件清空、「状态」恢复为「通过」、列表按默认规则刷新
- 自动化断言:与 CSV `VENDOR-CF2-001` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
查询无报错;有数据时分页 N≥1。 重置成功;状态仍为「通过」。
--- ---
##### 【P0】【TC-UI-VENDOR-CF2-003】【TP_VENDOR_CF2_010】按单号筛选 ##### 【P1】【TC-UI-VENDOR-CF2-004】【TP_VENDOR_CF2_019】筛选区展开与收起正常使用
- 前置条件:列表至少 1 条且单号非空 - 前置条件:已进入注册证变更终审页;页面具备展开/收起按钮
- 操作步骤: - 操作步骤:
1. 从首行读取 `${sampleOrderNo}` 取关键字 1. 点击展开/收起切换筛选区
2. 单号填入关键字并「查 询」 2. 断言收起区字段隐藏、展开后可见,且收起后再展开保留已填单号
3. 断言结果行「单号」包含关键字 - 自动化断言:与 CSV `VENDOR-CF2-004` 及 `tests/spd/vendor-audit.spec.ts` 一致
- 自动化断言:与 CSV `VENDOR-CF2-003` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
单号列与条件一致。 筛选区展开收起正常且条件不丢失。
--- ---
##### 【P0】【TC-UI-VENDOR-CF2-004】【TP_VENDOR_CF2_011】按注册证号(新)筛选 ##### 【P1】【TC-UI-VENDOR-CF2-006】【TP_VENDOR_CF2_022】分页翻至第 2 页
- 前置条件:列表至少 1 条 - 前置条件:已进入注册证变更终审页;列表总条数足够翻页
- 操作步骤: - 操作步骤:
1. 按样本填写或选择「注册证号(新)」并查询 1. 先清空默认条件并查询
2. 断言结果列与条件匹配 2. 点击分页页码 2(或下一页)
- 自动化断言:与 CSV `VENDOR-CF2-004` 及 `tests/spd/vendor-audit.spec.ts` 一致 3. 断言当前页为第 2 页且本页有数据
- 自动化断言:与 CSV `VENDOR-CF2-006` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
筛选条件生效。 第 2 页展示正常;数据不足时 skip。
--- ---
##### 【P1】【TC-UI-VENDOR-CF2-005】【TP_VENDOR_CF2_012】重置恢复默认 ##### 【P1】【TC-UI-VENDOR-CF2-007】【TP_VENDOR_CF2_023】切换20条每页页面正常且列表同步
- 前置条件:已进入注册证变更终审页 - 前置条件:已进入注册证变更终审页;列表有数据且总条数大于 20
- 操作步骤: - 操作步骤:
1. 填写筛选项后点击「重 置」 1. 先清空默认条件并查询
2. 断言文本条件清空、列表按默认规则刷新 2. 分页区选择「20 条/页」
- 自动化断言:与 CSV `VENDOR-CF2-005` 及 `tests/spd/vendor-audit.spec.ts` 一致 3. 断言分页器、当前页行数与总条数一致
- 自动化断言:与 CSV `VENDOR-CF2-007` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
重置成功。 每页条数切换后列表与分页展示同步更新。
--- ---
#### 异常验证点 #### 异常验证点
##### 【P1】【TC-UI-VENDOR-CF2-006】【TP_VENDOR_CF2_016】无匹配空态(mock反例) ##### 【P1】【TC-UI-VENDOR-CF2-002】【TP_VENDOR_CF2_016】无匹配空态(mock反例)
- 前置条件:已进入注册证变更终审页 - 前置条件:已进入注册证变更终审页;已先清空查询条件默认值
- 操作步骤: - 操作步骤:
1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询 1. 先清空查询条件默认值并点击「查 询」
2. 断言空态且分页总数为 0 2. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
- 自动化断言:与 CSV `VENDOR-CF2-006` 及 `tests/spd/vendor-audit.spec.ts` 一致 3. 断言空态且分页总数为 0
- 自动化断言:与 CSV `VENDOR-CF2-002` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -114,48 +98,58 @@ ...@@ -114,48 +98,58 @@
--- ---
#### 功能验证点 ### 注册证变更终审 · 列设置
#### 功能验证点
--- ##### 【P0】【TC-UI-VENDOR-CF2-003】【TP_VENDOR_CF2_020】列设置取消勾选后再勾选列表列恢复
### 注册证变更终审 · 详情 - 前置条件:已进入注册证变更终审页;列表已查询出数据
- 操作步骤:
1. 打开列设置,取消勾选一列非核心列后确认表头隐藏
2. 再次勾选该列后确认表头恢复
- 自动化断言:与 CSV `VENDOR-CF2-003` 及 `tests/spd/vendor-audit.spec.ts` 一致
#### 功能验证点 ###### 预期结果
列设置 toggle 后列表列展示与勾选状态一致。
--- ---
### 注册证变更终审 · 筛选与列表 ### 注册证变更终审 · 详情
#### 边界验证点 #### 功能验证点
##### 【P2】【TC-UI-VENDOR-CF2-007】【TP_VENDOR_CF2_015】制单日期起止同一天 ##### 【P0】【TC-UI-VENDOR-CF2-005】【TP_VENDOR_CF2_014】点击详情进入详情页后返回
- 前置条件:已进入注册证变更终审页 - 前置条件:已进入注册证变更终审页;存在含「详情」的行
- 操作步骤: - 操作步骤:
1. 制单日期起止选同一天并查询 1. 点击行内「详 情」
2. 断言仅返回该日单据或空态明确 2. 断言详情层可见且含单号片段
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 返回/关闭且不提交审批
- 自动化断言:与 CSV `VENDOR-CF2-005` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
同日区间行为明确。 详情只读可返回;列表状态不变。
--- ---
### 注册证变更终审 · 详情 ### 注册证变更终审 · 组合查询
#### 集成验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-CF2-008】【TP_VENDOR_CF2_018】与初审单据衔接不串单 ##### 【P0】【TC-UI-VENDOR-CF2-008】【TP_VENDOR_CF2_021】首行六项组合查询
- 前置条件:已进入注册证变更终审页 - 前置条件:已进入注册证变更终审页;列表至少有 1 条数据
- 操作步骤: - 操作步骤:
1. 记录本页某单号后切换到对应初审菜单 1. 点选首行
2. 断言同业务单据状态流转合理、不串到非本业务菜单 2. 用首行制单日期、单号、变更类型、注册证号(新)、状态、变更情况具体说明填入筛选并查询
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 断言结果行单号与首行一致
- 自动化断言:与 CSV `VENDOR-CF2-008` 及 `tests/spd/vendor-audit.spec.ts` 一致
###### 预期结果 ###### 预期结果
初审/终审衔接正确。 组合查询结果与首行关键字段匹配。
---
...@@ -10,184 +10,146 @@ ...@@ -10,184 +10,146 @@
**自动化框架**:Playwright + TypeScript(`tests/spd/vendor-cert-diff.spec.ts`,依赖 `auth.setup` 登录态) **自动化框架**:Playwright + TypeScript(`tests/spd/vendor-cert-diff.spec.ts`,依赖 `auth.setup` 登录态)
**通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 注册证差异对比」权限。 **通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 注册证差异对比」权限。
**页面约定**:主体在 scjs **iframe**。 **页面约定**:主对比区在 **scjs iframe** 内;**状态**筛选默认值为 **通过**(与变更初审一致时)。
**写操作**:主体在 scjs iframe;导出本批只断言按钮可见,不确认下载。 **查询默认值**:除 **VENDOR-CDF-001**(验证重置恢复默认)外,用例前置须 **先清空查询条件默认值**(含「状态」=通过、制单日期区间等进页自带项);自动化在 `open()` 中执行 `clearQueryConditionDefaults()`。
**动态取数**:iframe 内首行读取 `${sampleMaterialName}`;mock:`__NOT_EXIST_MFRS__99999`。 **动态取数**:mock 单号:`__NOT_EXIST_ORDER__99999`;组合查询从首行读取物料名称、规格型号、状态、望海注册证号、是否医疗器械、生产厂家、FLI+注册证号、27位医保编码。
--- ---
## 基础设置 · 厂商管理 ## 基础设置 · 厂商管理
### 注册证差异对比 · 页面进入 ### 注册证差异对比 · 筛选与列表
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-CDF-001】【TP_VENDOR_CDF_001】菜单进入注册证差异对比页 ##### 【P1】【TC-UI-VENDOR-CDF-001】【TP_VENDOR_CDF_012】重置恢复默认
- 前置条件:已登录且具备厂商管理权限 - 前置条件:已进入注册证差异对比页;进页筛选保留默认值(含「状态」=通过、制单日期区间等)
- 操作步骤: - 操作步骤:
1. 按菜单「基础设置 → 厂商管理 → 注册证差异对比」进入 1. 确认「状态」筛选默认值为「通过」
2. 断言 URL 含 `certCompare` 2. 填写其它筛选项后点击「重 置」
3. 断言外壳或 iframe 内可见物料名称/全部/一致/不一致等主区 3. 断言文本条件清空、「状态」恢复为「通过」、列表按默认规则刷新
- 自动化断言:与 CSV `VENDOR-CDF-001` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-CDF-001` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果 ###### 预期结果
进入差异对比页;iframe 或主区加载成功。 重置成功;状态仍为「通过」。
--- ---
### 注册证差异对比 · 筛选与对比 ##### 【P1】【TC-UI-VENDOR-CDF-004】【TP_VENDOR_CDF_019】筛选区展开与收起正常使用
#### 功能验证点 - 前置条件:已进入注册证差异对比页;页面具备展开/收起按钮
##### 【P0】【TC-UI-VENDOR-CDF-002】【TP_VENDOR_CDF_009】默认查询列表有数据或空态明确
- 前置条件:已进入注册证差异对比页
- 操作步骤: - 操作步骤:
1. 在对比页执行查询(若有查询按钮) 1. 点击展开/收起切换筛选区
2. 断言列表有数据或空态明确 2. 断言收起区字段隐藏、展开后可见,且收起后再展开保留已填单号
- 自动化断言:与 CSV `VENDOR-CDF-002` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-CDF-004` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果
查询无报错。
---
##### 【P0】【TC-UI-VENDOR-CDF-003】【TP_VENDOR_CDF_013】切换不一致 Tab
- 前置条件:已进入注册证差异对比页
- 操作步骤:
1. 点击「不一致」
2. 断言列表稳定
- 自动化断言:与 CSV `VENDOR-CDF-003` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果 ###### 预期结果
不一致 Tab 切换成功。 筛选区展开收起正常且条件不丢失。
--- ---
##### 【P1】【TC-UI-VENDOR-CDF-004】【TP_VENDOR_CDF_013】切换一致 Tab ##### 【P1】【TC-UI-VENDOR-CDF-006】【TP_VENDOR_CDF_022】分页翻至第 2 页
- 前置条件:已进入注册证差异对比页 - 前置条件:已进入注册证差异对比页;列表总条数足够翻页
- 操作步骤: - 操作步骤:
1. 点击「一致」 1. 先清空默认条件并查询
2. 断言列表稳定 2. 点击分页页码 2(或下一页)
- 自动化断言:与 CSV `VENDOR-CDF-004` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致 3. 断言当前页为第 2 页且本页有数据
- 自动化断言:与 CSV `VENDOR-CDF-006` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果 ###### 预期结果
一致 Tab 切换成功。 第 2 页展示正常;数据不足时 skip。
--- ---
##### 【P0】【TC-UI-VENDOR-CDF-005】【TP_VENDOR_CDF_010】按物料名称筛选 ##### 【P1】【TC-UI-VENDOR-CDF-007】【TP_VENDOR_CDF_023】切换20条每页页面正常且列表同步
- 前置条件:对比列表至少 1 条 - 前置条件:已进入注册证差异对比页;列表有数据且总条数大于 20
- 操作步骤: - 操作步骤:
1. 从首行读取 `${sampleMaterialName}` 取关键字 1. 先清空默认条件并查询
2. 物料名称填入并查询 2. 分页区选择「20 条/页」
3. 断言结果行物料名称包含关键字 3. 断言分页器、当前页行数与总条数一致
- 自动化断言:与 CSV `VENDOR-CDF-005` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-CDF-007` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果 ###### 预期结果
物料名称匹配。 每页条数切换后列表与分页展示同步更新。
--- ---
#### 异常验证点 #### 异常验证点
##### 【P1】【TC-UI-VENDOR-CDF-006】【TP_VENDOR_CDF_016】无匹配空态(mock反例) ##### 【P1】【TC-UI-VENDOR-CDF-002】【TP_VENDOR_CDF_016】无匹配空态(mock反例)
- 前置条件:已进入注册证差异对比页 - 前置条件:已进入注册证差异对比页;已先清空查询条件默认值
- 操作步骤: - 操作步骤:
1. 物料名称填 mock 关键字并查询 1. 先清空查询条件默认值并点击「查 询」
2. 断言空态或总数为 0 2. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
- 自动化断言:与 CSV `VENDOR-CDF-006` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致 3. 断言空态且分页总数为 0
- 自动化断言:与 CSV `VENDOR-CDF-002` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果 ###### 预期结果
无匹配时不报错。 无匹配时不报错;总数为 0。
--- ---
### 注册证差异对比 · 列设置
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-CDF-007】【TP_VENDOR_CDF_014】列表核心列完整 ##### 【P0】【TC-UI-VENDOR-CDF-003】【TP_VENDOR_CDF_020】列设置取消勾选后再勾选列表列恢复
- 前置条件:已进入注册证差异对比页 - 前置条件:已进入注册证差异对比页;列表已查询出数据
- 操作步骤: - 操作步骤:
1. 断言表头含物料编号/物料名称/规格型号/生产厂家等关键列 1. 打开列设置,取消勾选一列非核心列后确认表头隐藏
- 自动化断言:与 CSV `VENDOR-CDF-007` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致 2. 再次勾选该列后确认表头恢复
- 自动化断言:与 CSV `VENDOR-CDF-003` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果 ###### 预期结果
核心对比列可见。 列设置 toggle 后列表列展示与勾选状态一致。
--- ---
### 注册证差异对比 · 导出 ### 注册证差异对比 · 详情
#### 功能验证点 #### 功能验证点
##### 【P1】【TC-UI-VENDOR-CDF-008】【TP_VENDOR_CDF_015】导出按钮可见 ##### 【P0】【TC-UI-VENDOR-CDF-005】【TP_VENDOR_CDF_014】点击详情进入详情页后返回
- 前置条件:已进入注册证差异对比页 - 前置条件:已进入注册证差异对比页;存在含「详情」的行
- 操作步骤: - 操作步骤:
1. 断言「导出」按钮可见(不确认下载) 1. 点击行内「详 情」
- 自动化断言:与 CSV `VENDOR-CDF-008` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致 2. 断言详情层可见且含单号片段
3. 返回/关闭且不提交审批
- 自动化断言:与 CSV `VENDOR-CDF-005` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果 ###### 预期结果
导出入口可见。 详情只读可返回;列表状态不变。
--- ---
### 注册证差异对比 · 筛选与对比 ### 注册证差异对比 · 组合查询
#### 边界验证点
##### 【P2】【TC-UI-VENDOR-CDF-009】【TP_VENDOR_CDF_015】仅空格物料名称搜索
- 前置条件:已进入注册证差异对比页
- 操作步骤:
1. 物料名称仅填空格并查询
2. 断言按空查询处理或提示,不白屏
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖
###### 预期结果
空格关键字不导致页面异常。
--- #### 功能验证点
#### 集成验证点
##### 【P0】【TC-UI-VENDOR-CDF-010】【TP_VENDOR_CDF_017】一致行两侧字段抽样一致 ##### 【P0】【TC-UI-VENDOR-CDF-008】【TP_VENDOR_CDF_021】首行八项组合查询
- 前置条件:已进入注册证差异对比页 - 前置条件:已进入注册证差异对比页;列表至少有 1 条数据
- 操作步骤: - 操作步骤:
1. 在「一致」Tab 抽样一行 1. 点选首行
2. 核对望海与 FLI+ 注册证号/效期关键字段一致 2. 用首行物料名称、规格型号、状态、望海注册证号、是否医疗器械、生产厂家、FLI+注册证号、27位医保编码填入筛选并查询
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 断言结果行物料名称与首行一致
- 自动化断言:与 CSV `VENDOR-CDF-008` 及 `tests/spd/vendor-cert-diff.spec.ts` 一致
###### 预期结果 ###### 预期结果
标记一致的行两侧关键字段抽样相同。 组合查询结果与首行关键字段匹配。
--- ---
##### 【P0】【TC-UI-VENDOR-CDF-011】【TP_VENDOR_CDF_018】不一致行至少一侧差异
- 前置条件:已进入注册证差异对比页
- 操作步骤:
1. 在「不一致」Tab 抽样一行
2. 断言望海与 FLI+ 至少一处字段不同
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖
###### 预期结果
不一致结论与字段差异相符。
...@@ -7,138 +7,115 @@ ...@@ -7,138 +7,115 @@
**元素扫描**:`data/scan/vendor-eval-indicator-elements.json`(151 项) **元素扫描**:`data/scan/vendor-eval-indicator-elements.json`(151 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-009.md` **关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-009.md`
**版本**:2026-09-30 **版本**:2026-09-30
**自动化框架**:Playwright + TypeScript(`tests/spd/vendor-eval-indicator.spec.ts`,依赖 `auth.setup` 登录态) **自动化框架**:Playwright + TypeScript(`tests/spd/` 下 vendor-eval-indicator.spec.ts,依赖 `auth.setup` 登录态)
**通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 评价指标维护」权限。 **通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 评价指标维护」权限。
**页面约定**:整页渲染,**无报表 iframe**。 **页面约定**:整页渲染,**无报表 iframe**。
**写操作**:详情只读返回;不落库新增/编辑提交。
**动态取数**:右表首行读取 `${sampleIndicatorCode}`;列名可能为指标编码或指标编号;mock:`__NOT_EXIST_ORDER__99999`。
--- ---
## 基础设置 · 厂商管理 ## 基础设置 · 厂商管理
### 评价指标维护 · 页面进入 ### 评价指标维护 · 树与列表
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-EVI-001】【TP_VENDOR_EVI_001】菜单进入评价指标维护页 ##### 【P0】【TC-UI-VENDOR-EVI-001】【TP_VENDOR_EVI_010】点击左侧分类可正常展开
- 前置条件:已登录且具备厂商管理权限 - 前置条件:已进入评价指标维护页;左侧存在至少一个收起状态的分类节点
- 操作步骤: - 操作步骤:
1. 按菜单进入评价指标维护 1. 在左侧指标分类树中点击收起状态分类的展开图标
2. 断言 URL 含 `indicators` 2. 断言该分类处于展开态且子级分类可见
3. 断言可见「指标分类」与查询
- 自动化断言:与 CSV `VENDOR-EVI-001` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVI-001` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致
###### 预期结果 ###### 预期结果
进入评价指标维护页。 分类树节点可正常展开,子级分类展示正确。
--- ---
### 评价指标维护 · 树与列表 ##### 【P0】【TC-UI-VENDOR-EVI-002】【TP_VENDOR_EVI_011】切换左侧不同分类右侧内容同步变化
#### 功能验证点
##### 【P0】【TC-UI-VENDOR-EVI-002】【TP_VENDOR_EVI_009】默认查询列表有数据或空态明确
- 前置条件:已进入评价指标维护页 - 前置条件:已进入评价指标维护页;左侧至少两个可选分类且存在切换后右侧展示不同的分类对
- 操作步骤: - 操作步骤:
1. 点击查询 1. 依次点击左侧两个不同分类节点
2. 断言右表有数据或空态 2. 断言右侧指标列表或空态随分类切换而更新,且与上一分类展示不一致
- 自动化断言:与 CSV `VENDOR-EVI-002` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVI-002` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致
###### 预期结果 ###### 预期结果
查询无报错。 切换分类后右侧内容区与所选分类一致并同步刷新。
--- ---
##### 【P0】【TC-UI-VENDOR-EVI-003】【TP_VENDOR_EVI_010】点击左侧分类树 ##### 【P0】【TC-UI-VENDOR-EVI-003】【TP_VENDOR_EVI_012】选中左侧分类首行同步分类名称查询条件
- 前置条件:已进入评价指标维护页 - 前置条件:已进入评价指标维护页;左侧分类树存在首行可选节点
- 操作步骤: - 操作步骤:
1. 点击左侧首个分类节点 1. 点击左侧指标分类树首行分类节点
2. 断言右侧列表刷新 2. 读取并断言「分类名称」查询框取值与所选分类名称一致
- 自动化断言:与 CSV `VENDOR-EVI-003` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVI-003` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致
###### 预期结果 ###### 预期结果
分类切换成功。 分类名称查询条件与所选分类同步展示。
--- ---
##### 【P0】【TC-UI-VENDOR-EVI-004】【TP_VENDOR_EVI_011】按指标编码筛选 ### 评价指标维护 · 指标一级分类右侧列表
#### 功能验证点
##### 【P0】【TC-UI-VENDOR-EVI-004】【TP_VENDOR_EVI_013】指标编号指标名称状态列可排序
- 前置条件:右表有数据 - 前置条件:已选中左侧「指标一级分类」;右侧列表至少 2 条数据
- 操作步骤: - 操作步骤:
1. 取样本指标编码/编号筛选并查询 1. 依次对指标编号、指标名称、状态列触发升序/降序
2. 断言编码列匹配 2. 断言各列排序指示器切换正常且列表仍有数据
- 自动化断言:与 CSV `VENDOR-EVI-004` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVI-004` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致
###### 预期结果 ###### 预期结果
指标编码匹配。 三列均可正常排序且无报错。
--- ---
#### 异常验证点 ##### 【P0】【TC-UI-VENDOR-EVI-005】【TP_VENDOR_EVI_014】首行指标编码与指标名称组合查询
##### 【P1】【TC-UI-VENDOR-EVI-005】【TP_VENDOR_EVI_015】无匹配空态(mock反例)
- 前置条件:已进入评价指标维护页 - 前置条件:已选中「指标一级分类」;右侧列表有数据
- 操作步骤: - 操作步骤:
1. 指标编码填 mock 后查询 1. 读取首行指标编号/编码与指标名称填入筛选并查询
2. 断言空态 2. 断言结果行与首行取值匹配
- 自动化断言:与 CSV `VENDOR-EVI-005` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVI-005` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致
###### 预期结果 ###### 预期结果
无匹配不报错。 组合查询结果与首行指标编码、指标名称一致。
--- ---
#### 功能验证点 ##### 【P0】【TC-UI-VENDOR-EVI-006】【TP_VENDOR_EVI_015】重置清空指标编码与指标名称筛选
##### 【P0】【TC-UI-VENDOR-EVI-006】【TP_VENDOR_EVI_012】列表核心列完整
- 前置条件:已进入评价指标维护页 - 前置条件:已选中「指标一级分类」;右侧列表有数据
- 操作步骤: - 操作步骤:
1. 断言表头含评价类型、指标编码或指标编号、指标名称、状态、操作 1. 填写指标编码、指标名称后点击重置
2. 断言两项筛选框已清空
- 自动化断言:与 CSV `VENDOR-EVI-006` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVI-006` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致
###### 预期结果 ###### 预期结果
核心列可见。 重置后筛选条件恢复为空。
--- ---
### 评价指标维护 · 详情 ##### 【P0】【TC-UI-VENDOR-EVI-007】【TP_VENDOR_EVI_016】列设置取消勾选后再勾选列表列恢复
#### 功能验证点
##### 【P0】【TC-UI-VENDOR-EVI-007】【TP_VENDOR_EVI_014】打开详情后返回
- 前置条件:存在详情操作行 - 前置条件:已选中「指标一级分类」;右侧列表已查询出数据
- 操作步骤: - 操作步骤:
1. 点击行内详情 1. 打开列设置,取消勾选一列非核心列后确认表头隐藏
2. 断言详情层可见 2. 再次勾选该列后确认表头恢复
3. 返回不保存
- 自动化断言:与 CSV `VENDOR-EVI-007` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVI-007` 及 `tests/spd/vendor-eval-indicator.spec.ts` 一致
###### 预期结果 ###### 预期结果
详情只读可返回。 列设置 toggle 后列表列展示与勾选状态一致。
---
### 评价指标维护 · 树与列表
#### 边界验证点
---
#### 集成验证点
...@@ -7,155 +7,253 @@ ...@@ -7,155 +7,253 @@
**元素扫描**:`data/scan/vendor-eval-scheme-elements.json`(57 项) **元素扫描**:`data/scan/vendor-eval-scheme-elements.json`(57 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-008.md` **关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-VENDOR-008.md`
**版本**:2026-09-30 **版本**:2026-09-30
**自动化框架**:Playwright + TypeScript(`tests/spd/vendor-eval-scheme.spec.ts`,依赖 `auth.setup` 登录态) **自动化框架**:Playwright + TypeScript(`tests/spd/` 下 vendor-eval-scheme.spec.ts,依赖 `auth.setup` 登录态)
**通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 评价方案维护」权限。 **通用前置**:已执行 `auth.setup`,`storageState` 有效;测试账号具备「基础设置 → 厂商管理 → 评价方案维护」权限。
**页面约定**:整页渲染,**无报表 iframe**。 **页面约定**:整页渲染,**无报表 iframe**。
**写操作**:新增只打开后取消,不提交保存。 **写操作**:EVS-001 组合;014 筛选展开/收起;002/003 列设置;004~013 排序;创建日期默认 2026-04-27~2026-10-27。
**动态取数**:有数据时从首行读取 `${sampleSchemeCode}`;mock:`__NOT_EXIST_ORDER__99999`。 **动态取数**:排序列见 `data/vendor-eval-scheme.data.ts`;列设置 toggle 见 evalSchemeColumnSettingsToggleCandidates。
--- ---
## 基础设置 · 厂商管理 ## 基础设置 · 厂商管理
### 评价方案维护 · 页面进入 ### 评价方案维护 · 筛选与维护
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-EVS-001】【TP_VENDOR_EVS_001】菜单进入评价方案维护页 ##### 【P0】【TC-UI-VENDOR-EVS-001】【TP_VENDOR_EVS_010】默认创建日期区间内首行四字段组合查询
- 前置条件:已登录且具备厂商管理权限 - 前置条件:创建日期默认为 2026-04-27 至 2026-10-27;该区间内列表至少 1 条且首行四字段非空
- 操作步骤: - 操作步骤:
1. 按菜单进入评价方案维护 1. 按菜单进入评价方案维护并断言 URL 含 `evaluationPlan`
2. 断言 URL 含 `evaluationPlan` 2. 「创建日期」填入 2026-04-27 至 2026-10-27 并点击查询
3. 断言可见查询与新增 3. 点选列表首行
4. 取首行创建日期、启用日期、方案编码、方案名称写入对应筛选项并查询
5. 断言结果行方案编码、方案名称与首行一致
- 自动化断言:与 CSV `VENDOR-EVS-001` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVS-001` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果 ###### 预期结果
进入评价方案维护页。 四字段组合查询生效且首行条件匹配。
--- ---
### 评价方案维护 · 筛选与维护 ### 评价方案维护 · 列设置
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-VENDOR-EVS-002】【TP_VENDOR_EVS_009】默认查询列表有数据或空态明确 ##### 【P2】【TC-UI-VENDOR-EVS-002】【TP_VENDOR_EVS_013】打开列设置面板
- 前置条件:已进入评价方案维护页 - 前置条件:创建日期默认为 2026-04-27 至 2026-10-27;列表表头已加载
- 操作步骤: - 操作步骤:
1. 点击查询 1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 断言列表有数据或「暂无数据」空态 2. 点击列表工具栏列设置(setting 齿轮,非 column-height 密度)
3. 断言弹出列设置面板,含字段设置/列展示与「重置」
4. 关闭面板
- 自动化断言:与 CSV `VENDOR-EVS-002` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVS-002` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果 ###### 预期结果
查询无报错。 列设置面板可正常打开与关闭。
--- ---
##### 【P0】【TC-UI-VENDOR-EVS-003】【TP_VENDOR_EVS_010】按方案编码筛选 ##### 【P2】【TC-UI-VENDOR-EVS-003】【TP_VENDOR_EVS_013】列设置取消勾选后再勾选列表列恢复
- 前置条件:列表有数据 - 前置条件:创建日期默认为 2026-04-27 至 2026-10-27;存在可隐藏的非核心列(如备注)
- 操作步骤: - 操作步骤:
1. 取样本方案编码筛选并查询 1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 断言方案编码列匹配 2. 打开列设置,取消勾选一列非核心字段并关闭
3. 断言表头该列隐藏
4. 再次打开列设置,勾选恢复并关闭
5. 断言表头该列重新可见
- 自动化断言:与 CSV `VENDOR-EVS-003` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVS-003` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果 ###### 预期结果
方案编码匹配。 列隐藏与恢复与勾选状态一致。
--- ---
##### 【P1】【TC-UI-VENDOR-EVS-004】【TP_VENDOR_EVS_011】重置恢复默认 ### 评价方案维护 · 筛选与维护
- 前置条件:已进入评价方案维护页 #### 功能验证点
##### 【P1】【TC-UI-VENDOR-EVS-014】【TP_VENDOR_EVS_011】筛选区展开与收起正常使用
- 前置条件:筛选区含展开/收起控件
- 操作步骤: - 操作步骤:
1. 填写筛选后重置 1. 点击「展开」,断言启用日期/方案编码/方案名称等扩展条件可见
2. 断言条件清空、列表刷新 2. 点击「收起」,断言扩展条件隐藏且「展开」按钮可见
- 自动化断言:与 CSV `VENDOR-EVS-004` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致 3. 再次点击「展开」,断言扩展条件恢复可见
4. 填写方案编码后收起再展开,断言条件值保留
- 自动化断言:与 CSV `VENDOR-EVS-014` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果 ###### 预期结果
重置成功。 展开与收起切换正常;收起后再展开已填条件不丢失。
--- ---
#### 异常验证点 ### 评价方案维护 · 列表排序
##### 【P1】【TC-UI-VENDOR-EVS-005】【TP_VENDOR_EVS_015】无匹配空态(mock反例) #### 功能验证点
##### 【P1】【TC-UI-VENDOR-EVS-004】【TP_VENDOR_EVS_013】方案编码列升序降序切换
- 前置条件:已进入评价方案维护页 - 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤: - 操作步骤:
1. 方案编码填 mock 后查询 1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 断言空态总数 0 2. 横向滚动使「方案编码」列表头可见
- 自动化断言:与 CSV `VENDOR-EVS-005` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致 3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-004` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果 ###### 预期结果
无匹配不报错。 排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
--- ---
#### 功能验证点 ##### 【P1】【TC-UI-VENDOR-EVS-005】【TP_VENDOR_EVS_013】方案名称列升序降序切换
- 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤:
1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 横向滚动使「方案名称」列表头可见
3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-005` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果
排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
---
##### 【P0】【TC-UI-VENDOR-EVS-006】【TP_VENDOR_EVS_012】列表核心列完整 ##### 【P1】【TC-UI-VENDOR-EVS-006】【TP_VENDOR_EVS_013】创建人列升序降序切换
- 前置条件:已进入评价方案维护页 - 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤: - 操作步骤:
1. 断言表头含方案编码、方案名称、创建人、创建时间、状态、操作 1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 横向滚动使「创建人」列表头可见
3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-006` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVS-006` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果 ###### 预期结果
核心列可见。 排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
--- ---
### 评价方案维护 · 新增 ##### 【P1】【TC-UI-VENDOR-EVS-007】【TP_VENDOR_EVS_013】创建日期列升序降序切换
#### 功能验证点 - 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤:
1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 横向滚动使「创建日期」列表头可见
3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-007` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果
排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
##### 【P0】【TC-UI-VENDOR-EVS-007】【TP_VENDOR_EVS_013】打开新增后取消 ---
##### 【P1】【TC-UI-VENDOR-EVS-008】【TP_VENDOR_EVS_013】启用人列升序降序切换
- 前置条件:已进入评价方案维护页 - 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤: - 操作步骤:
1. 记录总数 1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 点击新增打开编辑层 2. 横向滚动使「启用人」列表头可见
3. 取消/返回不提交 3. 第一次点击该列排序控件并校验升序指示器
4. 断言总数不变 4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-007` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致 - 自动化断言:与 CSV `VENDOR-EVS-008` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果 ###### 预期结果
取消不落库。 排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
--- ---
#### 异常验证点 ##### 【P1】【TC-UI-VENDOR-EVS-009】【TP_VENDOR_EVS_013】启用时间列升序降序切换
- 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤:
1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 横向滚动使「启用时间」列表头可见
3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-009` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果
##### 【P0】【TC-UI-VENDOR-EVS-008】【TP_VENDOR_EVS_016】必填为空提交拦截 排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
- 前置条件:已进入评价方案维护页 ---
##### 【P1】【TC-UI-VENDOR-EVS-010】【TP_VENDOR_EVS_013】停用人列升序降序切换
- 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤: - 操作步骤:
1. 打开新增不填必填项尝试提交(若可点) 1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 断言拦截提示,页面不关闭或总数不变 2. 横向滚动使「停用人」列表头可见
- 自动化断言:本条以手工/后续扩展为主;当前冒烟未覆盖 3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-010` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果 ###### 预期结果
空提交被拦截。 排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
--- ---
### 评价方案维护 · 筛选与维护 ##### 【P1】【TC-UI-VENDOR-EVS-011】【TP_VENDOR_EVS_013】停用时间列升序降序切换
- 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤:
1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 横向滚动使「停用时间」列表头可见
3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-011` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
#### 边界验证点 ###### 预期结果
排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
--- ---
#### 集成验证点 ##### 【P1】【TC-UI-VENDOR-EVS-012】【TP_VENDOR_EVS_013】状态列升序降序切换
- 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤:
1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 横向滚动使「状态」列表头可见
3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-012` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果
排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
---
##### 【P1】【TC-UI-VENDOR-EVS-013】【TP_VENDOR_EVS_013】备注列升序降序切换
- 前置条件:创建日期默认区间已查询;列表至少 2 条数据
- 操作步骤:
1. 创建日期填入 2026-04-27 至 2026-10-27 并查询
2. 横向滚动使「备注」列表头可见
3. 第一次点击该列排序控件并校验升序指示器
4. 第二次点击并校验降序指示器
- 自动化断言:与 CSV `VENDOR-EVS-013` 及 `tests/spd/vendor-eval-scheme.spec.ts` 一致
###### 预期结果
排序按钮可点击;升序与降序指示器分别激活;列表数据正常展示。
...@@ -58,18 +58,6 @@ ...@@ -58,18 +58,6 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-WH-ZON-003】【TP_WH_ZON_009】库房树默认有选中项
- 前置条件:已进入库区设置页
- 操作步骤:
1. 断言左侧「库房信息」至少 1 个节点且有选中项
2. 读取选中节点 `${sampleWhName}`
3. 断言右侧列表为该库房库区,或空态且「共 0 条」
- 自动化断言:规划与 CSV `WH-ZON-003` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果
树有选中;右侧对应当前库房。
--- ---
...@@ -79,14 +67,14 @@ ...@@ -79,14 +67,14 @@
--- ---
##### 【P0】【TC-UI-WH-ZON-004】【TP_WH_ZON_012】切换库房刷新右侧列表 ##### 【P0】【TC-UI-WH-ZON-003】【TP_WH_ZON_012】切换库房刷新右侧列表
- 前置条件:已进入库区设置页 - 前置条件:已进入库区设置页
- 操作步骤: - 操作步骤:
1. 记录当前库房 `${sampleWhName}` 与右侧首行库区编号(若有) 1. 记录当前库房 `${sampleWhName}` 与右侧首行库区编号(若有)
2. 点选另一库房节点(仅 1 个则 skip) 2. 点选另一库房节点(仅 1 个则 skip)
3. 断言「共 N 条」可变化;若有行则库区编号/名称属于新库房 3. 断言「共 N 条」可变化;若有行则库区编号/名称属于新库房
- 自动化断言:规划与 CSV `WH-ZON-004` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-003` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -103,13 +91,13 @@ ...@@ -103,13 +91,13 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-WH-ZON-005】【TP_WH_ZON_018】列表核心列完整 ##### 【P0】【TC-UI-WH-ZON-004】【TP_WH_ZON_018】列表核心列完整
- 前置条件:已进入库区设置页 - 前置条件:已进入库区设置页
- 操作步骤: - 操作步骤:
1. 断言表头含库区编号、库区名称、库区地址、是否专项库区、操作 1. 断言表头含库区编号、库区名称、库区地址、是否专项库区、操作
2. 若有数据行,断言操作列可见「编辑」「人员管理」「货位管理」及「停用」或「启用」 2. 若有数据行,断言操作列可见「编辑」「人员管理」「货位管理」及「停用」或「启用」
- 自动化断言:规划与 CSV `WH-ZON-005` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-004` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -124,14 +112,14 @@ ...@@ -124,14 +112,14 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-WH-ZON-006】【TP_WH_ZON_029】按库区编号搜索 ##### 【P0】【TC-UI-WH-ZON-005】【TP_WH_ZON_029】按库区编号搜索
- 前置条件:当前库房至少 1 条库区且编号非空 - 前置条件:当前库房至少 1 条库区且编号非空
- 操作步骤: - 操作步骤:
1. 从首行读取 `${sampleZoneNo}` 1. 从首行读取 `${sampleZoneNo}`
2. 在「库区编号/名称」填入该编号并触发搜索 2. 在「库区编号/名称」填入该编号并触发搜索
3. 断言结果包含该编号行,且均属于当前选中库房 3. 断言结果包含该编号行,且均属于当前选中库房
- 自动化断言:规划与 CSV `WH-ZON-006` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-005` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -139,14 +127,14 @@ ...@@ -139,14 +127,14 @@
--- ---
##### 【P0】【TC-UI-WH-ZON-007】【TP_WH_ZON_030】按库区名称搜索 ##### 【P0】【TC-UI-WH-ZON-006】【TP_WH_ZON_030】按库区名称搜索
- 前置条件:当前库房至少 1 条且名称非空 - 前置条件:当前库房至少 1 条且名称非空
- 操作步骤: - 操作步骤:
1. 从首行读取 `${sampleZoneName}` 取关键字 1. 从首行读取 `${sampleZoneName}` 取关键字
2. 在「库区编号/名称」填入关键字并搜索 2. 在「库区编号/名称」填入关键字并搜索
3. 断言结果行名称匹配 3. 断言结果行名称匹配
- 自动化断言:规划与 CSV `WH-ZON-007` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-006` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -156,13 +144,13 @@ ...@@ -156,13 +144,13 @@
#### 异常验证点 #### 异常验证点
##### 【P1】【TC-UI-WH-ZON-008】【TP_WH_ZON_034】无匹配库区空态(mock反例) ##### 【P1】【TC-UI-WH-ZON-007】【TP_WH_ZON_034】无匹配库区空态(mock反例)
- 前置条件:已进入库区设置页 - 前置条件:已进入库区设置页
- 操作步骤: - 操作步骤:
1. 「库区编号/名称」填入 `__NOT_EXIST_ZONE__99999` 并搜索 1. 「库区编号/名称」填入 `__NOT_EXIST_ZONE__99999` 并搜索
2. 断言列表空且分页为 0 2. 断言列表空且分页为 0
- 自动化断言:规划与 CSV `WH-ZON-008` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-007` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -174,13 +162,13 @@ ...@@ -174,13 +162,13 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-WH-ZON-009】【TP_WH_ZON_036】打开新增库区弹窗 ##### 【P0】【TC-UI-WH-ZON-008】【TP_WH_ZON_036】打开新增库区弹窗
- 前置条件:已进入库区设置页 - 前置条件:已进入库区设置页
- 操作步骤: - 操作步骤:
1. 点击「新 增」 1. 点击「新 增」
2. 断言弹出「新增库区」,可见库区编号、库区名称、库区地址、联系人、联系方式及「取 消」「确 定」 2. 断言弹出「新增库区」,可见库区编号、库区名称、库区地址、联系人、联系方式及「取 消」「确 定」
- 自动化断言:规划与 CSV `WH-ZON-009` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-008` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -188,14 +176,14 @@ ...@@ -188,14 +176,14 @@
--- ---
##### 【P1】【TC-UI-WH-ZON-010】【TP_WH_ZON_038】新增取消不落库 ##### 【P1】【TC-UI-WH-ZON-009】【TP_WH_ZON_038】新增取消不落库
- 前置条件:已进入库区设置页 - 前置条件:已进入库区设置页
- 操作步骤: - 操作步骤:
1. 打开新增,编号填 `AUTO${timestamp}`,名称填任意合法值 1. 打开新增,编号填 `AUTO${timestamp}`,名称填任意合法值
2. 点击「取 消」 2. 点击「取 消」
3. 按该编号搜索,断言无该记录 3. 按该编号搜索,断言无该记录
- 自动化断言:规划与 CSV `WH-ZON-010` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-009` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -205,14 +193,14 @@ ...@@ -205,14 +193,14 @@
#### 异常验证点 #### 异常验证点
##### 【P0】【TC-UI-WH-ZON-011】【TP_WH_ZON_041】必填为空拦截 ##### 【P0】【TC-UI-WH-ZON-010】【TP_WH_ZON_041】必填为空拦截
- 前置条件:已进入库区设置页 - 前置条件:已进入库区设置页
- 操作步骤: - 操作步骤:
1. 打开新增,库区编号或名称留空后点击「确 定」 1. 打开新增,库区编号或名称留空后点击「确 定」
2. 断言出现必填提示,弹窗仍打开 2. 断言出现必填提示,弹窗仍打开
3. 点「取 消」 3. 点「取 消」
- 自动化断言:规划与 CSV `WH-ZON-011` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-010` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -224,7 +212,7 @@ ...@@ -224,7 +212,7 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-WH-ZON-012】【TP_WH_ZON_046】打开编辑并回填 ##### 【P0】【TC-UI-WH-ZON-011】【TP_WH_ZON_046】打开编辑并回填
- 前置条件:当前库房至少 1 条库区 - 前置条件:当前库房至少 1 条库区
- 操作步骤: - 操作步骤:
...@@ -232,7 +220,7 @@ ...@@ -232,7 +220,7 @@
2. 断言弹窗标题含「编辑库区信息」 2. 断言弹窗标题含「编辑库区信息」
3. 断言库区编号、名称与该行 `${sampleZoneNo}`、`${sampleZoneName}` 一致(允许规范化空白) 3. 断言库区编号、名称与该行 `${sampleZoneNo}`、`${sampleZoneName}` 一致(允许规范化空白)
4. 点「取 消」 4. 点「取 消」
- 自动化断言:规划与 CSV `WH-ZON-012` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-011` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -240,14 +228,14 @@ ...@@ -240,14 +228,14 @@
--- ---
##### 【P1】【TC-UI-WH-ZON-013】【TP_WH_ZON_048】编辑取消不保存 ##### 【P1】【TC-UI-WH-ZON-012】【TP_WH_ZON_048】编辑取消不保存
- 前置条件:当前库房至少 1 条库区 - 前置条件:当前库房至少 1 条库区
- 操作步骤: - 操作步骤:
1. 打开首行编辑,记录原名称 1. 打开首行编辑,记录原名称
2. 将名称改为临时值后点「取 消」 2. 将名称改为临时值后点「取 消」
3. 再次打开编辑,断言名称仍为原值 3. 再次打开编辑,断言名称仍为原值
- 自动化断言:规划与 CSV `WH-ZON-013` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-012` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -257,14 +245,14 @@ ...@@ -257,14 +245,14 @@
#### 异常验证点 #### 异常验证点
##### 【P0】【TC-UI-WH-ZON-014】【TP_WH_ZON_052】编辑清空必填拦截 ##### 【P0】【TC-UI-WH-ZON-013】【TP_WH_ZON_052】编辑清空必填拦截
- 前置条件:当前库房至少 1 条库区 - 前置条件:当前库房至少 1 条库区
- 操作步骤: - 操作步骤:
1. 打开首行编辑,清空库区名称后点「确 定」 1. 打开首行编辑,清空库区名称后点「确 定」
2. 断言被拦截并提示,弹窗仍开 2. 断言被拦截并提示,弹窗仍开
3. 点「取 消」,断言列表名称未被写成空 3. 点「取 消」,断言列表名称未被写成空
- 自动化断言:规划与 CSV `WH-ZON-014` 及 `tests/spd/warehouse-zone.spec.ts` 一致 - 自动化断言:规划与 CSV `WH-ZON-013` 及 `tests/spd/warehouse-zone.spec.ts` 一致
###### 预期结果 ###### 预期结果
......
...@@ -243,27 +243,16 @@ ...@@ -243,27 +243,16 @@
--- ---
##### 【P1】【TC-UI-SURG-TYPE-014】【TP_SURG_TYPE_028】ICD-10 诊断编码展示完整
- 前置条件:列表中至少 1 条含诊断编码的数据
- 操作步骤:
1. 读取含 ICD-10 编码的行 `${sampleIcd10Code}`
2. 断言编码文本完整(如 `A02.000x010`)不截断、无乱码
- 自动化断言:规划与 CSV `SURG-TYPE-014` 一致
###### 预期结果
ICD-10 编码完整展示。
--- ---
##### 【P2】【TC-UI-SURG-TYPE-015】【TP_SURG_TYPE_029】ICD-9-CM-3 操作编码展示完整 ##### 【P2】【TC-UI-SURG-TYPE-014】【TP_SURG_TYPE_029】ICD-9-CM-3 操作编码展示完整
- 前置条件:列表中至少 1 条含操作编码的数据 - 前置条件:列表中至少 1 条含操作编码的数据
- 操作步骤: - 操作步骤:
1. 读取含操作编码的行 `${sampleIcd9Code}` 1. 读取含操作编码的行 `${sampleIcd9Code}`
2. 断言操作编码(如 `00.0200`)与操作名称(如 `心脏治疗性超声`)对应展示无乱码 2. 断言操作编码(如 `00.0200`)与操作名称(如 `心脏治疗性超声`)对应展示无乱码
- 自动化断言:规划与 CSV `SURG-TYPE-015` 一致 - 自动化断言:规划与 CSV `SURG-TYPE-014` 一致
###### 预期结果 ###### 预期结果
...@@ -271,13 +260,13 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -271,13 +260,13 @@ ICD-9-CM-3 编码与操作名称对应正确。
--- ---
##### 【P1】【TC-UI-SURG-TYPE-016】【TP_SURG_TYPE_030】分页与页大小切换 ##### 【P1】【TC-UI-SURG-TYPE-015】【TP_SURG_TYPE_030】分页与页大小切换
- 前置条件:默认列表总数大于单页行数上限 - 前置条件:默认列表总数大于单页行数上限
- 操作步骤: - 操作步骤:
1. 切换每页条数(如 50 → 100) 1. 切换每页条数(如 50 → 100)
2. 断言单页行数不超过所选值,分页总数不变 2. 断言单页行数不超过所选值,分页总数不变
- 自动化断言:规划与 CSV `SURG-TYPE-016` 一致 - 自动化断言:规划与 CSV `SURG-TYPE-015` 一致
###### 预期结果 ###### 预期结果
...@@ -287,12 +276,12 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -287,12 +276,12 @@ ICD-9-CM-3 编码与操作名称对应正确。
#### 边界验证点 #### 边界验证点
##### 【P2】【TC-UI-SURG-TYPE-017】【TP_SURG_TYPE_032】首页上一页不可用 ##### 【P2】【TC-UI-SURG-TYPE-016】【TP_SURG_TYPE_032】首页上一页不可用
- 前置条件:已进入第 1 页 - 前置条件:已进入第 1 页
- 操作步骤: - 操作步骤:
1. 断言「上一页」置灰或点击无效果 1. 断言「上一页」置灰或点击无效果
- 自动化断言:规划与 CSV `SURG-TYPE-017` 一致 - 自动化断言:规划与 CSV `SURG-TYPE-016` 一致
###### 预期结果 ###### 预期结果
...@@ -304,14 +293,14 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -304,14 +293,14 @@ ICD-9-CM-3 编码与操作名称对应正确。
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-SURG-TYPE-018】【TP_SURG_TYPE_035】打开新增术种入口 ##### 【P0】【TC-UI-SURG-TYPE-017】【TP_SURG_TYPE_035】打开新增术种入口
- 前置条件:已进入术种维护页 - 前置条件:已进入术种维护页
- 操作步骤: - 操作步骤:
1. 点击「新增术种」 1. 点击「新增术种」
2. 断言新增弹窗/页面可见,含术种名称、病种名称、分类与编码相关字段 2. 断言新增弹窗/页面可见,含术种名称、病种名称、分类与编码相关字段
3. 断言含「取 消」「保 存」 3. 断言含「取 消」「保 存」
- 自动化断言:规划与 CSV `SURG-TYPE-018` 一致 - 自动化断言:规划与 CSV `SURG-TYPE-017` 一致
###### 预期结果 ###### 预期结果
...@@ -319,14 +308,14 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -319,14 +308,14 @@ ICD-9-CM-3 编码与操作名称对应正确。
--- ---
##### 【P0】【TC-UI-SURG-TYPE-019】【TP_SURG_TYPE_038】新增取消不落库 ##### 【P0】【TC-UI-SURG-TYPE-018】【TP_SURG_TYPE_038】新增取消不落库
- 前置条件:已进入术种维护页 - 前置条件:已进入术种维护页
- 操作步骤: - 操作步骤:
1. 记录当前分页总数 `${sampleTotal}` 1. 记录当前分页总数 `${sampleTotal}`
2. 打开新增,填写名称 `${uniqOperName}` 后点「取 消」 2. 打开新增,填写名称 `${uniqOperName}` 后点「取 消」
3. 断言列表总数不变,且无该名称行 3. 断言列表总数不变,且无该名称行
- 自动化断言:规划与 CSV `SURG-TYPE-019` 一致 - 自动化断言:规划与 CSV `SURG-TYPE-018` 一致
###### 预期结果 ###### 预期结果
...@@ -336,13 +325,13 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -336,13 +325,13 @@ ICD-9-CM-3 编码与操作名称对应正确。
#### 异常验证点 #### 异常验证点
##### 【P0】【TC-UI-SURG-TYPE-020】【TP_SURG_TYPE_040】术种名称为空拦截 ##### 【P0】【TC-UI-SURG-TYPE-019】【TP_SURG_TYPE_040】术种名称为空拦截
- 前置条件:已打开新增术种弹窗 - 前置条件:已打开新增术种弹窗
- 操作步骤: - 操作步骤:
1. 名称留空,点「保 存」 1. 名称留空,点「保 存」
2. 断言必填提示,弹窗仍在,列表无新行 2. 断言必填提示,弹窗仍在,列表无新行
- 自动化断言:规划与 CSV `SURG-TYPE-020` 一致 - 自动化断言:规划与 CSV `SURG-TYPE-019` 一致
###### 预期结果 ###### 预期结果
...@@ -354,14 +343,14 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -354,14 +343,14 @@ ICD-9-CM-3 编码与操作名称对应正确。
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-SURG-TYPE-021】【TP_SURG_TYPE_045】行内编辑回填 ##### 【P0】【TC-UI-SURG-TYPE-020】【TP_SURG_TYPE_045】行内编辑回填
- 前置条件:列表至少 1 条数据 - 前置条件:列表至少 1 条数据
- 操作步骤: - 操作步骤:
1. 点击首行「编 辑」 1. 点击首行「编 辑」
2. 断言编辑弹窗可见且回填当前术种数据 2. 断言编辑弹窗可见且回填当前术种数据
3. 点击「取 消」关闭 3. 点击「取 消」关闭
- 自动化断言:规划与 CSV `SURG-TYPE-021` 一致 - 自动化断言:规划与 CSV `SURG-TYPE-020` 一致
###### 预期结果 ###### 预期结果
...@@ -369,7 +358,7 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -369,7 +358,7 @@ ICD-9-CM-3 编码与操作名称对应正确。
--- ---
##### 【P1】【TC-UI-SURG-TYPE-022】【TP_SURG_TYPE_046】停用状态流转 ##### 【P1】【TC-UI-SURG-TYPE-021】【TP_SURG_TYPE_046】停用状态流转
- 前置条件:列表中存在启用状态术种(优先选 `${uniqOperName}` 自建数据) - 前置条件:列表中存在启用状态术种(优先选 `${uniqOperName}` 自建数据)
- 操作步骤: - 操作步骤:
...@@ -377,7 +366,7 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -377,7 +366,7 @@ ICD-9-CM-3 编码与操作名称对应正确。
2. 点击目标行「停用」,若有确认框则点「确 定」 2. 点击目标行「停用」,若有确认框则点「确 定」
3. 断言「停用」Tab 计数 +1 3. 断言「停用」Tab 计数 +1
4. 后置:对该术种执行「启用」恢复 4. 后置:对该术种执行「启用」恢复
- 自动化断言:规划与 CSV `SURG-TYPE-022` 一致;环境禁止写则 skip - 自动化断言:规划与 CSV `SURG-TYPE-021` 一致;环境禁止写则 skip
###### 预期结果 ###### 预期结果
...@@ -387,7 +376,7 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -387,7 +376,7 @@ ICD-9-CM-3 编码与操作名称对应正确。
#### 异常验证点 #### 异常验证点
##### 【P0】【TC-UI-SURG-TYPE-023】【TP_SURG_TYPE_049】停用二次确认防误操作 ##### 【P0】【TC-UI-SURG-TYPE-022】【TP_SURG_TYPE_049】停用二次确认防误操作
- 前置条件:列表中存在启用状态术种 - 前置条件:列表中存在启用状态术种
- 操作步骤: - 操作步骤:
...@@ -395,7 +384,7 @@ ICD-9-CM-3 编码与操作名称对应正确。 ...@@ -395,7 +384,7 @@ ICD-9-CM-3 编码与操作名称对应正确。
2. 点击首行「停用」 2. 点击首行「停用」
3. 若出现确认框则点「取 消」 3. 若出现确认框则点「取 消」
4. 断言计数未变化 4. 断言计数未变化
- 自动化断言:规划与 CSV `SURG-TYPE-023` 一致 - 自动化断言:规划与 CSV `SURG-TYPE-022` 一致
###### 预期结果 ###### 预期结果
......
...@@ -119,28 +119,16 @@ ...@@ -119,28 +119,16 @@
--- ---
##### 【P0】【TC-UI-SURG-STD-005】【TP_SURG_STD_023】包名称展开/收起子项
- 前置条件:列表中存在可展开的包分组
- 操作步骤:
1. 读取首个包分组名称 `${samplePkgGroupName}`
2. 点击展开该分组,断言出现子项行
3. 再次点击收起,断言子项行隐藏
- 自动化断言:规划与 CSV `SURG-STD-005` 一致
###### 预期结果
展开显示子项、收起隐藏子项;分组计数不受影响。
--- ---
##### 【P1】【TC-UI-SURG-STD-006】【TP_SURG_STD_024】查询与重置 ##### 【P1】【TC-UI-SURG-STD-005】【TP_SURG_STD_024】查询与重置
- 前置条件:已用关键字过滤 - 前置条件:已用关键字过滤
- 操作步骤: - 操作步骤:
1. 点击「重 置」 1. 点击「重 置」
2. 断言筛选输入框被清空、列表恢复默认集合 2. 断言筛选输入框被清空、列表恢复默认集合
- 自动化断言:规划与 CSV `SURG-STD-006` 一致 - 自动化断言:规划与 CSV `SURG-STD-005` 一致
###### 预期结果 ###### 预期结果
...@@ -153,14 +141,14 @@ ...@@ -153,14 +141,14 @@
#### 边界验证点 #### 边界验证点
##### 【P2】【TC-UI-SURG-STD-007】【TP_SURG_STD_027】无匹配组合空态 ##### 【P2】【TC-UI-SURG-STD-006】【TP_SURG_STD_027】无匹配组合空态
- 前置条件:已进入标准套包维护页 - 前置条件:已进入标准套包维护页
- 操作步骤: - 操作步骤:
1. 在 `productName` 输入不存在关键字 `__NOT_EXIST_STD__99999` 1. 在 `productName` 输入不存在关键字 `__NOT_EXIST_STD__99999`
2. 点击「查 询」 2. 点击「查 询」
3. 断言「暂无数据」且分页总数为 0 3. 断言「暂无数据」且分页总数为 0
- 自动化断言:规划与 CSV `SURG-STD-007` 一致 - 自动化断言:规划与 CSV `SURG-STD-006` 一致
###### 预期结果 ###### 预期结果
...@@ -175,14 +163,14 @@ ...@@ -175,14 +163,14 @@
--- ---
##### 【P0】【TC-UI-SURG-STD-008】【TP_SURG_STD_033】弹窗内筛选与选择计数联动 ##### 【P0】【TC-UI-SURG-STD-007】【TP_SURG_STD_033】弹窗内筛选与选择计数联动
- 前置条件:已打开添加基础包弹窗 - 前置条件:已打开添加基础包弹窗
- 操作步骤: - 操作步骤:
1. 在 `addBasePkgSearchInput` 输入基础包关键字 1. 在 `addBasePkgSearchInput` 输入基础包关键字
2. 勾选 1 个基础包 2. 勾选 1 个基础包
3. 断言「确定(N)」计数由 0 变为 1 3. 断言「确定(N)」计数由 0 变为 1
- 自动化断言:规划与 CSV `SURG-STD-008` 一致 - 自动化断言:规划与 CSV `SURG-STD-007` 一致
###### 预期结果 ###### 预期结果
...@@ -190,17 +178,6 @@ ...@@ -190,17 +178,6 @@
--- ---
##### 【P1】【TC-UI-SURG-STD-009】【TP_SURG_STD_034】弹窗内构成数量可编辑
- 前置条件:已勾选至少 1 个基础包
- 操作步骤:
1. 定位明细行「构成数量」步进器,点击「Increase Value」
2. 断言数量 +1 且合计随之更新
- 自动化断言:规划与 CSV `SURG-STD-009` 一致
###### 预期结果
构成数量可编辑;加减生效。
--- ---
...@@ -214,13 +191,13 @@ ...@@ -214,13 +191,13 @@
#### 异常验证点 #### 异常验证点
##### 【P1】【TC-UI-SURG-STD-010】【TP_SURG_STD_038】重复添加同一基础包 ##### 【P1】【TC-UI-SURG-STD-008】【TP_SURG_STD_038】重复添加同一基础包
- 前置条件:标准套包已含某基础包(或先添加一个) - 前置条件:标准套包已含某基础包(或先添加一个)
- 操作步骤: - 操作步骤:
1. 再次打开添加基础包,选择同一基础包并确定 1. 再次打开添加基础包,选择同一基础包并确定
2. 断言按产品规则拒绝/合并/累加,不产生重复脏行 2. 断言按产品规则拒绝/合并/累加,不产生重复脏行
- 自动化断言:规划与 CSV `SURG-STD-010` 一致;环境禁止写则 skip - 自动化断言:规划与 CSV `SURG-STD-008` 一致;环境禁止写则 skip
###### 预期结果 ###### 预期结果
...@@ -232,13 +209,13 @@ ...@@ -232,13 +209,13 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-SURG-STD-011】【TP_SURG_STD_041】打开添加散件弹窗 ##### 【P0】【TC-UI-SURG-STD-009】【TP_SURG_STD_041】打开添加散件弹窗
- 前置条件:已进入标准套包维护页 - 前置条件:已进入标准套包维护页
- 操作步骤: - 操作步骤:
1. 点击「添加散件」 1. 点击「添加散件」
2. 断言弹窗可见并展示「产品列表」视图,含物料名称/规格型号/器械注册人/耗材类型筛选与分页 2. 断言弹窗可见并展示「产品列表」视图,含物料名称/规格型号/器械注册人/耗材类型筛选与分页
- 自动化断言:规划与 CSV `SURG-STD-011` 一致 - 自动化断言:规划与 CSV `SURG-STD-009` 一致
###### 预期结果 ###### 预期结果
...@@ -246,14 +223,14 @@ ...@@ -246,14 +223,14 @@
--- ---
##### 【P0】【TC-UI-SURG-STD-012】【TP_SURG_STD_042】产品列表筛选与选择散件 ##### 【P0】【TC-UI-SURG-STD-010】【TP_SURG_STD_042】产品列表筛选与选择散件
- 前置条件:已打开添加散件弹窗 - 前置条件:已打开添加散件弹窗
- 操作步骤: - 操作步骤:
1. 在物料名称筛选框输入 `${sampleProductName}` 1. 在物料名称筛选框输入 `${sampleProductName}`
2. 勾选首个匹配散件 2. 勾选首个匹配散件
3. 断言散件进入应拣明细,计数同步变化 3. 断言散件进入应拣明细,计数同步变化
- 自动化断言:规划与 CSV `SURG-STD-012` 一致 - 自动化断言:规划与 CSV `SURG-STD-010` 一致
###### 预期结果 ###### 预期结果
...@@ -261,13 +238,13 @@ ...@@ -261,13 +238,13 @@
--- ---
##### 【P0】【TC-UI-SURG-STD-013】【TP_SURG_STD_043】散件规格/应拣明细视图 ##### 【P0】【TC-UI-SURG-STD-011】【TP_SURG_STD_043】散件规格/应拣明细视图
- 前置条件:已勾选至少 1 个散件 - 前置条件:已勾选至少 1 个散件
- 操作步骤: - 操作步骤:
1. 切换到规格明细/应拣明细视图 1. 切换到规格明细/应拣明细视图
2. 断言展示耗材品种数、耗材总数,以及应拣数量、产品编号/名称/规格/注册人/单位/耗材类型/是否收费列 2. 断言展示耗材品种数、耗材总数,以及应拣数量、产品编号/名称/规格/注册人/单位/耗材类型/是否收费列
- 自动化断言:规划与 CSV `SURG-STD-013` 一致 - 自动化断言:规划与 CSV `SURG-STD-011` 一致
###### 预期结果 ###### 预期结果
...@@ -275,13 +252,13 @@ ...@@ -275,13 +252,13 @@
--- ---
##### 【P1】【TC-UI-SURG-STD-014】【TP_SURG_STD_044】明细统计与实际一致 ##### 【P1】【TC-UI-SURG-STD-012】【TP_SURG_STD_044】明细统计与实际一致
- 前置条件:应拣明细含至少 1 个散件 - 前置条件:应拣明细含至少 1 个散件
- 操作步骤: - 操作步骤:
1. 读取「耗材品种数」`${itemKindCount}` 与「耗材总数」`${itemTotalCount}` 1. 读取「耗材品种数」`${itemKindCount}` 与「耗材总数」`${itemTotalCount}`
2. 断言品种数 = 明细去重产品数;总数 = 应拣数量合计 2. 断言品种数 = 明细去重产品数;总数 = 应拣数量合计
- 自动化断言:规划与 CSV `SURG-STD-014` 一致 - 自动化断言:规划与 CSV `SURG-STD-012` 一致
###### 预期结果 ###### 预期结果
...@@ -294,14 +271,14 @@ ...@@ -294,14 +271,14 @@
#### 边界验证点 #### 边界验证点
##### 【P2】【TC-UI-SURG-STD-015】【TP_SURG_STD_047】万级散件列表首屏可交互 ##### 【P2】【TC-UI-SURG-STD-013】【TP_SURG_STD_047】万级散件列表首屏可交互
- 前置条件:添加散件产品列表总量达万级(示例「共 16299 条」) - 前置条件:添加散件产品列表总量达万级(示例「共 16299 条」)
- 操作步骤: - 操作步骤:
1. 打开添加散件弹窗 1. 打开添加散件弹窗
2. 断言首屏可交互(筛选/分页可用),不卡死 2. 断言首屏可交互(筛选/分页可用),不卡死
3. 避免全量断言,仅校验首行与总数格式 3. 避免全量断言,仅校验首行与总数格式
- 自动化断言:规划与 CSV `SURG-STD-015` 一致 - 自动化断言:规划与 CSV `SURG-STD-013` 一致
###### 预期结果 ###### 预期结果
...@@ -313,14 +290,14 @@ ...@@ -313,14 +290,14 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-SURG-STD-016】【TP_SURG_STD_052】行内编辑构成项 ##### 【P0】【TC-UI-SURG-STD-014】【TP_SURG_STD_052】行内编辑构成项
- 前置条件:构成列表至少 1 条数据(先展开目标包) - 前置条件:构成列表至少 1 条数据(先展开目标包)
- 操作步骤: - 操作步骤:
1. 点击子项行「编 辑」 1. 点击子项行「编 辑」
2. 断言编辑弹窗/表单可见并回填当前值 2. 断言编辑弹窗/表单可见并回填当前值
3. 点击「取 消」关闭 3. 点击「取 消」关闭
- 自动化断言:规划与 CSV `SURG-STD-016` 一致 - 自动化断言:规划与 CSV `SURG-STD-014` 一致
###### 预期结果 ###### 预期结果
...@@ -330,7 +307,7 @@ ...@@ -330,7 +307,7 @@
#### 异常验证点 #### 异常验证点
##### 【P0】【TC-UI-SURG-STD-017】【TP_SURG_STD_055】移除二次确认防误删整包 ##### 【P0】【TC-UI-SURG-STD-015】【TP_SURG_STD_055】移除二次确认防误删整包
- 前置条件:构成列表至少 1 条数据(先展开目标包) - 前置条件:构成列表至少 1 条数据(先展开目标包)
- 操作步骤: - 操作步骤:
...@@ -338,7 +315,7 @@ ...@@ -338,7 +315,7 @@
2. 点击子项行「移 除」 2. 点击子项行「移 除」
3. 若出现确认框则点「取 消」 3. 若出现确认框则点「取 消」
4. 断言行数未变化 4. 断言行数未变化
- 自动化断言:规划与 CSV `SURG-STD-017` 一致 - 自动化断言:规划与 CSV `SURG-STD-015` 一致
###### 预期结果 ###### 预期结果
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
**元素扫描**:`data/scan/flow-inst-elements.json`(62 项) **元素扫描**:`data/scan/flow-inst-elements.json`(62 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-FLOW-002.md` **关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-FLOW-002.md`
**版本**:2026-10-20 **版本**:2026-10-20
**自动化框架**:Playwright + TypeScript(规划 `tests/spd/flow-inst.spec.ts`,依赖 `auth.setup` 登录态) **自动化框架**:Playwright + TypeScript(`tests/spd/flow-inst.spec.ts`,依赖 `auth.setup` 登录态)
**通用前置**:正例账号 `test_1` 经 `auth.setup` 写入 `storageState`(密码仅存 `.env` 的 `TEST_PASS`);具备「基础设置 → 流程设置 → 审批流实例」权限。反例筛选用 mock。 **通用前置**:正例账号 `test_1` 经 `auth.setup` 写入 `storageState`(密码仅存 `.env` 的 `TEST_PASS`);具备「基础设置 → 流程设置 → 审批流实例」权限。反例筛选用 mock。
**页面约定**:整页渲染,**无报表 iframe**;定位均在 `page` 上。 **页面约定**:整页渲染,**无报表 iframe**;定位均在 `page` 上。
...@@ -19,153 +19,105 @@ ...@@ -19,153 +19,105 @@
## 基础设置 · 流程设置 ## 基础设置 · 流程设置
### 审批流实例 · 页面进入
#### 功能验证点
---
#### 异常验证点
---
### 审批流实例 · 筛选与查询 ### 审批流实例 · 筛选与查询
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-FLOW-INS-001】【TP_FLOW_INS_009】默认日期区间查询 ##### 【P1】【TC-UI-FLOW-INS-001】【TP_FLOW_INS_016】重置恢复默认
- 前置条件:已进入审批流实例页 - 前置条件:已进入审批流实例页
- 操作步骤: - 操作步骤:
1. 点击「查 询」并等待列表稳定 1. 填写单据编号等条件后点击「重 置」
2. 断言出现数据行或空态明确,「共 N 条」与结果逻辑一致 2. 断言日期回到默认区间,其余条件清空,列表刷新
- 自动化断言:规划与 CSV `FLOW-INS-001` 及 `tests/spd/flow-inst.spec.ts` 一致 - 自动化断言:与 CSV `FLOW-INS-001` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果
默认查询无报错;有数据时 N≥1。
---
##### 【P0】【TC-UI-FLOW-INS-002】【TP_FLOW_INS_010】单据编号精确查询
- 前置条件:默认查询至少 1 条且单据编号非空
- 操作步骤:
1. 从首行读取 `${sampleOrderNo}`
2. 单据编号填入完整单号,点击「查 询」
3. 断言至多 1 条,且编号、业务类型与该行一致
- 自动化断言:规划与 CSV `FLOW-INS-002` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
精确单号命中当前行。 重置后日期与其它条件恢复默认。
--- ---
#### 异常验证点
--- ##### 【P1】【TC-UI-FLOW-INS-002】【TP_FLOW_INS_021】无匹配空态(mock反例)
##### 【P0】【TC-UI-FLOW-INS-003】【TP_FLOW_INS_012】按业务类型筛选
- 前置条件:默认查询至少 1 条 - 前置条件:已进入审批流实例页
- 操作步骤: - 操作步骤:
1. 从首行读取 `${sampleBizType}` 1. 单据编号填入 `__NOT_EXIST_FLOW__99999`,点击「查 询」
2. 业务类型选择该值,点击「查 询」 2. 断言空态且分页总数为 0
3. 断言结果「业务类型」均为该类型 - 自动化断言:与 CSV `FLOW-INS-002` 及 `tests/spd/flow-inst.spec.ts` 一致
- 自动化断言:规划与 CSV `FLOW-INS-003` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
业务类型筛选生效。 无匹配不报错;总数为 0。
---
--- ---
##### 【P1】【TC-UI-FLOW-INS-004】【TP_FLOW_INS_014】按摘要关键字筛选 ##### 【P0】【TC-UI-FLOW-INS-009】【TP_FLOW_INS_022】首行五项组合查询
- 前置条件:已进入审批流实例页 - 前置条件:默认查询至少 1 条;首行单据编号、审批状态、业务类型、发起时间非空
- 操作步骤: - 操作步骤:
1. 找到摘要非 `--` 的行读取 `${sampleSummary}` 关键字;若全为 `--` 则填 mock 关键字 1. 默认查询后读取首行单据编号、审批状态、业务类型、发起时间、摘要
2. 点击「查 询」 2. 重置后填入上述条件组合并查询
3. 有关键字命中时摘要包含该关键字;mock 无命中时空态且 `--` 行不被命中 3. 断言结果与首行关键字段一致
- 自动化断言:规划与 CSV `FLOW-INS-004` 及 `tests/spd/flow-inst.spec.ts` 一致 - 自动化断言:与 CSV `FLOW-INS-009` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
非空摘要可检索;`--` 不被非空关键字命中。 组合查询命中首行。
--- ---
### 审批流实例 · 列表与分页
--- #### 功能验证点
##### 【P1】【TC-UI-FLOW-INS-005】【TP_FLOW_INS_016】重置恢复默认 ##### 【P1】【TC-UI-FLOW-INS-003】【TP_FLOW_INS_028】分页翻至第 2 页
- 前置条件:已进入审批流实例页 - 前置条件:总条数大于一页,否则 skip
- 操作步骤: - 操作步骤:
1. 填写单据编号等条件后点击「重 置」 1. 记录第 1 页首行单据编号
2. 断言日期回到默认区间,其余条件清空,列表刷新 2. 翻到第 2 页
- 自动化断言:规划与 CSV `FLOW-INS-005` 及 `tests/spd/flow-inst.spec.ts` 一致 3. 断言数据更换;筛选条件保持
- 自动化断言:与 CSV `FLOW-INS-003` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
重置后日期与其它条件恢复默认。 翻页成功;筛选不丢失。
--- ---
#### 异常验证点 ##### 【P1】【TC-UI-FLOW-INS-008】【TP_FLOW_INS_029】切换20条每页页面正常且列表同步
##### 【P1】【TC-UI-FLOW-INS-006】【TP_FLOW_INS_021】无匹配空态(mock反例)
- 前置条件:已进入审批流实例页 - 前置条件:总条数大于 20
- 操作步骤: - 操作步骤:
1. 单据编号填入 `__NOT_EXIST_FLOW__99999`,点击「查 询」 1. 默认查询并记录总条数与当前页行数
2. 断言空态且分页总数为 0 2. 切换为「20 条/页」
- 自动化断言:规划与 CSV `FLOW-INS-006` 及 `tests/spd/flow-inst.spec.ts` 一致 3. 断言分页文案、当前页行数与总条数逻辑一致
- 自动化断言:与 CSV `FLOW-INS-008` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
无匹配不报错;总数为 0。 切换后列表与分页同步;总条数不变。
--- ---
### 审批流实例 · 列表与分页 ### 审批流实例 · 列设置
#### 功能验证点 #### 功能验证点
##### 【P1】【TC-UI-FLOW-INS-007】【TP_FLOW_INS_030】列设置取消勾选后再勾选列表列恢复
--- - 前置条件:列表表头已加载;存在可隐藏非核心列(如发起部门)
##### 【P1】【TC-UI-FLOW-INS-007】【TP_FLOW_INS_025】单据编号前缀与业务类型对应
- 前置条件:默认查询有数据
- 操作步骤: - 操作步骤:
1. 抽样 `PLAN`/`DB`/`GC`/`BUY` 前缀行(有则断言) 1. 打开列设置,取消勾选一列非核心字段
2. 断言 PLAN→采购计划、DB→二级库调拨、GC→产品信息变更、BUY→请领单(以现网枚举为准,缺前缀 skip 该项) 2. 断言表头隐藏
- 自动化断言:规划与 CSV `FLOW-INS-007` 及 `tests/spd/flow-inst.spec.ts` 一致 3. 再次勾选恢复并断言表头恢复
- 自动化断言:与 CSV `FLOW-INS-007` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
前缀与类型对应。 列设置 toggle 后列表列展示与勾选状态一致。
---
##### 【P1】【TC-UI-FLOW-INS-008】【TP_FLOW_INS_028】分页翻至第 2 页
- 前置条件:总条数大于一页,否则 skip
- 操作步骤:
1. 记录第 1 页首行单据编号
2. 翻到第 2 页
3. 断言数据更换;筛选条件保持
- 自动化断言:规划与 CSV `FLOW-INS-008` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果
翻页成功;筛选不丢失。
--- ---
...@@ -173,14 +125,14 @@ ...@@ -173,14 +125,14 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-FLOW-INS-009】【TP_FLOW_INS_036】打开详情对应当前行 ##### 【P0】【TC-UI-FLOW-INS-004】【TP_FLOW_INS_036】打开详情对应当前行
- 前置条件:列表至少 1 条 - 前置条件:列表至少 1 条
- 操作步骤: - 操作步骤:
1. 记录首行 `${sampleOrderNo}` 1. 记录首行 `${sampleOrderNo}`
2. 点击「详情」 2. 点击「详情」
3. 断言打开该单审批过程,标题或单号含 `${sampleOrderNo}` 3. 断言打开该单审批过程,标题或单号含 `${sampleOrderNo}`
- 自动化断言:规划与 CSV `FLOW-INS-009` 及 `tests/spd/flow-inst.spec.ts` 一致 - 自动化断言:与 CSV `FLOW-INS-004` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -188,14 +140,14 @@ ...@@ -188,14 +140,14 @@
--- ---
##### 【P1】【TC-UI-FLOW-INS-010】【TP_FLOW_INS_038】关闭详情保留列表状态 ##### 【P1】【TC-UI-FLOW-INS-005】【TP_FLOW_INS_038】关闭详情保留列表状态
- 前置条件:列表至少 1 条 - 前置条件:列表至少 1 条
- 操作步骤: - 操作步骤:
1. 填写单据编号查询后打开详情 1. 填写单据编号查询后打开详情
2. 点返回/关闭 2. 点返回/关闭
3. 断言筛选条件与列表仍是打开前的查询结果 3. 断言筛选条件与列表仍是打开前的查询结果
- 自动化断言:规划与 CSV `FLOW-INS-010` 及 `tests/spd/flow-inst.spec.ts` 一致 - 自动化断言:与 CSV `FLOW-INS-005` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -203,26 +155,27 @@ ...@@ -203,26 +155,27 @@
--- ---
##### 【P1】【TC-UI-FLOW-INS-011】【TP_FLOW_INS_037】详情只读 ##### 【P1】【TC-UI-FLOW-INS-006】【TP_FLOW_INS_037】详情只读
- 前置条件:列表至少 1 条 - 前置条件:列表至少 1 条
- 操作步骤: - 操作步骤:
1. 打开首行详情 1. 打开首行详情
2. 断言无保存审批人/改条件的提交按钮,或此类控件不可用 2. 断言无保存审批人/改条件的提交按钮,或此类控件不可用
3. 返回列表 3. 返回列表
- 自动化断言:规划与 CSV `FLOW-INS-011` 及 `tests/spd/flow-inst.spec.ts` 一致 - 自动化断言:与 CSV `FLOW-INS-006` 及 `tests/spd/flow-inst.spec.ts` 一致
###### 预期结果 ###### 预期结果
详情只读;改配置须到审批流程设置。 详情只读;改配置须到审批流程设置。
---
## 质量与覆盖说明 ## 质量与覆盖说明
| 项 | 说明 | | 项 | 说明 |
|----|------| |----|------|
| 用例数 | **17** 条(P0=10 / P1=7) | | 用例数 | **9** 条(P0=2 / P1=7) |
| 来源 | 从 41 条测试点选取可稳定自动化的主路径与关键反向 | | 来源 | 从测试点选取可稳定自动化的主路径与关键反向 |
| 未纳入自动化 | 改审批人、接口失败、会话过期、无菜单权限、详情与流程设置节点逐条对照(可另开集成专项) | | 未纳入自动化 | 未登录拦截、默认查询、单项精确/类型/时间/摘要筛选、列表列完整性、前缀规则等(已从本批 CSV/脚本移除) |
| 单一职责 | 每条只断言一个核心业务结果 | | 单一职责 | 每条只断言一个核心业务结果 |
| 独立性 | 每条独立 `open()`,不复用 BrowserContext;不依赖上一条写结果 | | 独立性 | 每条独立 `open()`,不复用 BrowserContext;不依赖上一条写结果 |
...@@ -177,18 +177,6 @@ ...@@ -177,18 +177,6 @@
#### 功能验证点 #### 功能验证点
##### 【P1】【TC-UI-USER-UNI-009】【TP_USER_UNI_027】切换20条每页页面正常且列表同步
- 前置条件:默认查询总条数大于 10 且切换前可见行数不等于 min(N,20),否则 skip
- 操作步骤:
1. 点击「查 询」,记录分页「共 N 条」与当前页可见行数
2. 分页区切换每页条数为「20 条/页」
3. 断言分页显示 20 条/页;总条数 N 不变;当前页行数为 min(N,20) 且与切换前不同;所属医院筛选、表头可见无报错
- 自动化断言:与 CSV `USER-UNI-009` 及 `tests/spd/basic-user-union.spec.ts` 一致
###### 预期结果
切换 20 条/页成功;页面正常;列表可见行数随每页条数同步变化且总数不变。
--- ---
...@@ -202,7 +190,7 @@ ...@@ -202,7 +190,7 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-USER-UNI-010】【TP_USER_UNI_051】打开授权后取消不生效 ##### 【P0】【TC-UI-USER-UNI-009】【TP_USER_UNI_051】打开授权后取消不生效
- 前置条件:列表至少 1 条 - 前置条件:列表至少 1 条
- 操作步骤: - 操作步骤:
...@@ -210,7 +198,7 @@ ...@@ -210,7 +198,7 @@
2. 断言打开用户角色授权层,可见可勾选菜单/功能 2. 断言打开用户角色授权层,可见可勾选菜单/功能
3. 如可勾选则改一处勾选后点取消/关闭 3. 如可勾选则改一处勾选后点取消/关闭
4. 再次打开同一用户授权,断言勾选与操作前一致 4. 再次打开同一用户授权,断言勾选与操作前一致
- 自动化断言:与 CSV `USER-UNI-010` 及 `tests/spd/basic-user-union.spec.ts` 一致 - 自动化断言:与 CSV `USER-UNI-009` 及 `tests/spd/basic-user-union.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -221,7 +209,7 @@ ...@@ -221,7 +209,7 @@
--- ---
##### 【P1】【TC-UI-USER-UNI-011】【TP_USER_UNI_051】授权弹框添加移除角色行 ##### 【P1】【TC-UI-USER-UNI-010】【TP_USER_UNI_051】授权弹框添加移除角色行
- 前置条件:列表至少 1 条;授权弹框含「添加/移除」(非仅权限树模式),否则 skip - 前置条件:列表至少 1 条;授权弹框含「添加/移除」(非仅权限树模式),否则 skip
- 操作步骤: - 操作步骤:
...@@ -230,7 +218,7 @@ ...@@ -230,7 +218,7 @@
3. 记录弹框内可「移除」的角色行数,点击「添加」 3. 记录弹框内可「移除」的角色行数,点击「添加」
4. 断言可移除行数 +1;点击新增行的「移除」 4. 断言可移除行数 +1;点击新增行的「移除」
5. 断言可移除行数恢复为添加前;关闭弹框且不保存 5. 断言可移除行数恢复为添加前;关闭弹框且不保存
- 自动化断言:与 CSV `USER-UNI-011` 及 `tests/spd/basic-user-union.spec.ts` 一致 - 自动化断言:与 CSV `USER-UNI-010` 及 `tests/spd/basic-user-union.spec.ts` 一致
###### 预期结果 ###### 预期结果
......
...@@ -139,45 +139,21 @@ ...@@ -139,45 +139,21 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-USER-USR-007】【TP_USER_USR_054】打开编辑用户弹窗并回填
- 前置条件:列表至少 1 条
- 操作步骤:
1. 点击首行「编辑」
2. 断言弹窗标题含「编辑用户」
3. 断言账号、姓名与该行 `${sampleLoginName}`、`${sampleUserName}` 一致(允许规范化空白)
- 自动化断言:与 CSV `USER-USR-007` 及 `tests/spd/basic-user.spec.ts` 一致
###### 预期结果
编辑弹窗可见;回填与列表行一致。
--- ---
##### 【P1】【TC-UI-USER-USR-008】【TP_USER_USR_058】编辑取消不保存
- 前置条件:列表至少 1 条
- 操作步骤:
1. 打开首行编辑,记录原姓名
2. 将姓名改为临时值后点「取 消」
3. 再次打开编辑,断言姓名仍为原值
- 自动化断言:与 CSV `USER-USR-008` 及 `tests/spd/basic-user.spec.ts` 一致
###### 预期结果
取消后列表与回看均为修改前姓名。
--- ---
#### 边界验证点 #### 边界验证点
##### 【P1】【TC-UI-USER-USR-009】【TP_USER_USR_061】编辑时账号只读 ##### 【P1】【TC-UI-USER-USR-007】【TP_USER_USR_061】编辑时账号只读
- 前置条件:列表至少 1 条 - 前置条件:列表至少 1 条
- 操作步骤: - 操作步骤:
1. 打开首行编辑 1. 打开首行编辑
2. 断言登录账号不可改(disabled/readonly 或无法输入) 2. 断言登录账号不可改(disabled/readonly 或无法输入)
- 自动化断言:与 CSV `USER-USR-009` 及 `tests/spd/basic-user.spec.ts` 一致 - 自动化断言:与 CSV `USER-USR-007` 及 `tests/spd/basic-user.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -187,14 +163,14 @@ ...@@ -187,14 +163,14 @@
#### 功能验证点 #### 功能验证点
##### 【P1】【TC-UI-USER-USR-010】【TP_USER_USR_056】编辑弹窗可见签名图片 ##### 【P1】【TC-UI-USER-USR-008】【TP_USER_USR_056】编辑弹窗可见签名图片
- 前置条件:列表至少 1 条 - 前置条件:列表至少 1 条
- 操作步骤: - 操作步骤:
1. 打开首行编辑 1. 打开首行编辑
2. 断言可见「签名图片」区域(有图则展示,无图则上传入口可见) 2. 断言可见「签名图片」区域(有图则展示,无图则上传入口可见)
3. 点「取 消」,不保存 3. 点「取 消」,不保存
- 自动化断言:与 CSV `USER-USR-010` 及 `tests/spd/basic-user.spec.ts` 一致 - 自动化断言:与 CSV `USER-USR-008` 及 `tests/spd/basic-user.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -206,7 +182,7 @@ ...@@ -206,7 +182,7 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-USER-USR-011】【TP_USER_USR_068】打开授权后取消不生效 ##### 【P0】【TC-UI-USER-USR-009】【TP_USER_USR_068】打开授权后取消不生效
- 前置条件:列表至少 1 条 - 前置条件:列表至少 1 条
- 操作步骤: - 操作步骤:
...@@ -214,7 +190,7 @@ ...@@ -214,7 +190,7 @@
2. 断言打开授权层(弹窗或权限树),可见可勾选菜单/功能 2. 断言打开授权层(弹窗或权限树),可见可勾选菜单/功能
3. 如可勾选则改一处勾选后点取消/关闭 3. 如可勾选则改一处勾选后点取消/关闭
4. 再次打开同一用户授权,断言勾选与操作前一致 4. 再次打开同一用户授权,断言勾选与操作前一致
- 自动化断言:与 CSV `USER-USR-011` 及 `tests/spd/basic-user.spec.ts` 一致 - 自动化断言:与 CSV `USER-USR-009` 及 `tests/spd/basic-user.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -226,14 +202,14 @@ ...@@ -226,14 +202,14 @@
#### 功能验证点 #### 功能验证点
##### 【P1】【TC-UI-USER-USR-012】【TP_USER_USR_032】切换20条每页页面正常且列表同步 ##### 【P1】【TC-UI-USER-USR-010】【TP_USER_USR_032】切换20条每页页面正常且列表同步
- 前置条件:默认查询总条数大于 10 且切换前可见行数不等于 min(N,20),否则 skip - 前置条件:默认查询总条数大于 10 且切换前可见行数不等于 min(N,20),否则 skip
- 操作步骤: - 操作步骤:
1. 点击「查 询」,记录分页「共 N 条」与当前页可见行数 1. 点击「查 询」,记录分页「共 N 条」与当前页可见行数
2. 分页区切换每页条数为「20 条/页」 2. 分页区切换每页条数为「20 条/页」
3. 断言分页显示 20 条/页;总条数 N 不变;当前页行数为 min(N,20) 且与切换前不同;筛选区、表头可见无报错 3. 断言分页显示 20 条/页;总条数 N 不变;当前页行数为 min(N,20) 且与切换前不同;筛选区、表头可见无报错
- 自动化断言:与 CSV `USER-USR-012` 及 `tests/spd/basic-user.spec.ts` 一致 - 自动化断言:与 CSV `USER-USR-010` 及 `tests/spd/basic-user.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -251,7 +227,7 @@ ...@@ -251,7 +227,7 @@
#### 功能验证点 #### 功能验证点
##### 【P0】【TC-UI-USER-USR-013】【TP_USER_USR_068】授权弹框账号与所选行一致 ##### 【P0】【TC-UI-USER-USR-011】【TP_USER_USR_068】授权弹框账号与所选行一致
- 前置条件:列表至少 1 条且登录账号非空 - 前置条件:列表至少 1 条且登录账号非空
- 操作步骤: - 操作步骤:
...@@ -259,7 +235,7 @@ ...@@ -259,7 +235,7 @@
2. 点击该行「授权」 2. 点击该行「授权」
3. 断言弹出用户角色授权弹框,弹框展示的账号信息与所选行登录账号、姓名一致 3. 断言弹出用户角色授权弹框,弹框展示的账号信息与所选行登录账号、姓名一致
4. 关闭弹框 4. 关闭弹框
- 自动化断言:与 CSV `USER-USR-013` 及 `tests/spd/basic-user.spec.ts` 一致 - 自动化断言:与 CSV `USER-USR-011` 及 `tests/spd/basic-user.spec.ts` 一致
###### 预期结果 ###### 预期结果
...@@ -267,7 +243,7 @@ ...@@ -267,7 +243,7 @@
--- ---
##### 【P1】【TC-UI-USER-USR-014】【TP_USER_USR_082】授权弹框添加移除角色行 ##### 【P1】【TC-UI-USER-USR-012】【TP_USER_USR_082】授权弹框添加移除角色行
- 前置条件:列表至少 1 条;授权弹框含「添加/移除」(非仅权限树模式),否则 skip - 前置条件:列表至少 1 条;授权弹框含「添加/移除」(非仅权限树模式),否则 skip
- 操作步骤: - 操作步骤:
...@@ -276,7 +252,7 @@ ...@@ -276,7 +252,7 @@
3. 记录弹框内可「移除」的角色行数,点击「添加」 3. 记录弹框内可「移除」的角色行数,点击「添加」
4. 断言可移除行数 +1;点击新增行的「移除」 4. 断言可移除行数 +1;点击新增行的「移除」
5. 断言可移除行数恢复为添加前;关闭弹框且不保存 5. 断言可移除行数恢复为添加前;关闭弹框且不保存
- 自动化断言:与 CSV `USER-USR-014` 及 `tests/spd/basic-user.spec.ts` 一致 - 自动化断言:与 CSV `USER-USR-012` 及 `tests/spd/basic-user.spec.ts` 一致
###### 预期结果 ###### 预期结果
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
筛选恢复默认。 筛选恢复默认。
##### 【P0】【TC-UI-STAT-PTR-002】【TP_STAT_PTR_014】统计周期院区产品组合查询 ##### 【P0】【TC-UI-STAT-PTR-002】【TP_STAT_PTR_014】统计周期院区物料组合查询
- 操作步骤(可选):样本填入院区、物料名称、规格型号、耗材类型 → 查询。 - 操作步骤(可选):样本填入院区、物料名称、规格型号、耗材类型 → 查询。
- 自动化断言:首行「物料编号/名称」「规格型号」「耗材类型」匹配;「时间段天数」与周期天数一致。 - 自动化断言:首行「物料编号/名称」「规格型号」「耗材类型」匹配;「时间段天数」与周期天数一致。
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
- 操作步骤(可选): - 操作步骤(可选):
1. 默认查询有数据。 1. 默认查询有数据。
2. 检查表头含「物料编号」「物料名称」「规格型号」「生产厂家」「耗材类型」「默认供应商」。 2. 检查表头含「物料编号」「物料名称」「规格型号」「器械注册人」「耗材类型」「默认销售商」。
3. 横向拖拉滚动列表。 3. 横向拖拉滚动列表。
4. `expectTableHorizontalScrollAndLayout()` 校验布局。 4. `expectTableHorizontalScrollAndLayout()` 校验布局。
- 自动化断言:scrollLeft 发生变化;滚动前后布局校验均通过。 - 自动化断言:scrollLeft 发生变化;滚动前后布局校验均通过。
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
##### 【P2】【TC-UI-STAT-PTR-018】【TP_STAT_PTR_030】列设置取消勾选后再勾选恢复 ##### 【P2】【TC-UI-STAT-PTR-018】【TP_STAT_PTR_030】列设置取消勾选后再勾选恢复
- 操作步骤(可选):打开列设置 → 取消勾选「单位」或「默认供应商」→ 关闭 → 再勾选恢复。 - 操作步骤(可选):打开列设置 → 取消勾选「单位」或「默认销售商」→ 关闭 → 再勾选恢复。
###### 预期结果 ###### 预期结果
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
###### 预期结果 ###### 预期结果
右侧抽屉展开;遮罩可见;抽屉内表单字段(物料名称、记账日期、院区名称、来源单位、批号、进院供应商、单据形态)可交互。 右侧抽屉展开;遮罩可见;抽屉内表单字段(物料名称、记账日期、院区名称、来源单位、批号、销售商(自定义)、单据形态)可交互。
##### 【P1】【TC-UI-STAT-IES-003】【TP_STAT_IES_036】抽屉内重置恢复抽屉字段默认 ##### 【P1】【TC-UI-STAT-IES-003】【TP_STAT_IES_036】抽屉内重置恢复抽屉字段默认
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
- 操作步骤(可选): - 操作步骤(可选):
1. 默认查询 → `searchAndExtractSample()` 获取首行样本;若有子表数据则 `expandFirstRow()` 读取明细字段。 1. 默认查询 → `searchAndExtractSample()` 获取首行样本;若有子表数据则 `expandFirstRow()` 读取明细字段。
2. 快捷区填入样本中的产品、记账日期、单据类型;按需勾选维度(记录 baseline)。 2. 快捷区填入样本中的产品、记账日期、单据类型;按需勾选维度(记录 baseline)。
3. 高级筛选抽屉填入样本中所有非空字段(院区、来源单位、批号、进院供应商、单据形态等)。 3. 高级筛选抽屉填入样本中所有非空字段(院区、来源单位、批号、销售商(自定义)、单据形态等)。
4. 点击「筛 选」后抽样首行与底部汇总。 4. 点击「筛 选」后抽样首行与底部汇总。
- 自动化断言:首行同时满足样本中全部已填字段;底部「入库品种/入库单元数/入库数量/入库金额」与筛选一致。 - 自动化断言:首行同时满足样本中全部已填字段;底部「入库品种/入库单元数/入库数量/入库金额」与筛选一致。
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
##### 【P0】【TC-UI-STAT-NES-002】【TP_STAT_NES_013】物资编码名称日期组合查询 ##### 【P0】【TC-UI-STAT-NES-002】【TP_STAT_NES_013】物资编码名称日期组合查询
- 操作步骤(可选):样本填入编码/名称/单据日期 → 查询。 - 操作步骤(可选):样本填入编码/名称/单据日期 → 查询。
- 自动化断言:首行「产品编码」「物料名称」匹配。 - 自动化断言:首行「物料编码」「物料名称」匹配。
###### 预期结果 ###### 预期结果
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
##### 【P0】【TC-UI-STAT-NES-004】【TP_STAT_NES_026】四维度组合勾选查询 ##### 【P0】【TC-UI-STAT-NES-004】【TP_STAT_NES_026】四维度组合勾选查询
- 操作步骤(可选):勾选「供应商」「物资编码」「是否计费」「是否集采」→ 查询。 - 操作步骤(可选):勾选「供应商」「物资编码」「是否计费」「是否集采」→ 查询。
- 自动化断言:列表含对应维度列(进院供应商、是否计费、是否集采等);行粒度细于未勾选。 - 自动化断言:列表含对应维度列(销售商(自定义)、是否计费、是否集采等);行粒度细于未勾选。
###### 预期结果 ###### 预期结果
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
- 操作步骤(可选):默认查询 → `scrollColumnIntoView(column)` → `expectColumnSortToggle(column)`(先升序后降序各校验一次)。 - 操作步骤(可选):默认查询 → `scrollColumnIntoView(column)` → `expectColumnSortToggle(column)`(先升序后降序各校验一次)。
可排序列:产品编码、物料名称、单位、耗材类型、是否集采、是否计费、厂家、进院供应商、供应商编码、医保单件名称、注册证号、数量、金额(规格型号、27位医保编码默认不展示,不单列排序用例)。 可排序列:物料编码、物料名称、单位、耗材类型、是否集采、是否计费、厂家、销售商(自定义)、供应商编码、医保单件名称、注册证号、数量、金额(规格型号、27位医保编码默认不展示,不单列排序用例)。
###### 预期结果 ###### 预期结果
......
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
- 操作步骤(可选): - 操作步骤(可选):
1. 默认查询 → `expectTableHeaders()` 校验核心列。 1. 默认查询 → `expectTableHeaders()` 校验核心列。
2. `expectTableHorizontalScrollAndLayout()`:确认「院区」可见 → 滚动前列布局正常 → 横向拖拉 → 「金额」进入视口 → 滚动后无列变形/异常间隙。 2. `expectTableHorizontalScrollAndLayout()`:确认「院区」可见 → 滚动前列布局正常 → 横向拖拉 → 「金额」进入视口 → 滚动后无列变形/异常间隙。
- 自动化断言:表头含「院区」「上级科室名称」「科室名称」「产品编码」「物料名称」「耗材类型」「27位医保编码」「HIS收费编码」;`scrollLeft` 变化;相邻表头列间隙 ≤ 48px。 - 自动化断言:表头含「院区」「上级科室名称」「科室名称」「物料编码」「物料名称」「耗材类型」「27位医保编码」「HIS收费编码」;`scrollLeft` 变化;相邻表头列间隙 ≤ 48px。
###### 预期结果 ###### 预期结果
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
- 操作步骤(可选):默认查询 → `scrollColumnIntoView(column)` → `expectColumnSortToggle(column)`(先升序后降序各校验一次)。 - 操作步骤(可选):默认查询 → `scrollColumnIntoView(column)` → `expectColumnSortToggle(column)`(先升序后降序各校验一次)。
可排序列:院区、上级科室编码、上级科室名称、科室编码、科室名称、产品编码、物料名称、单位、耗材类型、厂家、27位医保编码、数量、金额。 可排序列:院区、上级科室编码、上级科室名称、科室编码、科室名称、物料编码、物料名称、单位、耗材类型、厂家、27位医保编码、数量、金额。
###### 预期结果 ###### 预期结果
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
- 操作步骤(可选): - 操作步骤(可选):
1. 默认查询,`searchAndExtractSample()` 从**首行**读取样本。 1. 默认查询,`searchAndExtractSample()` 从**首行**读取样本。
2. `searchWithQuickAndDrawerCombo()`:快捷区填入物资名称、记账日期、物资分类;抽屉填入单号、院区、单据类型、生成方式、进院供应商、采购员。 2. `searchWithQuickAndDrawerCombo()`:快捷区填入物资名称、记账日期、物资分类;抽屉填入单号、院区、单据类型、生成方式、销售商(自定义)、采购员。
3. `expectCombinedFilterResult()` 校验首行包含样本关键字段。 3. `expectCombinedFilterResult()` 校验首行包含样本关键字段。
- 自动化断言:首行含物资编号/名称/记账日期/物资分类/单据类型/单号/院区(样本有值则校验);底部汇总可见。 - 自动化断言:首行含物资编号/名称/记账日期/物资分类/单据类型/单号/院区(样本有值则校验);底部汇总可见。
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
- 操作步骤(可选): - 操作步骤(可选):
1. 默认条件点击「查 询」。 1. 默认条件点击「查 询」。
2. `expectTableHeaders()` 校验核心列。 2. `expectTableHeaders()` 校验核心列。
3. `expectTableHorizontalScrollAndLayout()` 横向拖拉滚动,锚点列「物资名称」→ 目标列「进院供应商」。 3. `expectTableHorizontalScrollAndLayout()` 横向拖拉滚动,锚点列「物资名称」→ 目标列「销售商(自定义)」。
- 自动化断言:表头含「物资编号」「物资名称」「来源/目标」「单据类型」「物资分类」「结算方式」;列表可正常横向滚动;滚动前后表头相邻列无变形空格/重叠。 - 自动化断言:表头含「物资编号」「物资名称」「来源/目标」「单据类型」「物资分类」「结算方式」;列表可正常横向滚动;滚动前后表头相邻列无变形空格/重叠。
###### 预期结果 ###### 预期结果
......
...@@ -124,8 +124,8 @@ ...@@ -124,8 +124,8 @@
| STAT-IOD-010 | 单位 | STAT-IOD-025 | 入库数量 | | STAT-IOD-010 | 单位 | STAT-IOD-025 | 入库数量 |
| STAT-IOD-011 | 备注 | STAT-IOD-026 | 出库数量 | | STAT-IOD-011 | 备注 | STAT-IOD-026 | 出库数量 |
| STAT-IOD-012 | 批号 | STAT-IOD-027 | 单号 | | STAT-IOD-012 | 批号 | STAT-IOD-027 | 单号 |
| STAT-IOD-013 | 进院供应商 | STAT-IOD-028 | 来源/目标 | | STAT-IOD-013 | 销售商(自定义) | STAT-IOD-028 | 来源/目标 |
| STAT-IOD-014 | 二级供应商 | STAT-IOD-029 | 配送单价 | | STAT-IOD-014 | 供应商 | STAT-IOD-029 | 配送单价 |
| STAT-IOD-015 | 院区名称 | STAT-IOD-030 | 入院单价 | | STAT-IOD-015 | 院区名称 | STAT-IOD-030 | 入院单价 |
| STAT-IOD-016 | 耗材分类 | STAT-IOD-031 | 金额 | | STAT-IOD-016 | 耗材分类 | STAT-IOD-031 | 金额 |
| STAT-IOD-017 | 记账日期 | STAT-IOD-032 | 医保编码 | | STAT-IOD-017 | 记账日期 | STAT-IOD-032 | 医保编码 |
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
###### 预期结果 ###### 预期结果
抽屉展开;含院区、出库目标、批号、进院供应商等字段。 抽屉展开;含院区、出库目标、批号、销售商(自定义)等字段。
##### 【P1】【TC-UI-STAT-OOS-003】【TP_STAT_OOS_035】抽屉内重置恢复默认 ##### 【P1】【TC-UI-STAT-OOS-003】【TP_STAT_OOS_035】抽屉内重置恢复默认
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment