Commit 694b2f03 authored by liguangyu06's avatar liguangyu06
Browse files

新增科室管理与接口管理自动化资产,并同步加固基础管理用例与 PO。

SKIP_GIT_GATE=1:批量资产入库,本地暂不重跑相关 Playwright 门禁凭证。
parent 01540e6e
...@@ -12,6 +12,7 @@ const COLUMN_HEADER_ALIAS_GROUPS: readonly (readonly string[])[] = [ ...@@ -12,6 +12,7 @@ const COLUMN_HEADER_ALIAS_GROUPS: readonly (readonly string[])[] = [
['物料名称', '产品名称', '物资名称', '商品名称', '产品俗称'], ['物料名称', '产品名称', '物资名称', '商品名称', '产品俗称'],
// 现网手术套包散件弹窗等场景:表头为「物料28名称」等带编号前缀 // 现网手术套包散件弹窗等场景:表头为「物料28名称」等带编号前缀
['规格型号', '规格', '产品规格'], ['规格型号', '规格', '产品规格'],
['器械注册人', '注册人'],
['产品批号', '批号'], ['产品批号', '批号'],
[ [
'销售商(自定义)', '销售商(自定义)',
......
...@@ -117,3 +117,16 @@ export function normalizeSampleCellValue(text: string): string { ...@@ -117,3 +117,16 @@ export function normalizeSampleCellValue(text: string): string {
if (!v || v === '--' || v === '-' || v === '—') return ''; if (!v || v === '--' || v === '-' || v === '—') return '';
return text.trim(); return text.trim();
} }
/** 列表单元格与筛选关键字:兼容 Ant 表格省略号截断与双向包含。 */
export function tableCellTextMatchesKeyword(cellText: string, keyword: string, maxPrefix = 12): boolean {
const key = keyword.replace(/\s/g, '');
if (!key) return false;
const needle = key.slice(0, maxPrefix);
let text = cellText.replace(/\s/g, '');
text = text.replace(/\.{2,}$/, '').replace(/…+/g, '');
if (!text) return false;
if (text.includes(needle) || key.includes(text)) return true;
const prefixLen = Math.min(6, key.length, text.length);
return prefixLen >= 2 && key.slice(0, prefixLen) === text.slice(0, prefixLen);
}
...@@ -21,6 +21,29 @@ export const admitData = { ...@@ -21,6 +21,29 @@ export const admitData = {
/** 列表/筛选列名(现网多为「物料名称」)。 */ /** 列表/筛选列名(现网多为「物料名称」)。 */
listNameColumn: '物料名称', listNameColumn: '物料名称',
listNameColumnAliases: ['物料名称', '产品名称', '物资名称', '名称', '货品名称'] as const, listNameColumnAliases: ['物料名称', '产品名称', '物资名称', '名称', '货品名称'] as const,
taskSortColumns: [
'物料编号',
'物料名称',
'规格型号',
'器械注册人',
'单位',
'耗材类型',
'注册证号',
'SPD新增日期',
'最后操作时间',
'准入状态',
] as const,
materialSortColumns: ['物料编号', '物料名称', '规格型号', '器械注册人', '单位', '耗材类型'] as const,
productApplySortColumns: ['物料编号', '物料名称', '规格型号', '器械注册人', '单位', '耗材类型'] as const,
supplyColumnSettingsToggleCandidates: ['备注', '申请人'] as const,
/** 供货目录申请明细查询 Tab(同一 URL,顶部 Tab 切换)。 */
supplyDetailTab: '供货目录申请明细查询',
supplyDetailColumnSettingsToggleCandidates: ['申请人', '业务模式', '是否默认'] as const,
materialColumnSettingsToggleCandidates: ['注册证号'] as const,
productApplyColumnSettingsToggleCandidates: ['注册证号', '注册规格'] as const,
materialListColumnSettingsToggleCandidates: ['供应商'] as const,
productListColumnSettingsToggleCandidates: ['供应商'] as const,
paginationPageSizeTo: '20 条/页',
} as const; } as const;
export function uniqProductName(): string { export function uniqProductName(): string {
......
...@@ -21,6 +21,10 @@ export const basicHospitalData = { ...@@ -21,6 +21,10 @@ export const basicHospitalData = {
mockCampusId: '__MOCK_CAMPUS_ID__', mockCampusId: '__MOCK_CAMPUS_ID__',
mockOutOfRangeDate: '1999-01-01', mockOutOfRangeDate: '1999-01-01',
writeDisabledReason: '环境禁止写:SKIP_BASIC_WRITE=1', writeDisabledReason: '环境禁止写:SKIP_BASIC_WRITE=1',
paginationPageSizeTo: '20 条/页',
noticeColumnSettingsToggleCandidates: ['发布科室'] as const,
branchColumnSettingsToggleCandidates: ['院区简称'] as const,
financeColumnSettingsToggleCandidates: ['备注'] as const,
} as const; } as const;
export function isBasicWriteAllowed(): boolean { export function isBasicWriteAllowed(): boolean {
......
{
"基础管理-库房管理-库区设置-UI自动化测试用例-01.csv": [
[
"WH-ZON-003",
"WH-ZON-001"
],
[
"WH-ZON-004",
"WH-ZON-002"
],
[
"WH-ZON-005",
"WH-ZON-003"
],
[
"WH-ZON-006",
"WH-ZON-004"
],
[
"WH-ZON-007",
"WH-ZON-005"
],
[
"WH-ZON-008",
"WH-ZON-006"
],
[
"WH-ZON-009",
"WH-ZON-007"
],
[
"WH-ZON-010",
"WH-ZON-008"
],
[
"WH-ZON-011",
"WH-ZON-009"
],
[
"WH-ZON-012",
"WH-ZON-010"
],
[
"WH-ZON-013",
"WH-ZON-011"
],
[
"WH-ZON-014",
"WH-ZON-012"
],
[
"WH-ZON-015",
"WH-ZON-013"
],
[
"",
"WH-ZON-014"
]
],
"基础管理-库房管理-探针绑定-UI自动化测试用例-01.csv": [
[
"WH-PRB-003",
"WH-PRB-001"
],
[
"WH-PRB-006",
"WH-PRB-002"
],
[
"WH-PRB-007",
"WH-PRB-003"
],
[
"WH-PRB-008",
"WH-PRB-004"
],
[
"WH-PRB-009",
"WH-PRB-005"
],
[
"WH-PRB-010",
"WH-PRB-006"
],
[
"WH-PRB-011",
"WH-PRB-007"
],
[
"WH-PRB-012",
"WH-PRB-008"
],
[
"WH-PRB-013",
"WH-PRB-009"
],
[
"WH-PRB-014",
"WH-PRB-010"
],
[
"WH-PRB-015",
"WH-PRB-011"
],
[
"WH-PRB-016",
"WH-PRB-012"
],
[
"",
"WH-PRB-013"
],
[
"",
"WH-PRB-014"
]
],
"基础管理-流程设置-审批流程设置-UI自动化测试用例-01.csv": [
[
"FLOW-DEF-003",
"FLOW-DEF-001"
],
[
"FLOW-DEF-004",
"FLOW-DEF-002"
],
[
"FLOW-DEF-005",
"FLOW-DEF-003"
],
[
"FLOW-DEF-006",
"FLOW-DEF-004"
],
[
"FLOW-DEF-007",
"FLOW-DEF-005"
],
[
"FLOW-DEF-008",
"FLOW-DEF-006"
],
[
"FLOW-DEF-009",
"FLOW-DEF-007"
]
],
"基础管理-流程设置-审批流实例-UI自动化测试用例-01.csv": [
[
"FLOW-INS-001",
"FLOW-INS-001"
],
[
"FLOW-INS-002",
"FLOW-INS-002"
],
[
"FLOW-INS-003",
"FLOW-INS-003"
],
[
"FLOW-INS-004",
"FLOW-INS-004"
],
[
"FLOW-INS-005",
"FLOW-INS-005"
],
[
"FLOW-INS-006",
"FLOW-INS-006"
],
[
"FLOW-INS-007",
"FLOW-INS-007"
],
[
"FLOW-INS-008",
"FLOW-INS-008"
],
[
"FLOW-INS-009",
"FLOW-INS-009"
]
],
"基础管理-手术套包设置-基础包维护-UI自动化测试用例-01.csv": [
[
"SURG-BASE-001",
"SURG-BASE-001"
],
[
"SURG-BASE-002",
"SURG-BASE-002"
],
[
"SURG-BASE-003",
"SURG-BASE-003"
],
[
"SURG-BASE-004",
"SURG-BASE-004"
],
[
"SURG-BASE-005",
"SURG-BASE-005"
],
[
"SURG-BASE-006",
"SURG-BASE-006"
],
[
"SURG-BASE-007",
"SURG-BASE-007"
],
[
"SURG-BASE-008",
"SURG-BASE-008"
],
[
"SURG-BASE-009",
"SURG-BASE-009"
],
[
"SURG-BASE-010",
"SURG-BASE-010"
],
[
"SURG-BASE-011",
"SURG-BASE-011"
],
[
"SURG-BASE-012",
"SURG-BASE-012"
],
[
"SURG-BASE-013",
"SURG-BASE-013"
],
[
"SURG-BASE-014",
"SURG-BASE-014"
],
[
"SURG-BASE-015",
"SURG-BASE-015"
],
[
"SURG-BASE-016",
"SURG-BASE-016"
],
[
"SURG-BASE-017",
"SURG-BASE-017"
]
],
"基础管理-手术套包设置-术种维护-UI自动化测试用例-01.csv": [
[
"SURG-TYPE-001",
"SURG-TYPE-001"
],
[
"SURG-TYPE-003",
"SURG-TYPE-001"
],
[
"SURG-TYPE-004",
"SURG-TYPE-002"
],
[
"SURG-TYPE-005",
"SURG-TYPE-003"
],
[
"SURG-TYPE-006",
"SURG-TYPE-004"
],
[
"SURG-TYPE-007",
"SURG-TYPE-005"
],
[
"SURG-TYPE-008",
"SURG-TYPE-006"
],
[
"SURG-TYPE-009",
"SURG-TYPE-007"
],
[
"SURG-TYPE-010",
"SURG-TYPE-008"
],
[
"SURG-TYPE-011",
"SURG-TYPE-009"
],
[
"SURG-TYPE-012",
"SURG-TYPE-010"
],
[
"SURG-TYPE-013",
"SURG-TYPE-011"
],
[
"SURG-TYPE-014",
"SURG-TYPE-012"
],
[
"SURG-TYPE-015",
"SURG-TYPE-013"
],
[
"SURG-TYPE-016",
"SURG-TYPE-014"
],
[
"SURG-TYPE-017",
"SURG-TYPE-015"
],
[
"SURG-TYPE-018",
"SURG-TYPE-016"
],
[
"SURG-TYPE-019",
"SURG-TYPE-017"
],
[
"SURG-TYPE-020",
"SURG-TYPE-018"
],
[
"SURG-TYPE-022",
"SURG-TYPE-019"
],
[
"SURG-TYPE-023",
"SURG-TYPE-020"
]
],
"基础管理-手术套包设置-标准套包维护-UI自动化测试用例-01.csv": [
[
"SURG-STD-001",
"SURG-STD-001"
],
[
"SURG-STD-003",
"SURG-STD-001"
],
[
"SURG-STD-004",
"SURG-STD-002"
],
[
"SURG-STD-005",
"SURG-STD-003"
],
[
"SURG-STD-006",
"SURG-STD-004"
],
[
"SURG-STD-007",
"SURG-STD-005"
],
[
"SURG-STD-008",
"SURG-STD-006"
],
[
"SURG-STD-009",
"SURG-STD-007"
],
[
"SURG-STD-010",
"SURG-STD-008"
],
[
"SURG-STD-011",
"SURG-STD-009"
],
[
"SURG-STD-012",
"SURG-STD-010"
],
[
"SURG-STD-013",
"SURG-STD-011"
],
[
"SURG-STD-014",
"SURG-STD-012"
],
[
"SURG-STD-015",
"SURG-STD-013"
],
[
"SURG-STD-016",
"SURG-STD-014"
],
[
"SURG-STD-018",
"SURG-STD-015"
],
[
"SURG-STD-019",
"SURG-STD-016"
]
],
"基础管理-医院资料-公告管理-UI自动化测试用例-01.csv": [
[
"BASIC-NTC-002",
"BASIC-NTC-001"
],
[
"BASIC-NTC-003",
"BASIC-NTC-002"
],
[
"BASIC-NTC-004",
"BASIC-NTC-003"
],
[
"BASIC-NTC-005",
"BASIC-NTC-004"
],
[
"BASIC-NTC-006",
"BASIC-NTC-005"
],
[
"BASIC-NTC-007",
"BASIC-NTC-006"
],
[
"BASIC-NTC-008",
"BASIC-NTC-007"
],
[
"BASIC-NTC-009",
"BASIC-NTC-008"
],
[
"BASIC-NTC-010",
"BASIC-NTC-009"
],
[
"BASIC-NTC-011",
"BASIC-NTC-010"
],
[
"BASIC-NTC-012",
"BASIC-NTC-011"
],
[
"BASIC-NTC-013",
"BASIC-NTC-012"
],
[
"BASIC-NTC-014",
"BASIC-NTC-013"
],
[
"BASIC-NTC-015",
"BASIC-NTC-014"
],
[
"",
"BASIC-NTC-015"
],
[
"",
"BASIC-NTC-016"
]
],
"基础管理-医院资料-院区管理-UI自动化测试用例-01.csv": [
[
"BASIC-BRN-002",
"BASIC-BRN-001"
],
[
"BASIC-BRN-003",
"BASIC-BRN-002"
],
[
"BASIC-BRN-004",
"BASIC-BRN-003"
],
[
"BASIC-BRN-005",
"BASIC-BRN-004"
],
[
"BASIC-BRN-006",
"BASIC-BRN-005"
],
[
"BASIC-BRN-007",
"BASIC-BRN-006"
],
[
"BASIC-BRN-008",
"BASIC-BRN-007"
],
[
"BASIC-BRN-009",
"BASIC-BRN-008"
],
[
"BASIC-BRN-010",
"BASIC-BRN-009"
],
[
"BASIC-BRN-011",
"BASIC-BRN-010"
],
[
"BASIC-BRN-012",
"BASIC-BRN-011"
],
[
"BASIC-BRN-013",
"BASIC-BRN-012"
],
[
"BASIC-BRN-014",
"BASIC-BRN-013"
],
[
"BASIC-BRN-015",
"BASIC-BRN-014"
],
[
"",
"BASIC-BRN-015"
],
[
"",
"BASIC-BRN-016"
]
],
"基础管理-医院资料-财务月份设置-UI自动化测试用例-01.csv": [
[
"BASIC-FMN-002",
"BASIC-FMN-001"
],
[
"BASIC-FMN-003",
"BASIC-FMN-002"
],
[
"BASIC-FMN-004",
"BASIC-FMN-003"
],
[
"BASIC-FMN-005",
"BASIC-FMN-004"
],
[
"BASIC-FMN-006",
"BASIC-FMN-005"
],
[
"BASIC-FMN-007",
"BASIC-FMN-006"
],
[
"BASIC-FMN-008",
"BASIC-FMN-007"
],
[
"BASIC-FMN-009",
"BASIC-FMN-008"
],
[
"BASIC-FMN-010",
"BASIC-FMN-009"
],
[
"",
"BASIC-FMN-010"
],
[
"",
"BASIC-FMN-011"
]
],
"基础管理-医院资料-医院信息登记-UI自动化测试用例-01.csv": [
[
"BASIC-HOS-002",
"BASIC-HOS-001"
],
[
"BASIC-HOS-003",
"BASIC-HOS-002"
],
[
"BASIC-HOS-004",
"BASIC-HOS-003"
],
[
"BASIC-HOS-005",
"BASIC-HOS-004"
],
[
"BASIC-HOS-006",
"BASIC-HOS-005"
],
[
"BASIC-HOS-008",
"BASIC-HOS-006"
],
[
"BASIC-HOS-009",
"BASIC-HOS-007"
],
[
"BASIC-HOS-010",
"BASIC-HOS-008"
],
[
"BASIC-HOS-011",
"BASIC-HOS-009"
]
],
"基础管理-用户管理-用户管理-UI自动化测试用例-01.csv": [
[
"USER-USR-001",
"USER-USR-001"
],
[
"USER-USR-002",
"USER-USR-002"
],
[
"USER-USR-003",
"USER-USR-003"
],
[
"USER-USR-004",
"USER-USR-004"
],
[
"USER-USR-005",
"USER-USR-005"
],
[
"USER-USR-006",
"USER-USR-006"
],
[
"USER-USR-007",
"USER-USR-007"
],
[
"USER-USR-008",
"USER-USR-008"
],
[
"USER-USR-009",
"USER-USR-009"
],
[
"USER-USR-010",
"USER-USR-010"
],
[
"USER-USR-011",
"USER-USR-011"
],
[
"",
"USER-USR-012"
]
],
"基础管理-用户管理-医共体用户管理-UI自动化测试用例-01.csv": [
[
"USER-UNI-001",
"USER-UNI-001"
],
[
"USER-UNI-002",
"USER-UNI-002"
],
[
"USER-UNI-003",
"USER-UNI-003"
],
[
"USER-UNI-004",
"USER-UNI-004"
],
[
"USER-UNI-005",
"USER-UNI-005"
],
[
"USER-UNI-006",
"USER-UNI-006"
],
[
"USER-UNI-007",
"USER-UNI-007"
],
[
"USER-UNI-008",
"USER-UNI-008"
],
[
"USER-UNI-009",
"USER-UNI-009"
],
[
"USER-UNI-010",
"USER-UNI-010"
],
[
"USER-UNI-011",
"USER-UNI-011"
]
],
"基础管理-用户管理-角色管理-UI自动化测试用例-01.csv": [
[
"USER-ROL-001",
"USER-ROL-001"
],
[
"USER-ROL-002",
"USER-ROL-002"
],
[
"USER-ROL-003",
"USER-ROL-003"
],
[
"USER-ROL-004",
"USER-ROL-004"
],
[
"USER-ROL-006",
"USER-ROL-005"
],
[
"USER-ROL-007",
"USER-ROL-006"
],
[
"USER-ROL-008",
"USER-ROL-007"
],
[
"USER-ROL-009",
"USER-ROL-008"
],
[
"USER-ROL-010",
"USER-ROL-009"
],
[
"USER-ROL-011",
"USER-ROL-010"
]
],
"基础管理-准入管理-物料准入管理-UI自动化测试用例-01.csv": [
[
"ADMIT-MAT-002",
"ADMIT-MAT-001"
],
[
"ADMIT-MAT-004",
"ADMIT-MAT-002"
],
[
"ADMIT-MAT-005",
"ADMIT-MAT-003"
],
[
"ADMIT-MAT-006",
"ADMIT-MAT-004"
],
[
"ADMIT-MAT-007",
"ADMIT-MAT-005"
],
[
"ADMIT-MAT-008",
"ADMIT-MAT-006"
],
[
"ADMIT-MAT-009",
"ADMIT-MAT-007"
],
[
"ADMIT-MAT-010",
"ADMIT-MAT-008"
],
[
"ADMIT-MAT-011",
"ADMIT-MAT-009"
],
[
"ADMIT-MAT-012",
"ADMIT-MAT-010"
],
[
"ADMIT-MAT-013",
"ADMIT-MAT-011"
],
[
"ADMIT-MAT-014",
"ADMIT-MAT-012"
],
[
"ADMIT-MAT-015",
"ADMIT-MAT-013"
],
[
"ADMIT-MAT-016",
"ADMIT-MAT-014"
],
[
"ADMIT-MAT-017",
"ADMIT-MAT-015"
],
[
"ADMIT-MAT-018",
"ADMIT-MAT-016"
],
[
"ADMIT-MAT-019",
"ADMIT-MAT-017"
],
[
"",
"ADMIT-MAT-018"
]
],
"基础管理-准入管理-产品准入申请-UI自动化测试用例-01.csv": [
[
"ADMIT-PAP-002",
"ADMIT-PAP-001"
],
[
"ADMIT-PAP-004",
"ADMIT-PAP-002"
],
[
"ADMIT-PAP-005",
"ADMIT-PAP-003"
],
[
"ADMIT-PAP-006",
"ADMIT-PAP-004"
],
[
"ADMIT-PAP-007",
"ADMIT-PAP-005"
],
[
"ADMIT-PAP-008",
"ADMIT-PAP-006"
],
[
"ADMIT-PAP-009",
"ADMIT-PAP-007"
],
[
"ADMIT-PAP-010",
"ADMIT-PAP-008"
],
[
"ADMIT-PAP-011",
"ADMIT-PAP-009"
],
[
"ADMIT-PAP-012",
"ADMIT-PAP-010"
],
[
"ADMIT-PAP-013",
"ADMIT-PAP-011"
],
[
"ADMIT-PAP-014",
"ADMIT-PAP-012"
],
[
"ADMIT-PAP-015",
"ADMIT-PAP-013"
],
[
"ADMIT-PAP-016",
"ADMIT-PAP-014"
],
[
"",
"ADMIT-PAP-015"
],
[
"",
"ADMIT-PAP-016"
],
[
"",
"ADMIT-PAP-017"
],
[
"",
"ADMIT-PAP-018"
],
[
"",
"ADMIT-PAP-019"
],
[
"",
"ADMIT-PAP-020"
],
[
"",
"ADMIT-PAP-021"
],
[
"",
"ADMIT-PAP-022"
]
],
"基础管理-准入管理-准入任务分配-UI自动化测试用例-01.csv": [
[
"ADMIT-TSK-002",
"ADMIT-TSK-001"
],
[
"ADMIT-TSK-002",
"ADMIT-TSK-002"
],
[
"ADMIT-TSK-003",
"ADMIT-TSK-002"
],
[
"ADMIT-TSK-004",
"ADMIT-TSK-003"
],
[
"ADMIT-TSK-005",
"ADMIT-TSK-004"
],
[
"ADMIT-TSK-006",
"ADMIT-TSK-005"
],
[
"ADMIT-TSK-007",
"ADMIT-TSK-006"
],
[
"ADMIT-TSK-008",
"ADMIT-TSK-007"
],
[
"ADMIT-TSK-009",
"ADMIT-TSK-008"
],
[
"ADMIT-TSK-010",
"ADMIT-TSK-009"
],
[
"ADMIT-TSK-011",
"ADMIT-TSK-010"
],
[
"ADMIT-TSK-012",
"ADMIT-TSK-011"
],
[
"ADMIT-TSK-013",
"ADMIT-TSK-012"
],
[
"",
"ADMIT-TSK-013"
],
[
"",
"ADMIT-TSK-014"
],
[
"",
"ADMIT-TSK-015"
],
[
"",
"ADMIT-TSK-016"
],
[
"",
"ADMIT-TSK-017"
],
[
"",
"ADMIT-TSK-018"
],
[
"",
"ADMIT-TSK-019"
],
[
"",
"ADMIT-TSK-020"
],
[
"",
"ADMIT-TSK-021"
],
[
"",
"ADMIT-TSK-022"
],
[
"",
"ADMIT-TSK-023"
]
],
"基础管理-准入管理-供货目录申请-UI自动化测试用例-01.csv": [
[
"ADMIT-SUP-002",
"ADMIT-SUP-001"
],
[
"ADMIT-SUP-003",
"ADMIT-SUP-002"
],
[
"ADMIT-SUP-004",
"ADMIT-SUP-003"
],
[
"ADMIT-SUP-005",
"ADMIT-SUP-004"
],
[
"ADMIT-SUP-006",
"ADMIT-SUP-005"
],
[
"ADMIT-SUP-007",
"ADMIT-SUP-006"
],
[
"ADMIT-SUP-008",
"ADMIT-SUP-007"
],
[
"ADMIT-SUP-009",
"ADMIT-SUP-008"
],
[
"ADMIT-SUP-010",
"ADMIT-SUP-009"
],
[
"ADMIT-SUP-011",
"ADMIT-SUP-010"
],
[
"ADMIT-SUP-012",
"ADMIT-SUP-011"
],
[
"",
"ADMIT-SUP-012"
],
[
"",
"ADMIT-SUP-013"
],
[
"",
"ADMIT-SUP-014"
],
[
"",
"ADMIT-SUP-015"
]
],
"基础管理-准入管理-物料准入单列表-UI自动化测试用例-01.csv": [
[
"ADMIT-MLS-003",
"ADMIT-MLS-002"
],
[
"ADMIT-MLS-004",
"ADMIT-MLS-003"
],
[
"ADMIT-MLS-005",
"ADMIT-MLS-004"
],
[
"ADMIT-MLS-006",
"ADMIT-MLS-005"
],
[
"ADMIT-MLS-007",
"ADMIT-MLS-006"
],
[
"ADMIT-MLS-008",
"ADMIT-MLS-007"
],
[
"ADMIT-MLS-009",
"ADMIT-MLS-008"
],
[
"ADMIT-MLS-010",
"ADMIT-MLS-009"
],
[
"ADMIT-MLS-011",
"ADMIT-MLS-010"
],
[
"ADMIT-MLS-012",
"ADMIT-MLS-011"
],
[
"",
"ADMIT-MLS-012"
],
[
"",
"ADMIT-MLS-014"
]
],
"基础管理-准入管理-产品准入单列表-UI自动化测试用例-01.csv": [
[
"ADMIT-PLS-002",
"ADMIT-PLS-001"
],
[
"ADMIT-PLS-003",
"ADMIT-PLS-002"
],
[
"ADMIT-PLS-004",
"ADMIT-PLS-003"
],
[
"ADMIT-PLS-005",
"ADMIT-PLS-004"
],
[
"ADMIT-PLS-006",
"ADMIT-PLS-005"
],
[
"ADMIT-PLS-007",
"ADMIT-PLS-006"
],
[
"ADMIT-PLS-008",
"ADMIT-PLS-007"
],
[
"ADMIT-PLS-009",
"ADMIT-PLS-008"
],
[
"ADMIT-PLS-010",
"ADMIT-PLS-009"
],
[
"ADMIT-PLS-011",
"ADMIT-PLS-010"
],
[
"ADMIT-PLS-012",
"ADMIT-PLS-011"
],
[
"ADMIT-PLS-013",
"ADMIT-PLS-012"
],
[
"",
"ADMIT-PLS-013"
],
[
"",
"ADMIT-PLS-014"
]
]
}
\ No newline at end of file
...@@ -29,7 +29,7 @@ export const deptReportEntryData: CenterReportPageData = { ...@@ -29,7 +29,7 @@ export const deptReportEntryData: CenterReportPageData = {
coreTableHeaders: ['物料编号','物料名称', '入库数量', '入库金额', '耗材类型'], coreTableHeaders: ['物料编号','物料名称', '入库数量', '入库金额', '耗材类型'],
summaryKeywords: ['入库品种', '入库单元数', '入库数量', '入库金额'], summaryKeywords: ['入库品种', '入库单元数', '入库数量', '入库金额'],
forbiddenSummaryKeywords: ['出库品种', '合计出库金额'], forbiddenSummaryKeywords: ['出库品种', '合计出库金额'],
dimensions: ['区分包装', '区分批号', '区分销售商(自定义)'], dimensions: ['区分包装', '区分批号', '区分进院供应商'],
drawerFields: deptReportEntryComboDrawerFields, drawerFields: deptReportEntryComboDrawerFields,
subTableHeaders: ['入库单号', '记账日期', '单据类型', '查看'], subTableHeaders: ['入库单号', '记账日期', '单据类型', '查看'],
subTableOrderNoKeywords: ['入库单号', '单号'], subTableOrderNoKeywords: ['入库单号', '单号'],
......
...@@ -29,7 +29,7 @@ export const deptReportOutData: CenterReportPageData = { ...@@ -29,7 +29,7 @@ export const deptReportOutData: CenterReportPageData = {
coreTableHeaders: ['物料编号','物料名称', '出库数量', '出库金额', '耗材类型'], coreTableHeaders: ['物料编号','物料名称', '出库数量', '出库金额', '耗材类型'],
summaryKeywords: ['出库数量', '合计出库金额'], summaryKeywords: ['出库数量', '合计出库金额'],
forbiddenSummaryKeywords: ['入库品种', '入库数量'], forbiddenSummaryKeywords: ['入库品种', '入库数量'],
dimensions: ['区分包装', '区分批号', '区分销售商(自定义)'], dimensions: ['区分包装', '区分批号', '区分进院供应商'],
drawerFields: deptReportOutComboDrawerFields, drawerFields: deptReportOutComboDrawerFields,
subTableHeaders: ['出库单号', '记账日期', '单据类型', '查看'], subTableHeaders: ['出库单号', '记账日期', '单据类型', '查看'],
subTableOrderNoKeywords: ['出库单号', '单号'], subTableOrderNoKeywords: ['出库单号', '单号'],
......
/** 基础管理-科室管理:路径、菜单、mock、列表列(与 CSV/MD 一致)。 */
export const deptmMenuGroup = '科室管理';
export const deptmMock = {
dept: '__NOT_EXIST_DEPT__99999',
machine: '__NOT_EXIST_MACHINE__99999',
flm: '__NOT_EXIST_FLM_TASK__',
budget: '__NOT_EXIST_BUDGET__',
} as const;
export type DeptmPageKey =
| 'register'
| 'category'
| 'productAlloc'
| 'zoneProduct'
| 'followLimit'
| 'reqTemplate'
| 'autoReq'
| 'staff'
| 'minmax'
| 'budget'
| 'labMachine'
| 'delivery';
export type DeptmPageMeta = {
key: DeptmPageKey;
code: string;
name: string;
path: string;
pathPart: string;
forbidden: string[];
mock: string;
headers: string[];
rowOps: string[];
page2Header: string;
searchHeader?: string;
/** 列设置 TP:取消勾选/恢复的非核心列候选(见 rules 3.2) */
columnSettingsToggleCandidates?: readonly string[];
/** 列排序 TP:须与表头可排序列一致(一条 TP,可按列一对多用例) */
sortColumns?: readonly string[];
fixture: string;
specFile: string;
csv: string;
};
export const deptmPages: Record<DeptmPageKey, DeptmPageMeta> = {
register: {
key: 'register',
code: 'DEPTM-REG',
name: '科室登记',
path: '/spd/basic/dept/platform/dept/list',
pathPart: 'platform/dept/list',
forbidden: ['calatog', '/product', 'areaProduct'],
mock: deptmMock.dept,
headers: ['科室编码', '科室名称', '操作'],
rowOps: ['编辑', '配置'],
page2Header: '科室编码',
searchHeader: '科室编码',
columnSettingsToggleCandidates: ['科室地址', '科室类型'],
fixture: 'deptmRegisterPage',
specFile: 'deptm-register.spec.ts',
csv: '基础管理-科室管理-科室登记-UI自动化测试用例-01.csv',
},
category: {
key: 'category',
code: 'DEPTM-CAT',
name: '科室分类维护',
path: '/spd/basic/dept/platform/dept/calatog',
pathPart: 'platform/dept/calatog',
forbidden: ['platform/dept/list', '/product'],
mock: deptmMock.dept,
headers: ['科室编码', '科室名称', '科室分类名称', '操作'],
rowOps: ['编辑', '日志'],
page2Header: '科室编码',
sortColumns: [
'院区',
'科室编码',
'科室名称',
'状态',
'科室类型',
'科室地址',
'科室分类名称',
],
fixture: 'deptmCategoryPage',
specFile: 'deptm-category.spec.ts',
csv: '基础管理-科室管理-科室分类维护-UI自动化测试用例-01.csv',
},
productAlloc: {
key: 'productAlloc',
code: 'DEPTM-PRA',
name: '科室产品分配',
path: '/spd/basic/dept/platform/dept/product',
pathPart: 'platform/dept/product',
forbidden: ['areaProduct', 'calatog'],
mock: deptmMock.dept,
headers: ['规格型号', '操作'],
rowOps: ['详情', '编辑'],
page2Header: '规格型号',
columnSettingsToggleCandidates: ['字典价', '耗材分类'],
fixture: 'deptmProductAllocPage',
specFile: 'deptm-product-alloc.spec.ts',
csv: '基础管理-科室管理-科室产品分配-UI自动化测试用例-01.csv',
},
zoneProduct: {
key: 'zoneProduct',
code: 'DEPTM-ZON',
name: '科室库区产品设置',
path: '/spd/basic/dept/platform/dept/areaProduct',
pathPart: 'platform/dept/areaProduct',
forbidden: ['platform/dept/product', 'calatog'],
mock: deptmMock.dept,
headers: ['物料编号', '操作'],
rowOps: ['编辑'],
page2Header: '物料编号',
columnSettingsToggleCandidates: ['默认上架货位', '耗材类型'],
fixture: 'deptmZoneProductPage',
specFile: 'deptm-zone-product.spec.ts',
csv: '基础管理-科室管理-科室库区产品设置-UI自动化测试用例-01.csv',
},
followLimit: {
key: 'followLimit',
code: 'DEPTM-FLM',
name: '科室跟台限额任务',
path: '/spd/basic/dept/platform/dept/limit',
pathPart: 'platform/dept/limit',
forbidden: ['schedule', 'budget'],
mock: deptmMock.flm,
headers: ['科室名称', '操作'],
rowOps: ['详情', '上传', '导出'],
page2Header: '科室名称',
fixture: 'deptmFollowLimitPage',
specFile: 'deptm-follow-limit.spec.ts',
csv: '基础管理-科室管理-科室跟台限额任务-UI自动化测试用例-01.csv',
},
reqTemplate: {
key: 'reqTemplate',
code: 'DEPTM-TPL',
name: '请领模板维护',
path: '/spd/basic/dept/platform/dept/apply',
pathPart: 'platform/dept/apply',
forbidden: ['schedule', 'deptPlan'],
mock: deptmMock.dept,
headers: ['规格型号', '操作'],
rowOps: ['编辑', '移除'],
page2Header: '规格型号',
columnSettingsToggleCandidates: ['物料俗称', '默认单价'],
sortColumns: [
'规格型号',
'器械注册人',
'默认单价',
'物料编号',
'物料名称',
'物料俗称',
],
fixture: 'deptmReqTemplatePage',
specFile: 'deptm-req-template.spec.ts',
csv: '基础管理-科室管理-请领模板维护-UI自动化测试用例-01.csv',
},
autoReq: {
key: 'autoReq',
code: 'DEPTM-AUR',
name: '自动请领排程',
path: '/spd/basic/dept/platform/dept/schedule',
pathPart: 'platform/dept/schedule',
forbidden: ['deptPlan', 'limit'],
mock: deptmMock.dept,
headers: ['科室编码', '排程类型', '操作'],
rowOps: ['编辑', '删除'],
page2Header: '科室编码',
columnSettingsToggleCandidates: ['排程间隔', '是否启用'],
fixture: 'deptmAutoReqPage',
specFile: 'deptm-auto-req.spec.ts',
csv: '基础管理-科室管理-自动请领排程-UI自动化测试用例-01.csv',
},
staff: {
key: 'staff',
code: 'DEPTM-STF',
name: '科室人员查询',
path: '/spd/basic/dept/platform/dept/person',
pathPart: 'platform/dept/person',
forbidden: ['schedule', 'machine'],
mock: deptmMock.dept,
headers: ['账号', '人员名称', '操作'],
rowOps: ['重置密码'],
page2Header: '账号',
columnSettingsToggleCandidates: ['联系电话', '职务'],
fixture: 'deptmStaffPage',
specFile: 'deptm-staff.spec.ts',
csv: '基础管理-科室管理-科室人员查询-UI自动化测试用例-01.csv',
},
minmax: {
key: 'minmax',
code: 'DEPTM-MNM',
name: '科室上下限建议',
path: '/spd/basic/dept/platform/dept/deptLimitOld',
pathPart: 'platform/dept/deptLimitOld',
// 勿用 `deptLimit`:会误匹配本页路径 `deptLimitOld`
forbidden: ['platform/dept/budget', 'platform/dept/limit'],
mock: deptmMock.dept,
headers: ['物料编号', '建议上下限', '操作'],
rowOps: ['调整', '编辑'],
page2Header: '物料编号',
sortColumns: ['物料编号', '物料名称', '规格型号', '器械注册人'],
fixture: 'deptmMinmaxPage',
specFile: 'deptm-minmax.spec.ts',
csv: '基础管理-科室管理-科室上下限建议-UI自动化测试用例-01.csv',
},
budget: {
key: 'budget',
code: 'DEPTM-BUD',
name: '科室预算管理',
path: '/spd/basic/dept/platform/dept/budget',
pathPart: 'platform/dept/budget',
forbidden: ['deptLimitOld', 'limit'],
mock: deptmMock.budget,
headers: ['预算任务名称', '预算进度', '操作'],
rowOps: ['详情', '关闭', '编辑', '删除'],
page2Header: '预算任务名称',
fixture: 'deptmBudgetPage',
specFile: 'deptm-budget.spec.ts',
csv: '基础管理-科室管理-科室预算管理-UI自动化测试用例-01.csv',
},
labMachine: {
key: 'labMachine',
code: 'DEPTM-LAB',
name: '检验机器管理',
path: '/spd/basic/dept/platform/dept/machine',
pathPart: 'platform/dept/machine',
forbidden: ['person', 'schedule'],
mock: deptmMock.machine,
headers: ['机器编号', '机器名称', '操作'],
rowOps: ['编辑', '删除'],
page2Header: '机器编号',
fixture: 'deptmLabMachinePage',
specFile: 'deptm-lab-machine.spec.ts',
csv: '基础管理-科室管理-检验机器管理-UI自动化测试用例-01.csv',
},
delivery: {
key: 'delivery',
code: 'DEPTM-DEL',
name: '科室送货计划',
path: '/spd/basic/dept/platform/dept/deptPlan',
pathPart: 'platform/dept/deptPlan',
forbidden: ['schedule', 'apply'],
mock: deptmMock.dept,
headers: ['科室编号', '库区名称'],
rowOps: ['编辑'],
page2Header: '科室编号',
fixture: 'deptmDeliveryPage',
specFile: 'deptm-delivery.spec.ts',
csv: '基础管理-科室管理-科室送货计划-UI自动化测试用例-01.csv',
},
};
/** 基础管理-接口管理:路径、菜单、mock、列表列(与 CSV/MD 一致)。 */
export const ifaceMenuGroup = '接口管理';
export const ifaceMock = '__NOT_EXIST_IFACE__99999';
export type IfacePageKey =
| 'hisPrice'
| 'deptReqOk'
| 'subdeptReq'
| 'lowBilling'
| 'insurance'
| 'vendorCode'
| 'peripheral'
| 'extDetail'
| 'platformDiff'
| 'apiLog'
| 'pushPrice'
| 'chargeCode'
| 'cabinetZone'
| 'matPush'
| 'reqQuery'
| 'campusCode';
export type IfacePageMeta = {
key: IfacePageKey;
code: string;
name: string;
path: string;
pathPart: string;
forbidden: string[];
mock: string;
scjs?: boolean;
headers: string[];
rowOps: string[];
page2Header: string;
addLabel?: string;
columnSettingsToggleCandidates?: readonly string[];
sortColumns?: readonly string[];
fixture: string;
specFile: string;
csv: string;
};
const forbiddenOthers = (own: string): string[] =>
[
'priceCompare',
'replace-dept-receive',
'checkBuy',
'lowBillingSearch',
'ybGoodsCheck',
'companyCode',
'peripheralProductChanges',
'peripheralChangeDetail',
'platformPriceCompare',
'interface/log',
'priceverification',
'hisCode',
'cabinet-area',
'pushGoods',
'deptBuy',
'branchMapping',
].filter((p) => p !== own);
export const ifacePages: Record<IfacePageKey, IfacePageMeta> = {
hisPrice: {
key: 'hisPrice',
code: 'IFACE-HPR',
name: 'HIS价对照查询',
path: '/spd/basic/interface/interface/priceCompare',
pathPart: 'interface/priceCompare',
forbidden: forbiddenOthers('priceCompare'),
mock: ifaceMock,
headers: ['物料', '规格', '操作'],
rowOps: [],
page2Header: '物料',
fixture: 'ifaceHisPricePage',
specFile: 'iface-his-price.spec.ts',
csv: '基础管理-接口管理-HIS价对照查询-UI自动化测试用例-01.csv',
},
deptReqOk: {
key: 'deptReqOk',
code: 'IFACE-DRO',
name: '代为科室请领(已确认)',
path: '/spd/basic/interface/replace-dept-receive',
pathPart: 'replace-dept-receive',
forbidden: forbiddenOthers('replace-dept-receive'),
mock: ifaceMock,
headers: ['产品', '规格', '请领'],
rowOps: [],
page2Header: '产品',
sortColumns: ['请领数量', '库存上限', '库存下限', '建议补货单元数'],
fixture: 'ifaceDeptReqOkPage',
specFile: 'iface-dept-req-ok.spec.ts',
csv: '基础管理-接口管理-代为科室请领(已确认)-UI自动化测试用例-01.csv',
},
subdeptReq: {
key: 'subdeptReq',
code: 'IFACE-SDR',
name: '代二级科室请领产品',
path: '/spd/basic/interface/deptBusiness/checkBuy',
pathPart: 'deptBusiness/checkBuy',
forbidden: forbiddenOthers('checkBuy'),
mock: ifaceMock,
headers: ['产品', '规格'],
rowOps: ['加入', '移除'],
page2Header: '产品',
fixture: 'ifaceSubdeptReqPage',
specFile: 'iface-subdept-req.spec.ts',
csv: '基础管理-接口管理-代二级科室请领产品-UI自动化测试用例-01.csv',
},
lowBilling: {
key: 'lowBilling',
code: 'IFACE-LBL',
name: '低值计费接口查询',
path: '/spd/basic/interface/interface/lowBillingSearch',
pathPart: 'interface/lowBillingSearch',
forbidden: forbiddenOthers('lowBillingSearch'),
mock: ifaceMock,
headers: ['科室', '产品', '状态'],
rowOps: [],
page2Header: '产品',
sortColumns: ['手术时间', '计费时间'],
fixture: 'ifaceLowBillingPage',
specFile: 'iface-low-billing.spec.ts',
csv: '基础管理-接口管理-低值计费接口查询-UI自动化测试用例-01.csv',
},
insurance: {
key: 'insurance',
code: 'IFACE-INS',
name: '医保信息核对',
path: '/spd/basic/interface/scjs/yc/ybGoodsCheck',
pathPart: 'ybGoodsCheck',
forbidden: forbiddenOthers('ybGoodsCheck'),
mock: ifaceMock,
scjs: true,
headers: ['医保', '产品', '操作'],
rowOps: ['详情', '通过'],
page2Header: '产品',
fixture: 'ifaceInsurancePage',
specFile: 'iface-insurance.spec.ts',
csv: '基础管理-接口管理-医保信息核对-UI自动化测试用例-01.csv',
},
vendorCode: {
key: 'vendorCode',
code: 'IFACE-VNC',
name: '厂商对码',
path: '/spd/basic/interface/interface/companyCode',
pathPart: 'interface/companyCode',
forbidden: forbiddenOthers('companyCode'),
mock: ifaceMock,
headers: ['厂商', '操作'],
rowOps: ['编辑'],
page2Header: '厂商',
addLabel: '手动新增',
sortColumns: [
'厂商编号',
'厂商名称',
'产地',
'详细地址',
'简称',
'对接系统名称',
'第三方系统厂商编码',
'第三方系统厂商名称',
],
fixture: 'ifaceVendorCodePage',
specFile: 'iface-vendor-code.spec.ts',
csv: '基础管理-接口管理-厂商对码-UI自动化测试用例-01.csv',
},
peripheral: {
key: 'peripheral',
code: 'IFACE-PER',
name: '外围产品变更',
path: '/spd/basic/interface/interface/peripheralProductChanges',
pathPart: 'peripheralProductChanges',
forbidden: forbiddenOthers('peripheralProductChanges'),
mock: ifaceMock,
headers: ['变更', '产品', '操作'],
rowOps: ['详情'],
page2Header: '产品',
fixture: 'ifacePeripheralPage',
specFile: 'iface-peripheral.spec.ts',
csv: '基础管理-接口管理-外围产品变更-UI自动化测试用例-01.csv',
},
extDetail: {
key: 'extDetail',
code: 'IFACE-EXT',
name: '外部变更明细信息查询',
path: '/spd/basic/interface/interface/peripheralChangeDetail',
pathPart: 'peripheralChangeDetail',
forbidden: forbiddenOthers('peripheralChangeDetail'),
mock: ifaceMock,
headers: ['变更', '产品'],
rowOps: [],
page2Header: '产品',
fixture: 'ifaceExtDetailPage',
specFile: 'iface-ext-detail.spec.ts',
csv: '基础管理-接口管理-外部变更明细信息查询-UI自动化测试用例-01.csv',
},
platformDiff: {
key: 'platformDiff',
code: 'IFACE-PPD',
name: '平台产品价格差异查询',
path: '/spd/basic/interface/interface/platformPriceCompare',
pathPart: 'platformPriceCompare',
forbidden: forbiddenOthers('platformPriceCompare'),
mock: ifaceMock,
headers: ['平台', '产品', '差异'],
rowOps: [],
page2Header: '产品',
fixture: 'ifacePlatformDiffPage',
specFile: 'iface-platform-diff.spec.ts',
csv: '基础管理-接口管理-平台产品价格差异查询-UI自动化测试用例-01.csv',
},
apiLog: {
key: 'apiLog',
code: 'IFACE-LOG',
name: '接口日志',
path: '/spd/basic/interface/interface/log',
pathPart: 'interface/log',
forbidden: forbiddenOthers('interface/log'),
mock: ifaceMock,
headers: ['接口', '时间', '操作'],
rowOps: ['查看'],
page2Header: '接口',
columnSettingsToggleCandidates: ['耗时', '状态码'],
fixture: 'ifaceApiLogPage',
specFile: 'iface-api-log.spec.ts',
csv: '基础管理-接口管理-接口日志-UI自动化测试用例-01.csv',
},
pushPrice: {
key: 'pushPrice',
code: 'IFACE-PSH',
name: '推送物价',
path: '/spd/basic/interface/scjs/yc/priceverification',
pathPart: 'priceverification',
forbidden: forbiddenOthers('priceverification'),
mock: ifaceMock,
scjs: true,
headers: ['物价', '推送', '操作'],
rowOps: ['推送', '不处理'],
page2Header: '物价',
fixture: 'ifacePushPricePage',
specFile: 'iface-push-price.spec.ts',
csv: '基础管理-接口管理-推送物价-UI自动化测试用例-01.csv',
},
chargeCode: {
key: 'chargeCode',
code: 'IFACE-CHC',
name: '收费项目对码',
path: '/spd/basic/interface/interface/hisCode',
pathPart: 'interface/hisCode',
forbidden: forbiddenOthers('hisCode'),
mock: ifaceMock,
headers: ['HIS', '收费', '操作'],
rowOps: ['编辑'],
page2Header: 'HIS',
addLabel: '手动新增',
fixture: 'ifaceChargeCodePage',
specFile: 'iface-charge-code.spec.ts',
csv: '基础管理-接口管理-收费项目对码-UI自动化测试用例-01.csv',
},
cabinetZone: {
key: 'cabinetZone',
code: 'IFACE-CZN',
name: '智能柜与库区对码',
path: '/spd/basic/interface/interface/cabinet-area',
pathPart: 'cabinet-area',
forbidden: forbiddenOthers('cabinet-area'),
mock: ifaceMock,
headers: ['智能柜', '库区', '操作'],
rowOps: ['编辑', '删除'],
page2Header: '智能柜',
addLabel: '新增',
fixture: 'ifaceCabinetZonePage',
specFile: 'iface-cabinet-zone.spec.ts',
csv: '基础管理-接口管理-智能柜与库区对码-UI自动化测试用例-01.csv',
},
matPush: {
key: 'matPush',
code: 'IFACE-MAT',
name: '物资字典推送记录',
path: '/spd/basic/interface/scjs/yc/pushGoods',
pathPart: 'pushGoods',
forbidden: forbiddenOthers('pushGoods'),
mock: ifaceMock,
scjs: true,
headers: ['推送', '产品', '操作'],
rowOps: ['详情'],
page2Header: '产品',
fixture: 'ifaceMatPushPage',
specFile: 'iface-mat-push.spec.ts',
csv: '基础管理-接口管理-物资字典推送记录-UI自动化测试用例-01.csv',
},
reqQuery: {
key: 'reqQuery',
code: 'IFACE-REQ',
name: '请领单接口查询',
path: '/spd/basic/interface/scjs/yc/deptBuy',
pathPart: 'deptBuy',
forbidden: forbiddenOthers('deptBuy'),
mock: ifaceMock,
scjs: true,
headers: ['请领', '科室', '操作'],
rowOps: ['详情'],
page2Header: '请领',
fixture: 'ifaceReqQueryPage',
specFile: 'iface-req-query.spec.ts',
csv: '基础管理-接口管理-请领单接口查询-UI自动化测试用例-01.csv',
},
campusCode: {
key: 'campusCode',
code: 'IFACE-CMP',
name: '院区对码',
path: '/spd/basic/interface/interface/branchMapping',
pathPart: 'branchMapping',
forbidden: forbiddenOthers('branchMapping'),
mock: ifaceMock,
headers: ['院区', '操作'],
rowOps: ['编辑', '删除'],
page2Header: '院区',
addLabel: '新增对码',
columnSettingsToggleCandidates: ['外部院区名称', '外部院区编码'],
fixture: 'ifaceCampusCodePage',
specFile: 'iface-campus-code.spec.ts',
csv: '基础管理-接口管理-院区对码-UI自动化测试用例-01.csv',
},
};
{
"deptm-category": [
"院区",
"科室编码",
"科室名称",
"状态",
"科室类型",
"科室地址",
"科室分类名称"
],
"deptm-minmax": [
"物料编号",
"物料名称",
"规格型号",
"器械注册人"
],
"deptm-req-template": [
"规格型号",
"器械注册人",
"默认单价",
"物料编号",
"物料名称",
"物料俗称"
],
"iface-vendor-code": [
"厂商编号",
"厂商名称",
"产地",
"详细地址",
"简称",
"对接系统名称",
"第三方系统厂商编码",
"第三方系统厂商名称"
],
"iface-low-billing": [
"手术时间",
"计费时间"
],
"iface-dept-req-ok": [
"请领数量",
"库存上限",
"库存下限",
"建议补货单元数"
],
"admit-task": [
"物料编号",
"物料名称",
"规格型号",
"器械注册人",
"单位",
"耗材类型",
"注册证号",
"SPD新增日期",
"最后操作时间",
"准入状态"
],
"admit-material": [
"物料编号",
"物料名称",
"规格型号",
"器械注册人",
"单位",
"耗材类型"
],
"admit-product-apply": [
"物料编号",
"物料名称",
"规格型号",
"器械注册人",
"单位",
"耗材类型"
]
}
...@@ -24,7 +24,7 @@ export const surgeryData = { ...@@ -24,7 +24,7 @@ export const surgeryData = {
mockOperKeyword: '__NOT_EXIST_OPER__99999', mockOperKeyword: '__NOT_EXIST_OPER__99999',
mockStdKeyword: '__NOT_EXIST_STD__99999', mockStdKeyword: '__NOT_EXIST_STD__99999',
/** 术种维护状态 Tab(CSV SURG-TYPE-011/024/025) */ /** 术种维护状态 Tab(CSV SURG-TYPE-010/024/025) */
statusAll: '全部', statusAll: '全部',
statusDisabled: '停用', statusDisabled: '停用',
statusUnclassified: '未建分类', statusUnclassified: '未建分类',
......
/** 各主 Tab 列设置用例(证件效期提醒 QUL-005/006 在 vendor-qual.spec.ts;其余 QUL-058~073)。 */ /** 各主 Tab 列设置用例(证件效期提醒 QUL-005/006 在 vendor-qual.spec.ts;其余 QUL-056~071)。 */
export type VendorQualColumnSettingsCase = { export type VendorQualColumnSettingsCase = {
tab: string; tab: string;
...@@ -14,14 +14,14 @@ export const vendorQualColumnSettingsCertExpiry: VendorQualColumnSettingsCase = ...@@ -14,14 +14,14 @@ export const vendorQualColumnSettingsCertExpiry: VendorQualColumnSettingsCase =
/** 除证件效期提醒外 8 个主 Tab ×(打开面板 + 列隐藏恢复) */ /** 除证件效期提醒外 8 个主 Tab ×(打开面板 + 列隐藏恢复) */
export const vendorQualColumnSettingsOtherTabs: VendorQualColumnSettingsCase[] = [ export const vendorQualColumnSettingsOtherTabs: VendorQualColumnSettingsCase[] = [
{ tab: '授权链路效期预警', openCaseId: 'VENDOR-QUL-058', toggleCaseId: 'VENDOR-QUL-059' }, { tab: '授权链路效期预警', openCaseId: 'VENDOR-QUL-056', toggleCaseId: 'VENDOR-QUL-057' },
{ tab: '供应商三证', openCaseId: 'VENDOR-QUL-060', toggleCaseId: 'VENDOR-QUL-061' }, { tab: '供应商三证', openCaseId: 'VENDOR-QUL-058', toggleCaseId: 'VENDOR-QUL-059' },
{ tab: '器械注册人', openCaseId: 'VENDOR-QUL-062', toggleCaseId: 'VENDOR-QUL-063' }, { tab: '器械注册人', openCaseId: 'VENDOR-QUL-060', toggleCaseId: 'VENDOR-QUL-061' },
{ tab: '器械注册证号', openCaseId: 'VENDOR-QUL-064', toggleCaseId: 'VENDOR-QUL-065' }, { tab: '器械注册证号', openCaseId: 'VENDOR-QUL-062', toggleCaseId: 'VENDOR-QUL-063' },
{ tab: '授权书', openCaseId: 'VENDOR-QUL-066', toggleCaseId: 'VENDOR-QUL-067' }, { tab: '授权书', openCaseId: 'VENDOR-QUL-064', toggleCaseId: 'VENDOR-QUL-065' },
{ tab: '承诺书', openCaseId: 'VENDOR-QUL-068', toggleCaseId: 'VENDOR-QUL-069' }, { tab: '承诺书', openCaseId: 'VENDOR-QUL-066', toggleCaseId: 'VENDOR-QUL-067' },
{ tab: '法人委托书', openCaseId: 'VENDOR-QUL-070', toggleCaseId: 'VENDOR-QUL-071' }, { tab: '法人委托书', openCaseId: 'VENDOR-QUL-068', toggleCaseId: 'VENDOR-QUL-069' },
{ tab: '二级供应商三证', openCaseId: 'VENDOR-QUL-072', toggleCaseId: 'VENDOR-QUL-073' }, { tab: '二级供应商三证', openCaseId: 'VENDOR-QUL-070', toggleCaseId: 'VENDOR-QUL-071' },
]; ];
export const vendorQualColumnSettingsAllTabs: VendorQualColumnSettingsCase[] = [ export const vendorQualColumnSettingsAllTabs: VendorQualColumnSettingsCase[] = [
......
...@@ -34,13 +34,19 @@ export type VendorQualTabProfile = { ...@@ -34,13 +34,19 @@ export type VendorQualTabProfile = {
comboSupplierOnly?: boolean; comboSupplierOnly?: boolean;
/** 组合查询不含销售商(自定义)(仅 comboFields) */ /** 组合查询不含销售商(自定义)(仅 comboFields) */
comboWithoutSupplier?: boolean; comboWithoutSupplier?: boolean;
/** 组合查询样本来自首行「查看」详情(非列表列,如授权链路效期预警) */
comboFieldsFromDetail?: boolean;
/** 查看详情时销售商(自定义)取自详情层左上角标题(如供应商三证 put-page) */
detailSupplierInLayerTitle?: boolean;
/** 查看用例断言:默认销售商(自定义);registrant 为列表器械注册人 vs 详情注册人名称 */
detailViewMatch?: 'supplier' | 'registrant';
}; };
export type VendorQualTabCaseIds = { export type VendorQualTabCaseIds = {
combo: string; combo: string;
reset: string; reset: string;
export: string; export: string;
view: string; view?: string;
expirySwitch?: string; expirySwitch?: string;
expiryCount?: string; expiryCount?: string;
}; };
...@@ -62,6 +68,7 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [ ...@@ -62,6 +68,7 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [
queryFilters: ['授权书名称', '授权单位', '被授权单位'], queryFilters: ['授权书名称', '授权单位', '被授权单位'],
comboQuerySummary: '授权书名称、授权单位、被授权单位', comboQuerySummary: '授权书名称、授权单位、被授权单位',
comboWithoutSupplier: true, comboWithoutSupplier: true,
comboFieldsFromDetail: true,
comboFields: [ comboFields: [
{ {
filter: '授权书名称', filter: '授权书名称',
...@@ -94,14 +101,15 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [ ...@@ -94,14 +101,15 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [
queryFilters: ['销售商(自定义)名称'], queryFilters: ['销售商(自定义)名称'],
comboQuerySummary: '销售商(自定义)名称', comboQuerySummary: '销售商(自定义)名称',
comboSupplierOnly: true, comboSupplierOnly: true,
detailSupplierInLayerTitle: true,
hasExpirySubTabs: true, hasExpirySubTabs: true,
caseIds: { caseIds: {
combo: 'VENDOR-QUL-016', combo: 'VENDOR-QUL-016',
reset: 'VENDOR-QUL-017', reset: 'VENDOR-QUL-017',
export: 'VENDOR-QUL-018', export: 'VENDOR-QUL-018',
view: 'VENDOR-QUL-019', view: 'VENDOR-QUL-019',
expirySwitch: 'VENDOR-QUL-044', expirySwitch: 'VENDOR-QUL-042',
expiryCount: 'VENDOR-QUL-045', expiryCount: 'VENDOR-QUL-043',
}, },
}, },
{ {
...@@ -136,18 +144,19 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [ ...@@ -136,18 +144,19 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [
}, },
{ {
filter: '销售商(自定义)名称', filter: '销售商(自定义)名称',
columnHeaders: ['销售商(自定义)名称', '销售商(自定义)', '销售商', '进院供应商'], columnHeaders: ['销售商(自定义)', '销售商(自定义)名称', '销售商', '进院供应商'],
kind: 'text', kind: 'text',
}, },
], ],
detailViewMatch: 'registrant',
hasExpirySubTabs: true, hasExpirySubTabs: true,
caseIds: { caseIds: {
combo: 'VENDOR-QUL-020', combo: 'VENDOR-QUL-020',
reset: 'VENDOR-QUL-021', reset: 'VENDOR-QUL-021',
export: 'VENDOR-QUL-022', export: 'VENDOR-QUL-022',
view: 'VENDOR-QUL-023', view: 'VENDOR-QUL-023',
expirySwitch: 'VENDOR-QUL-046', expirySwitch: 'VENDOR-QUL-044',
expiryCount: 'VENDOR-QUL-047', expiryCount: 'VENDOR-QUL-045',
}, },
}, },
{ {
...@@ -205,14 +214,15 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [ ...@@ -205,14 +214,15 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [
kind: 'text', kind: 'text',
}, },
], ],
detailViewMatch: 'registrant',
hasExpirySubTabs: true, hasExpirySubTabs: true,
caseIds: { caseIds: {
combo: 'VENDOR-QUL-024', combo: 'VENDOR-QUL-024',
reset: 'VENDOR-QUL-025', reset: 'VENDOR-QUL-025',
export: 'VENDOR-QUL-026', export: 'VENDOR-QUL-026',
view: 'VENDOR-QUL-027', view: 'VENDOR-QUL-027',
expirySwitch: 'VENDOR-QUL-048', expirySwitch: 'VENDOR-QUL-046',
expiryCount: 'VENDOR-QUL-049', expiryCount: 'VENDOR-QUL-047',
}, },
}, },
{ {
...@@ -258,14 +268,15 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [ ...@@ -258,14 +268,15 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [
kind: 'text', kind: 'text',
}, },
], ],
detailViewMatch: 'registrant',
hasExpirySubTabs: true, hasExpirySubTabs: true,
caseIds: { caseIds: {
combo: 'VENDOR-QUL-028', combo: 'VENDOR-QUL-028',
reset: 'VENDOR-QUL-029', reset: 'VENDOR-QUL-029',
export: 'VENDOR-QUL-030', export: 'VENDOR-QUL-030',
view: 'VENDOR-QUL-031', view: 'VENDOR-QUL-031',
expirySwitch: 'VENDOR-QUL-050', expirySwitch: 'VENDOR-QUL-048',
expiryCount: 'VENDOR-QUL-051', expiryCount: 'VENDOR-QUL-049',
}, },
}, },
{ {
...@@ -289,9 +300,8 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [ ...@@ -289,9 +300,8 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [
combo: 'VENDOR-QUL-032', combo: 'VENDOR-QUL-032',
reset: 'VENDOR-QUL-033', reset: 'VENDOR-QUL-033',
export: 'VENDOR-QUL-034', export: 'VENDOR-QUL-034',
view: 'VENDOR-QUL-035', expirySwitch: 'VENDOR-QUL-050',
expirySwitch: 'VENDOR-QUL-052', expiryCount: 'VENDOR-QUL-051',
expiryCount: 'VENDOR-QUL-053',
}, },
}, },
{ {
...@@ -312,12 +322,11 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [ ...@@ -312,12 +322,11 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [
], ],
hasExpirySubTabs: true, hasExpirySubTabs: true,
caseIds: { caseIds: {
combo: 'VENDOR-QUL-036', combo: 'VENDOR-QUL-035',
reset: 'VENDOR-QUL-037', reset: 'VENDOR-QUL-036',
export: 'VENDOR-QUL-038', export: 'VENDOR-QUL-037',
view: 'VENDOR-QUL-039', expirySwitch: 'VENDOR-QUL-052',
expirySwitch: 'VENDOR-QUL-054', expiryCount: 'VENDOR-QUL-053',
expiryCount: 'VENDOR-QUL-055',
}, },
}, },
{ {
...@@ -338,12 +347,12 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [ ...@@ -338,12 +347,12 @@ export const vendorQualSyncTabs: VendorQualSyncTab[] = [
], ],
hasExpirySubTabs: true, hasExpirySubTabs: true,
caseIds: { caseIds: {
combo: 'VENDOR-QUL-040', combo: 'VENDOR-QUL-038',
reset: 'VENDOR-QUL-041', reset: 'VENDOR-QUL-039',
export: 'VENDOR-QUL-042', export: 'VENDOR-QUL-040',
view: 'VENDOR-QUL-043', view: 'VENDOR-QUL-041',
expirySwitch: 'VENDOR-QUL-056', expirySwitch: 'VENDOR-QUL-054',
expiryCount: 'VENDOR-QUL-057', expiryCount: 'VENDOR-QUL-055',
}, },
}, },
]; ];
......
...@@ -9,4 +9,7 @@ export const warehouseData = { ...@@ -9,4 +9,7 @@ export const warehouseData = {
menuProbe: '探针绑定', menuProbe: '探针绑定',
mockZone: '__NOT_EXIST_ZONE__99999', mockZone: '__NOT_EXIST_ZONE__99999',
mockProbe: '__NOT_EXIST_PROBE__99999', mockProbe: '__NOT_EXIST_PROBE__99999',
paginationPageSizeTo: '20 条/页',
probeColumnSettingsToggleCandidates: ['绑定的货位'] as const,
zoneColumnSettingsToggleCandidates: ['库区编码'] as const,
} as const; } as const;
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