Commit b8b4c69c authored by liguangyu06's avatar liguangyu06
Browse files

新增产品管理全链路自动化资产,并修复详情层/树页/路径串页等稳定问题。

parent 297e887d
/** 基础管理-产品管理:路径、菜单、mock、列表列(与 CSV/MD 一致)。 */
export const prodmMenuGroup = '产品管理';
export const prodmMock = '__NOT_EXIST_PRODM__99999';
export type ProdmPageKey =
| 'checkReinit'
| 'maintain'
| 'material'
| 'firstAudit'
| 'supply'
| 'priceCheck'
| 'campus'
| 'unitPkg'
| 'centerLimitAi'
| 'reqChannel'
| 'centerLimit'
| 'settle'
| 'priceAdj'
| 'infoChange'
| 'changeDetail'
| 'peripheralAdd'
| 'peripheralChg'
| 'diQuery'
| 'stockout'
| 'centerZone'
| 'stockoutDetail'
| 'materialChg'
| 'diChange'
| 'qualRule'
| 'qualOverview'
| 'materialChgDetail';
export type ProdmPageMeta = {
key: ProdmPageKey;
code: string;
name: string;
path: string;
pathPart: string;
forbidden: string[];
mock: string;
headers: string[];
rowOps: string[];
page2Header: string;
addLabel?: string;
layout?: 'left_tree';
columnSettingsToggleCandidates?: readonly string[];
sortColumns?: readonly string[];
fixture: string;
specFile: string;
csv: string;
};
const forbiddenOthers = (own: string): string[] =>
[
'paltform/product/check',
'paltform/product/calatog',
'paltform/product/zrcalatog',
'paltform/product/first',
'paltform/purchases/calatog',
'paltform/product/priceCheck',
'paltform/area/calatog',
'paltform/area/unit',
'paltform/product/centerLimitAi',
'platform/apply/rules',
'paltform/product/centerLimit',
'platform/settle/rules',
'platform/price',
'platform/product-info',
'platform/change',
'interface/peripheralSystem',
'interface/peripheralChange',
'platform/diSearch',
'paltform/stockoutManagement',
'platform/area/product',
'paltform/stockoutList',
'platform/zr-product-info',
'platform/dichange',
'product/rules',
'product/overview',
'platform/zrchange',
].filter((p) => p !== own && !own.includes(p)); // 避免 centerLimitAi 误伤 centerLimit 等前缀路径
export const prodmPages: Record<ProdmPageKey, ProdmPageMeta> = {
checkReinit: {
key: 'checkReinit',
code: 'PRODM-CHK',
name: '产品核对重新发起',
path: '/spd/basic/goods/paltform/product/check',
pathPart: 'paltform/product/check',
forbidden: forbiddenOthers('paltform/product/check'),
mock: prodmMock,
headers: ["物料编号", "是否植入", "物料名称", "器械注册人", "规格型号", "单位"],
rowOps: ["编辑"],
page2Header: '物料编号',
addLabel: '批量重新审核',
fixture: 'prodmCheckReinitPage',
specFile: 'prodm-check-reinit.spec.ts',
csv: '基础管理-产品管理-产品核对重新发起-UI自动化测试用例-01.csv',
},
maintain: {
key: 'maintain',
code: 'PRODM-MNT',
name: '产品维护',
path: '/spd/basic/goods/paltform/product/calatog',
pathPart: 'paltform/product/calatog',
forbidden: forbiddenOthers('paltform/product/calatog'),
mock: prodmMock,
headers: ["HIS编码", "阳采ID", "规格型号", "器械注册人", "单位", "耗材类型"],
rowOps: ["详情"],
page2Header: 'HIS编码',
addLabel: '添加',
layout: 'left_tree',
columnSettingsToggleCandidates: ["阳采ID", "规格型号"],
fixture: 'prodmMaintainPage',
specFile: 'prodm-maintain.spec.ts',
csv: '基础管理-产品管理-产品维护-UI自动化测试用例-01.csv',
},
material: {
key: 'material',
code: 'PRODM-MAT',
name: '物料信息管理',
path: '/spd/basic/goods/paltform/product/zrcalatog',
pathPart: 'paltform/product/zrcalatog',
forbidden: forbiddenOthers('paltform/product/zrcalatog'),
mock: prodmMock,
headers: ["HIS编码", "阳采ID", "规格型号", "单位", "耗材类型", "品牌"],
rowOps: ["详情"],
page2Header: 'HIS编码',
addLabel: '添加',
layout: 'left_tree',
columnSettingsToggleCandidates: ["阳采ID", "规格型号"],
fixture: 'prodmMaterialPage',
specFile: 'prodm-material.spec.ts',
csv: '基础管理-产品管理-物料信息管理-UI自动化测试用例-01.csv',
},
firstAudit: {
key: 'firstAudit',
code: 'PRODM-FAU',
name: '产品初审核对',
path: '/spd/basic/goods/paltform/product/first',
pathPart: 'paltform/product/first',
forbidden: forbiddenOthers('paltform/product/first'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "器械注册人", "单位", "耗材类型"],
rowOps: ["详情", "审核", "编辑"],
page2Header: '物料编号',
addLabel: '产品初审核对',
fixture: 'prodmFirstAuditPage',
specFile: 'prodm-first-audit.spec.ts',
csv: '基础管理-产品管理-产品初审核对-UI自动化测试用例-01.csv',
},
supply: {
key: 'supply',
code: 'PRODM-SUP',
name: '产品供应关系维护',
path: '/spd/basic/goods/paltform/purchases/calatog',
pathPart: 'paltform/purchases/calatog',
forbidden: forbiddenOthers('paltform/purchases/calatog'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "单位", "耗材类型", "采购单价"],
rowOps: ["详情", "编辑"],
page2Header: '物料编号',
layout: 'left_tree',
columnSettingsToggleCandidates: ["业务类型", "状态"],
sortColumns: ["销售商(自定义)列表"],
fixture: 'prodmSupplyPage',
specFile: 'prodm-supply.spec.ts',
csv: '基础管理-产品管理-产品供应关系维护-UI自动化测试用例-01.csv',
},
priceCheck: {
key: 'priceCheck',
code: 'PRODM-PRC',
name: '产品物价核对',
path: '/spd/basic/goods/paltform/product/priceCheck',
pathPart: 'paltform/product/priceCheck',
forbidden: forbiddenOthers('paltform/product/priceCheck'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "器械注册人", "单位", "耗材类型"],
rowOps: ["详情", "审核", "编辑"],
page2Header: '物料编号',
addLabel: '批量审核',
fixture: 'prodmPriceCheckPage',
specFile: 'prodm-price-check.spec.ts',
csv: '基础管理-产品管理-产品物价核对-UI自动化测试用例-01.csv',
},
campus: {
key: 'campus',
code: 'PRODM-CAM',
name: '院区产品设置',
path: '/spd/basic/goods/paltform/area/calatog',
pathPart: 'paltform/area/calatog',
forbidden: forbiddenOthers('paltform/area/calatog'),
mock: prodmMock,
headers: ["规格型号", "耗材类型", "默认上架货位", "单位", "库存上限", "库存下限"],
rowOps: ["详情", "编辑", "日志"],
page2Header: '规格型号',
addLabel: '导入医院产品',
layout: 'left_tree',
columnSettingsToggleCandidates: ["耗材类型", "默认上架货位"],
fixture: 'prodmCampusPage',
specFile: 'prodm-campus.spec.ts',
csv: '基础管理-产品管理-院区产品设置-UI自动化测试用例-01.csv',
},
unitPkg: {
key: 'unitPkg',
code: 'PRODM-UPK',
name: '院区单元包设置',
path: '/spd/basic/goods/paltform/area/unit',
pathPart: 'paltform/area/unit',
forbidden: forbiddenOthers('paltform/area/unit'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "器械注册人", "单位", "单价"],
rowOps: ["详情", "编辑", "日志"],
page2Header: '物料编号',
addLabel: '新增',
columnSettingsToggleCandidates: ["编码", "院区"],
fixture: 'prodmUnitPkgPage',
specFile: 'prodm-unit-pkg.spec.ts',
csv: '基础管理-产品管理-院区单元包设置-UI自动化测试用例-01.csv',
},
centerLimitAi: {
key: 'centerLimitAi',
code: 'PRODM-CLA',
name: '中心库上下限建议(AI)',
path: '/spd/basic/goods/paltform/product/centerLimitAi',
pathPart: 'paltform/product/centerLimitAi',
forbidden: forbiddenOthers('paltform/product/centerLimitAi'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "器械注册人", "单元含量", "AI预测日均出库量"],
rowOps: [],
page2Header: '物料编号',
addLabel: '全部调整',
fixture: 'prodmCenterLimitAiPage',
specFile: 'prodm-center-limit-ai.spec.ts',
csv: '基础管理-产品管理-中心库上下限建议(AI)-UI自动化测试用例-01.csv',
},
reqChannel: {
key: 'reqChannel',
code: 'PRODM-RCH',
name: '请领出库渠道设置',
path: '/spd/basic/goods/platform/apply/rules',
pathPart: 'platform/apply/rules',
forbidden: forbiddenOthers('platform/apply/rules'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "器械注册人", "单位", "耗材类型"],
rowOps: ["详情", "编辑", "日志"],
page2Header: '物料编号',
layout: 'left_tree',
columnSettingsToggleCandidates: ["院区", "库区"],
fixture: 'prodmReqChannelPage',
specFile: 'prodm-req-channel.spec.ts',
csv: '基础管理-产品管理-请领出库渠道设置-UI自动化测试用例-01.csv',
},
centerLimit: {
key: 'centerLimit',
code: 'PRODM-CLM',
name: '中心库上下限建议',
path: '/spd/basic/goods/paltform/product/centerLimit',
pathPart: 'paltform/product/centerLimit',
forbidden: forbiddenOthers('paltform/product/centerLimit'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "器械注册人", "单元含量", "日均出库数量"],
rowOps: [],
page2Header: '物料编号',
addLabel: '全部调整',
fixture: 'prodmCenterLimitPage',
specFile: 'prodm-center-limit.spec.ts',
csv: '基础管理-产品管理-中心库上下限建议-UI自动化测试用例-01.csv',
},
settle: {
key: 'settle',
code: 'PRODM-STL',
name: '结算点设置',
path: '/spd/basic/goods/platform/settle/rules',
pathPart: 'platform/settle/rules',
forbidden: forbiddenOthers('platform/settle/rules'),
mock: prodmMock,
headers: ["规格型号", "单位", "单价", "耗材类型", "物料编号", "物料名称"],
rowOps: ["详情", "编辑", "日志"],
page2Header: '规格型号',
layout: 'left_tree',
columnSettingsToggleCandidates: ["院区", "产品范围"],
sortColumns: ["结算规则"],
fixture: 'prodmSettlePage',
specFile: 'prodm-settle.spec.ts',
csv: '基础管理-产品管理-结算点设置-UI自动化测试用例-01.csv',
},
priceAdj: {
key: 'priceAdj',
code: 'PRODM-PAD',
name: '调价管理',
path: '/spd/basic/goods/platform/price',
pathPart: 'platform/price',
forbidden: forbiddenOthers('platform/price'),
mock: prodmMock,
headers: ["单号", "制单时间", "计划生效时间", "实际生效时间", "备注", "状态"],
rowOps: ["再次调价", "详情", "打印"],
page2Header: '单号',
addLabel: '新增',
columnSettingsToggleCandidates: ["制单", "计划"],
fixture: 'prodmPriceAdjPage',
specFile: 'prodm-price-adj.spec.ts',
csv: '基础管理-产品管理-调价管理-UI自动化测试用例-01.csv',
},
infoChange: {
key: 'infoChange',
code: 'PRODM-ICH',
name: '产品信息变更',
path: '/spd/basic/goods/platform/product-info',
pathPart: 'platform/product-info',
forbidden: forbiddenOthers('platform/product-info'),
mock: prodmMock,
headers: ["单号", "变更类型", "制单人", "制单时间", "计划生效时间", "实际生效时间"],
rowOps: ["详情", "打印"],
page2Header: '单号',
addLabel: '新增',
columnSettingsToggleCandidates: ["制单时间", "状态"],
fixture: 'prodmInfoChangePage',
specFile: 'prodm-info-change.spec.ts',
csv: '基础管理-产品管理-产品信息变更-UI自动化测试用例-01.csv',
},
changeDetail: {
key: 'changeDetail',
code: 'PRODM-CHD',
name: '变更单明细查询',
path: '/spd/basic/goods/platform/change',
pathPart: 'platform/change',
forbidden: forbiddenOthers('platform/change'),
mock: prodmMock,
headers: ["物料名称", "物料编号", "规格型号", "规格", "型号", "器械注册人"],
rowOps: ["详情", "查看"],
page2Header: '物料名称',
sortColumns: ["物料名称"],
fixture: 'prodmChangeDetailPage',
specFile: 'prodm-change-detail.spec.ts',
csv: '基础管理-产品管理-变更单明细查询-UI自动化测试用例-01.csv',
},
peripheralAdd: {
key: 'peripheralAdd',
code: 'PRODM-PPA',
name: '外围系统产品新增',
path: '/spd/basic/goods/interface/peripheralSystem',
pathPart: 'interface/peripheralSystem',
forbidden: forbiddenOthers('interface/peripheralSystem'),
mock: prodmMock,
headers: ["推送状态", "失败原因", "初次同步时间", "变更时间", "资产/HIS编码", "*物料名称"],
rowOps: ["详情"],
page2Header: '推送状态',
addLabel: '批量推送',
fixture: 'prodmPeripheralAddPage',
specFile: 'prodm-peripheral-add.spec.ts',
csv: '基础管理-产品管理-外围系统产品新增-UI自动化测试用例-01.csv',
},
peripheralChg: {
key: 'peripheralChg',
code: 'PRODM-PPC',
name: '外围系统产品变更管理',
path: '/spd/basic/goods/interface/peripheralChange',
pathPart: 'interface/peripheralChange',
forbidden: forbiddenOthers('interface/peripheralChange'),
mock: prodmMock,
headers: ["资产/HIS编码", "销售商(自定义)编码", "销售商(自定义)", "供应商编码", "供应商", "物料名称"],
rowOps: ["详情", "编辑"],
page2Header: '资产/HIS编码',
fixture: 'prodmPeripheralChgPage',
specFile: 'prodm-peripheral-chg.spec.ts',
csv: '基础管理-产品管理-外围系统产品变更管理-UI自动化测试用例-01.csv',
},
diQuery: {
key: 'diQuery',
code: 'PRODM-DIQ',
name: '产品DI查询',
path: '/spd/basic/goods/platform/diSearch',
pathPart: 'platform/diSearch',
forbidden: forbiddenOthers('platform/diSearch'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "器械注册人", "单位", "耗材类型"],
rowOps: ["详情"],
page2Header: '物料编号',
fixture: 'prodmDiQueryPage',
specFile: 'prodm-di-query.spec.ts',
csv: '基础管理-产品管理-产品DI查询-UI自动化测试用例-01.csv',
},
stockout: {
key: 'stockout',
code: 'PRODM-STO',
name: '缺货目录维护',
path: '/spd/basic/goods/paltform/stockoutManagement',
pathPart: 'paltform/stockoutManagement',
forbidden: forbiddenOthers('paltform/stockoutManagement'),
mock: prodmMock,
headers: ["销售商(自定义)", "目录名称", "发布日期", "预计缺货结束日期", "发布人", "关闭人"],
rowOps: ["详情", "编辑"],
page2Header: '销售商(自定义)',
addLabel: '缺货信息维护',
fixture: 'prodmStockoutPage',
specFile: 'prodm-stockout.spec.ts',
csv: '基础管理-产品管理-缺货目录维护-UI自动化测试用例-01.csv',
},
centerZone: {
key: 'centerZone',
code: 'PRODM-CZO',
name: '中心库库区产品设置',
path: '/spd/basic/goods/platform/area/product',
pathPart: 'platform/area/product',
forbidden: forbiddenOthers('platform/area/product'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "器械注册人", "耗材类型", "单元含量"],
rowOps: ["编辑"],
page2Header: '物料编号',
addLabel: '添加中心库库区产品',
columnSettingsToggleCandidates: ["产品", "上下限"],
fixture: 'prodmCenterZonePage',
specFile: 'prodm-center-zone.spec.ts',
csv: '基础管理-产品管理-中心库库区产品设置-UI自动化测试用例-01.csv',
},
stockoutDetail: {
key: 'stockoutDetail',
code: 'PRODM-STD',
name: '缺货目录明细',
path: '/spd/basic/goods/paltform/stockoutList',
pathPart: 'paltform/stockoutList',
forbidden: forbiddenOthers('paltform/stockoutList'),
mock: prodmMock,
headers: ["销售商(自定义)", "物料编号", "物料名称", "规格型号", "器械注册人", "单位"],
rowOps: ["详情", "查看"],
page2Header: '销售商(自定义)',
addLabel: '替代产品',
fixture: 'prodmStockoutDetailPage',
specFile: 'prodm-stockout-detail.spec.ts',
csv: '基础管理-产品管理-缺货目录明细-UI自动化测试用例-01.csv',
},
materialChg: {
key: 'materialChg',
code: 'PRODM-MCH',
name: '物料信息变更',
path: '/spd/basic/goods/platform/zr-product-info',
pathPart: 'platform/zr-product-info',
forbidden: forbiddenOthers('platform/zr-product-info'),
mock: prodmMock,
headers: ["单号", "变更类型", "制单人", "制单时间", "计划生效时间", "实际生效时间"],
rowOps: ["详情", "打印"],
page2Header: '单号',
addLabel: '新增',
columnSettingsToggleCandidates: ["制单时间", "状态"],
fixture: 'prodmMaterialChgPage',
specFile: 'prodm-material-chg.spec.ts',
csv: '基础管理-产品管理-物料信息变更-UI自动化测试用例-01.csv',
},
diChange: {
key: 'diChange',
code: 'PRODM-DIC',
name: '产品DI变更',
path: '/spd/basic/goods/platform/dichange',
pathPart: 'platform/dichange',
forbidden: forbiddenOthers('platform/dichange'),
mock: prodmMock,
headers: ["变更单号", "变更类型", "销售商(自定义)", "制单人", "制单时间", "状态"],
rowOps: ["详情"],
page2Header: '变更单号',
columnSettingsToggleCandidates: ["状态", "产品"],
fixture: 'prodmDiChangePage',
specFile: 'prodm-di-change.spec.ts',
csv: '基础管理-产品管理-产品DI变更-UI自动化测试用例-01.csv',
},
qualRule: {
key: 'qualRule',
code: 'PRODM-QRL',
name: '产品资质齐全规则',
path: '/spd/basic/goods/product/rules',
pathPart: 'product/rules',
forbidden: forbiddenOthers('product/rules'),
mock: prodmMock,
headers: ["医院名称", "规则名称", "产品性质", "境内/境外", "管理类别", "创建人"],
rowOps: ["详情", "编辑", "日志"],
page2Header: '医院名称',
addLabel: '新增',
fixture: 'prodmQualRulePage',
specFile: 'prodm-qual-rule.spec.ts',
csv: '基础管理-产品管理-产品资质齐全规则-UI自动化测试用例-01.csv',
},
qualOverview: {
key: 'qualOverview',
code: 'PRODM-QOV',
name: '产品资质一览',
path: '/spd/basic/goods/product/overview',
pathPart: 'product/overview',
forbidden: forbiddenOthers('product/overview'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "产品性质", "境内/境外", "管理类别", "器械注册人"],
rowOps: ["详情", "查看"],
page2Header: '物料编号',
addLabel: '资质判断结果',
fixture: 'prodmQualOverviewPage',
specFile: 'prodm-qual-overview.spec.ts',
csv: '基础管理-产品管理-产品资质一览-UI自动化测试用例-01.csv',
},
materialChgDetail: {
key: 'materialChgDetail',
code: 'PRODM-MCD',
name: '物料变更单明细查询',
path: '/spd/basic/goods/platform/zrchange',
pathPart: 'platform/zrchange',
forbidden: forbiddenOthers('platform/zrchange'),
mock: prodmMock,
headers: ["物料编号", "物料名称", "规格型号", "规格", "型号", "器械注册人"],
rowOps: ["详情", "查看"],
page2Header: '物料编号',
sortColumns: ["物料编号"],
fixture: 'prodmMaterialChgDetailPage',
specFile: 'prodm-material-chg-detail.spec.ts',
csv: '基础管理-产品管理-物料变更单明细查询-UI自动化测试用例-01.csv',
},
};
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