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

将基础管理等未入库改动暂存到 temp 分支,便于远程备份。

新模块用例尚未具备通关凭证,本次按临时备份跳过本地门禁。
parent f6eec849
import type { Locator, Page } from '@playwright/test';
import { BasicSharedLocators } from './basic-shared.locator';
/** 医院信息登记。选择器来自 locators/spd/basic-hospital-info.locator.yaml */
export class BasicHospitalInfoLocators extends BasicSharedLocators {
readonly editBtn: Locator;
readonly saveBtn: Locator;
readonly cancelBtn: Locator;
readonly linkman: Locator;
readonly contactWay: Locator;
readonly shortName: Locator;
readonly loginBgUpload: Locator;
readonly logoUpload: Locator;
readonly previewLink: Locator;
constructor(page: Page) {
super(page);
this.editBtn = page.getByRole('button', { name: /编\s*辑/ });
this.saveBtn = page.getByRole('button', { name: /保\s*存/ });
this.cancelBtn = page.getByRole('button', { name: /取\s*消/ });
this.linkman = page.locator('#form_item_linkman');
this.contactWay = page.locator('#form_item_contactWay');
this.shortName = page.locator('#form_item_anotherName');
this.loginBgUpload = page.locator('input[type="file"]').nth(0);
this.logoUpload = page.locator('input[type="file"]').nth(1);
this.previewLink = page.getByRole('link', { name: '预览文件' });
}
}
# Auto-generated from basic-hospital-info-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/hospital/paltform/info
# Scanned: 2026-10-20T08:38:47.297Z
# Page: 基础设置 > 医院资料 > 医院信息登记
page: basic-hospital-info
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/hospital/paltform/info
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_hospitalInfoRegister:
description: "医院信息登记"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "医院信息登记"
playwright: "page.getByRole('menuitem', { name: '医院信息登记' })"
menu_branchManage:
description: "院区管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "院区管理"
playwright: "page.getByRole('menuitem', { name: '院区管理' })"
menu_noticeManage:
description: "公告管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "公告管理"
playwright: "page.getByRole('menuitem', { name: '公告管理' })"
menu_financeMonthSetting:
description: "财务月份设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务月份设置"
playwright: "page.getByRole('menuitem', { name: '财务月份设置' })"
hospitalInfoRegister:
description: "医院信息登记"
element_type: tab
section: "main::main"
strategy: text
value: "医院信息登记"
playwright: "page.getByText('医院信息登记')"
tab_hospitalInfoRegister:
description: "医院信息登记"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/hospital/paltform/info"
playwright: "page.locator('#rc-tabs-0-tab-/basic/hospital/paltform/info')"
editBtn:
description: "编 辑"
element_type: button
section: "main::main"
strategy: role
role: button
name: "编 辑"
playwright: "page.getByRole('button', { name: '编 辑' })"
el_e799bbe5bd95e9a1b5e8838ce699af:
description: "登录页背景"
element_type: a
section: "main::main"
strategy: label_text
value: "登录页背景"
playwright: "page.getByText('登录页背景', { exact: true })"
el_e799bbe5bd95e9a1b5e8838ce699af_2:
description: "预览文件"
element_type: a
section: "main::main"
strategy: label_text
value: "登录页背景"
playwright: "page.getByText('登录页背景', { exact: true })"
el_e58cbbe999a26c6f676f:
description: "医院logo"
element_type: a
section: "main::main"
strategy: label_text
value: "医院logo"
playwright: "page.getByText('医院logo', { exact: true })"
el_e58cbbe999a26c6f676f_2:
description: "预览文件"
element_type: a
section: "main::main"
strategy: label_text
value: "医院logo"
playwright: "page.getByText('医院logo', { exact: true })"
saveBtn:
description: "保 存"
element_type: button
section: "main::main"
strategy: role
role: button
name: "保 存"
playwright: "page.getByRole('button', { name: '保 存' })"
cancelBtn:
description: "取 消"
element_type: button
section: "main::main"
strategy: role
role: button
name: "取 消"
playwright: "page.getByRole('button', { name: '取 消' })"
el_e88194e7b3bbe4babaInput:
description: "20260701测试1"
element_type: text
section: "main::main"
strategy: id
value: "form_item_linkman"
playwright: "page.locator('#form_item_linkman')"
el_e88194e7b3bbe696b9e5bc8fInput:
description: "10000000005"
element_type: text
section: "main::main"
strategy: id
value: "form_item_contactWay"
playwright: "page.locator('#form_item_contactWay')"
el_e58cbbe999a2e7ae80e7a7b0Input:
description: "邹城市人民医院"
element_type: text
section: "main::main"
strategy: id
value: "form_item_anotherName"
playwright: "page.locator('#form_item_anotherName')"
import type { Locator, Page } from '@playwright/test';
import { BasicSharedLocators } from './basic-shared.locator';
/** 公告管理。选择器来自 locators/spd/basic-notice.locator.yaml */
export class BasicNoticeLocators extends BasicSharedLocators {
readonly noticeTitle: Locator;
readonly publishScopeSelect: Locator;
readonly searchBtn: Locator;
readonly resetBtn: Locator;
readonly addBtn: Locator;
readonly richTextEditor: Locator;
readonly modalTitleInput: Locator;
constructor(page: Page) {
super(page);
this.noticeTitle = page.locator('#form_item_title');
this.publishScopeSelect = page.locator('.ant-form-item').filter({ hasText: '发布范围' }).locator('.ant-select').first();
this.searchBtn = page.getByRole('button', { name: /查\s*询/ });
this.resetBtn = page.getByRole('button', { name: /重\s*置/ });
this.addBtn = page.getByRole('button', { name: /新\s*增/ });
this.richTextEditor = page.locator('.ql-editor').first();
this.modalTitleInput = this.dialog.locator('#form_item_title');
}
}
# Auto-generated from basic-notice-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/hospital/paltform/notice
# Scanned: 2026-10-20T08:38:11.083Z
# Page: 基础设置 > 医院资料 > 公告管理
# Note: filter dropdown was opened during scan
# Note: dialog/modal was opened during scan
# Note: edit dialog was opened during scan
page: basic-notice
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/hospital/paltform/notice
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_hospitalInfoRegister:
description: "医院信息登记"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "医院信息登记"
playwright: "page.getByRole('menuitem', { name: '医院信息登记' })"
menu_branchManage:
description: "院区管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "院区管理"
playwright: "page.getByRole('menuitem', { name: '院区管理' })"
menu_noticeManage:
description: "公告管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "公告管理"
playwright: "page.getByRole('menuitem', { name: '公告管理' })"
menu_financeMonthSetting:
description: "财务月份设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务月份设置"
playwright: "page.getByRole('menuitem', { name: '财务月份设置' })"
noticeManage:
description: "公告管理"
element_type: tab
section: "main::main"
strategy: text
value: "公告管理"
playwright: "page.getByText('公告管理')"
tab_noticeManage:
description: "公告管理"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/hospital/paltform/notice"
playwright: "page.locator('#rc-tabs-0-tab-/basic/hospital/paltform/notice')"
noticeTitle:
description: "公告标题"
element_type: text
section: "main::main"
strategy: id
value: "form_item_title"
playwright: "page.locator('#form_item_title')"
publishDateDateRange:
description: "发布日期"
element_type: datepicker
section: "main::main"
strategy: label_text
value: "发布日期"
playwright: "page.getByText('发布日期', { exact: true })"
publishDateInput:
description: "开始日期"
element_type: text
section: "main::main"
strategy: id
value: "form_item_date"
playwright: "page.locator('#form_item_date')"
publishDateInput_2:
description: "结束日期"
element_type: text
section: "main::main"
strategy: placeholder
value: "结束日期"
playwright: "page.getByPlaceholder('结束日期')"
publishScopeSelect:
description: "发布范围"
element_type: select
section: "main::main"
strategy: label_text
value: "发布范围"
playwright: "page.getByText('发布范围', { exact: true })"
searchBtn:
description: "查 询"
element_type: button
section: "main::main"
strategy: role
role: button
name: "查 询"
playwright: "page.getByRole('button', { name: '查 询' })"
resetBtn:
description: "重 置"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重 置"
playwright: "page.getByRole('button', { name: '重 置' })"
addBtn:
description: "新 增"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新 增"
playwright: "page.getByRole('button', { name: '新 增' })"
tableDensity:
description: "column-height"
element_type: span
section: "main::main"
strategy: label
value: "column-height"
playwright: "page.getByLabel('column-height')"
editBtn:
description: "编辑"
element_type: button
section: "main::main"
strategy: role
role: button
name: "编辑"
playwright: "page.getByRole('button', { name: '编辑' })"
el_e588a0e999a4Btn:
description: "删除"
element_type: button
section: "main::main"
strategy: role
role: button
name: "删除"
playwright: "page.getByRole('button', { name: '删除' })"
# --- main::pagination ---
pagination_el_e585b13635e69da131323530e69da12fe9a1b5e8b7b3e887b3e9a1b5:
description: "共 65 条1250 条/页跳至页"
element_type: ul
section: "main::pagination"
strategy: text
value: "共 65 条1250 条/页跳至页"
playwright: "page.getByText('共 65 条1250 条/页跳至页')"
pagination_prevPageBtn:
description: "上一页"
element_type: li
section: "main::pagination"
strategy: text
value: "上一页"
playwright: "page.getByText('上一页')"
pagination_page_1:
description: "1"
element_type: pagination_item
section: "main::pagination"
strategy: css
value: ".ant-pagination-item-active"
playwright: "page.locator('.ant-pagination-item-active')"
pagination_page_2:
description: "2"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "2"
playwright: "page.getByText('2')"
pagination_nextPageBtn:
description: "下一页"
element_type: li
section: "main::pagination"
strategy: text
value: "下一页"
playwright: "page.getByText('下一页')"
pagination_pageSizeSelect:
description: "50 条/页"
element_type: select
section: "main::pagination"
strategy: text
value: "50 条/页"
playwright: "page.getByText('50 条/页')"
# --- main::modal:新增公告 ---
noticeTitle_2:
description: "请输入"
element_type: text
section: "main::modal:新增公告"
strategy: id
value: "form_item_title"
playwright: "page.locator('#form_item_title')"
el_e585a8e983a8:
description: "全部"
element_type: radio
section: "main::modal:新增公告"
strategy: text
value: "全部"
playwright: "page.getByText('全部')"
el_e585a8e999a2:
description: "全院"
element_type: radio
section: "main::modal:新增公告"
strategy: text
value: "全院"
playwright: "page.getByText('全院')"
el_e4b8ade5bf83e5ba93:
description: "中心库"
element_type: radio
section: "main::modal:新增公告"
strategy: text
value: "中心库"
playwright: "page.getByText('中心库')"
el_e99480e594aee59586:
description: "销售商"
element_type: radio
section: "main::modal:新增公告"
strategy: text
value: "销售商"
playwright: "page.getByText('销售商')"
el_e698af:
description: "是"
element_type: radio
section: "main::modal:新增公告"
strategy: text
value: "是"
playwright: "page.getByText('是')"
el_e590a6:
description: "否"
element_type: radio
section: "main::modal:新增公告"
strategy: text
value: "否"
playwright: "page.getByText('否')"
expireDateDateRange:
description: "截止日期"
element_type: datepicker
section: "main::modal:新增公告"
strategy: label_text
value: "截止日期"
playwright: "page.getByText('截止日期', { exact: true })"
expireDate:
description: "请选择日期"
element_type: text
section: "main::modal:新增公告"
strategy: id
value: "form_item_expireDate"
playwright: "page.locator('#form_item_expireDate')"
contentBtn:
description: "内容"
element_type: button
section: "main::modal:新增公告"
strategy: label_text
value: "内容"
playwright: "page.getByText('内容', { exact: true })"
content:
description: "内容"
element_type: span
section: "main::modal:新增公告"
strategy: role
role: button
name: "内容"
playwright: "page.getByRole('button', { name: '内容' })"
content_2:
description: "内容"
element_type: div
section: "main::modal:新增公告"
strategy: label_text
value: "内容"
playwright: "page.getByText('内容', { exact: true })"
cancelBtn:
description: "取 消"
element_type: button
section: "main::modal:新增公告"
strategy: role
role: button
name: "取 消"
playwright: "page.getByRole('button', { name: '取 消' })"
el_e58f91e5b883Btn:
description: "发 布"
element_type: button
section: "main::modal:新增公告"
strategy: role
role: button
name: "发 布"
playwright: "page.getByRole('button', { name: '发 布' })"
# --- main::modal ---
confirmBtn:
description: "确 定"
element_type: button
section: "main::modal"
strategy: role
role: button
name: "确 定"
playwright: "page.getByRole('button', { name: '确 定' })"
# --- main::modal:编辑公告 ---
noticeTitle_3:
description: "请输入"
element_type: text
section: "main::modal:编辑公告"
strategy: id
value: "form_item_title"
playwright: "page.locator('#form_item_title')"
el_e585a8e983a8_2:
description: "全部"
element_type: radio
section: "main::modal:编辑公告"
strategy: text
value: "全部"
playwright: "page.getByText('全部')"
el_e585a8e999a2_2:
description: "全院"
element_type: radio
section: "main::modal:编辑公告"
strategy: text
value: "全院"
playwright: "page.getByText('全院')"
el_e4b8ade5bf83e5ba93_2:
description: "中心库"
element_type: radio
section: "main::modal:编辑公告"
strategy: text
value: "中心库"
playwright: "page.getByText('中心库')"
el_e99480e594aee59586_2:
description: "销售商"
element_type: radio
section: "main::modal:编辑公告"
strategy: text
value: "销售商"
playwright: "page.getByText('销售商')"
el_e698af_2:
description: "是"
element_type: radio
section: "main::modal:编辑公告"
strategy: text
value: "是"
playwright: "page.getByText('是')"
el_e590a6_2:
description: "否"
element_type: radio
section: "main::modal:编辑公告"
strategy: text
value: "否"
playwright: "page.getByText('否')"
expireDateDateRange_2:
description: "截止日期"
element_type: datepicker
section: "main::modal:编辑公告"
strategy: label_text
value: "截止日期"
playwright: "page.getByText('截止日期', { exact: true })"
expireDate_2:
description: "2026-10-20"
element_type: text
section: "main::modal:编辑公告"
strategy: id
value: "form_item_expireDate"
playwright: "page.locator('#form_item_expireDate')"
content_3:
description: "内容"
element_type: span
section: "main::modal:编辑公告"
strategy: role
role: button
name: "内容"
playwright: "page.getByRole('button', { name: '内容' })"
content_4:
description: "存在与平台价格不一致的产品,请注意执行调价!"
element_type: div
section: "main::modal:编辑公告"
strategy: label_text
value: "内容"
playwright: "page.getByText('内容', { exact: true })"
import type { Locator, Page } from '@playwright/test';
import { BasicUserSharedLocators } from './basic-user-shared.locator';
/** 角色管理。选择器来自 locators/spd/basic-role.locator.yaml */
export class BasicRoleLocators extends BasicUserSharedLocators {
readonly saveBtn: Locator;
readonly refreshBtn: Locator;
readonly addRoleBtn: Locator;
readonly roleSearch: Locator;
readonly roleTree: Locator;
constructor(page: Page) {
super(page);
this.saveBtn = page.getByRole('button', { name: /保\s*存/ });
this.refreshBtn = page.getByRole('button', { name: /刷\s*新/ });
this.addRoleBtn = page.getByRole('button', { name: /^角\s*色$/ });
this.roleSearch = page
.getByPlaceholder(/角色/)
.or(page.locator('.ant-layout-sider input, .ant-layout-sider .ant-input'))
.first();
this.roleTree = page.locator('.menu-role-tree').first();
}
treeNode(title: string): Locator {
return this.roleTree.locator('.ant-tree-title').filter({ hasText: new RegExp(`^\\s*${title}\\s*$`) });
}
treeCheckbox(title: string): Locator {
return this.roleTree
.locator('.ant-tree-treenode')
.filter({ has: this.page.locator('.ant-tree-title').filter({ hasText: new RegExp(`^\\s*${title}\\s*$`) }) })
.locator('.ant-tree-checkbox')
.first();
}
}
# Auto-generated from basic-role-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/user/platform/role
# Scanned: 2026-10-20T08:31:14.084Z
# Page: 基础设置 > 用户管理 > 角色管理
page: basic-role
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/user/platform/role
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_roleManage:
description: "角色管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "角色管理"
playwright: "page.getByRole('menuitem', { name: '角色管理' })"
menu_userManage:
description: "用户管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "用户管理"
playwright: "page.getByRole('menuitem', { name: '用户管理' })"
menu_unionUserManage:
description: "医共体用户管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "医共体用户管理"
playwright: "page.getByRole('menuitem', { name: '医共体用户管理' })"
roleManage:
description: "角色管理"
element_type: tab
section: "main::main"
strategy: text
value: "角色管理"
playwright: "page.getByText('角色管理')"
tab_roleManage:
description: "角色管理"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/user/platform/role"
playwright: "page.locator('#rc-tabs-0-tab-/basic/user/platform/role')"
el_e8a792e889b2Btn:
description: "角色"
element_type: button
section: "main::main"
strategy: role
role: button
name: "角色"
playwright: "page.getByRole('button', { name: '角色' })"
saveBtn:
description: "保 存"
element_type: button
section: "main::main"
strategy: role
role: button
name: "保 存"
playwright: "page.getByRole('button', { name: '保 存' })"
el_e588b7e696b0Btn:
description: "刷 新"
element_type: button
section: "main::main"
strategy: role
role: button
name: "刷 新"
playwright: "page.getByRole('button', { name: '刷 新' })"
el_535044e58685e7bd91e7b3bbe7bb9f5043e7abaf:
description: "SPD内网系统PC端"
element_type: checkbox
section: "main::main"
strategy: text
value: "SPD内网系统PC端"
playwright: "page.getByText('SPD内网系统PC端')"
tree_node_basicSetting_e59fbae7a180:
description: "基础设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "基础设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*基础设置\\s*$/ })"
tree_node_hospitalInfo_e58cbbe999a2:
description: "医院资料"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "医院资料"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*医院资料\\s*$/ })"
tree_node_hospitalInfoRegister_e58cbbe999a2:
description: "医院信息登记"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "医院信息登记"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*医院信息登记\\s*$/ })"
tree_node_branchManage_e999a2e58cba:
description: "院区管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院区管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院区管理\\s*$/ })"
tree_node_noticeManage_e585ace5918a:
description: "公告管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "公告管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*公告管理\\s*$/ })"
tree_node_financeMonthSetting_e8b4a2e58aa1:
description: "财务月份设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务月份设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务月份设置\\s*$/ })"
tree_node_e8bf90e7bbb4:
description: "运维管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "运维管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*运维管理\\s*$/ })"
tree_node_e88f9ce58d95:
description: "菜单控制规则设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "菜单控制规则设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*菜单控制规则设置\\s*$/ })"
tree_node_e58cbbe999a2:
description: "医院配置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "医院配置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*医院配置\\s*$/ })"
tree_el_e88f9ce58d95e58f97e68ea7e58897e8a1a8_2:
description: "菜单受控列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "菜单受控列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*菜单受控列表\\s*$/ })"
tree_node_e999a2e58cba:
description: "院区配置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院区配置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院区配置\\s*$/ })"
tree_node_e7a791e5aea4:
description: "科室配置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室配置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室配置\\s*$/ })"
tree_node_e69cafe8afad:
description: "术语配置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "术语配置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*术语配置\\s*$/ })"
tree_node_e8b584e6ba90:
description: "资源模板设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "资源模板设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*资源模板设置\\s*$/ })"
tree_node_e5ad97e585b8:
description: "字典管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "字典管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*字典管理\\s*$/ })"
tree_node_e68993e58db0:
description: "打印机配置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "打印机配置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*打印机配置\\s*$/ })"
tree_node_e7bc96e7a081:
description: "编码规则管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "编码规则管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*编码规则管理\\s*$/ })"
tree_node_504441e68e88:
description: "PDA授权"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "PDA授权"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*PDA授权\\s*$/ })"
tree_node_504441e78988:
description: "PDA版本管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "PDA版本管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*PDA版本管理\\s*$/ })"
tree_node_e7bc93e5ad98:
description: "缓存监控"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "缓存监控"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*缓存监控\\s*$/ })"
tree_node_e6938de4bd9c:
description: "操作日志"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "操作日志"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*操作日志\\s*$/ })"
tree_node_e6b688e681af:
description: "消息通知模板"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "消息通知模板"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*消息通知模板\\s*$/ })"
tree_el_e6b688e681afe9809ae79fa5e8aebee7bdae_2:
description: "消息通知设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "消息通知设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*消息通知设置\\s*$/ })"
tree_node_e58a9fe883bd:
description: "功能注册"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "功能注册"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*功能注册\\s*$/ })"
tree_node_e4bbbbe58aa1:
description: "任务执行记录查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "任务执行记录查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*任务执行记录查询\\s*$/ })"
tree_node_vendorManage_e58e82e59586:
description: "厂商管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "厂商管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*厂商管理\\s*$/ })"
tree_node_vendorQuery_e58e82e59586:
description: "厂商查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "厂商查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*厂商查询\\s*$/ })"
tree_node_vendorQual_e4be9be5ba94:
description: "供应商资质管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商资质管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商资质管理\\s*$/ })"
tree_node_authFirst_e68e88e69d83:
description: "授权变更初审"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "授权变更初审"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*授权变更初审\\s*$/ })"
tree_node_certFirst_e6b3a8e5868c:
description: "注册证变更初审"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "注册证变更初审"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*注册证变更初审\\s*$/ })"
tree_node_certFinal_e6b3a8e5868c:
description: "注册证变更终审"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "注册证变更终审"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*注册证变更终审\\s*$/ })"
tree_node_authFinal_e68e88e69d83:
description: "授权变更终审"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "授权变更终审"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*授权变更终审\\s*$/ })"
tree_node_certDiff_e6b3a8e5868c:
description: "注册证差异对比"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "注册证差异对比"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*注册证差异对比\\s*$/ })"
tree_node_evalScheme_e8af84e4bbb7:
description: "评价方案维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "评价方案维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*评价方案维护\\s*$/ })"
tree_node_evalIndicator_e8af84e4bbb7:
description: "评价指标维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "评价指标维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*评价指标维护\\s*$/ })"
tree_node_vendorHoliday_e4be9be5ba94:
description: "供应商节假日管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商节假日管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商节假日管理\\s*$/ })"
tree_node_e4baa7e59381:
description: "产品管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品管理\\s*$/ })"
tree_el_e4baa7e59381e6a0b8e5afb9e9878de696b0e58f91e8b5b7_2:
description: "产品核对重新发起"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品核对重新发起"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品核对重新发起\\s*$/ })"
tree_el_e4baa7e59381e7bbb4e68aa4_2:
description: "产品维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品维护\\s*$/ })"
tree_node_e789a9e69699:
description: "物料信息管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "物料信息管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*物料信息管理\\s*$/ })"
tree_el_e4baa7e59381e5889de5aea1e6a0b8e5afb9_2:
description: "产品初审核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品初审核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品初审核对\\s*$/ })"
tree_el_e4baa7e59381e4be9be5ba94e585b3e7b3bbe7bbb4e68aa4_2:
description: "产品供应关系维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品供应关系维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品供应关系维护\\s*$/ })"
tree_el_e4baa7e59381e789a9e4bbb7e6a0b8e5afb9_2:
description: "产品物价核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品物价核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品物价核对\\s*$/ })"
tree_el_e999a2e58cbae4baa7e59381e8aebee7bdae_2:
description: "院区产品设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院区产品设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院区产品设置\\s*$/ })"
tree_el_e999a2e58cbae58d95e58583e58c85e8aebee7bdae_2:
description: "院区单元包设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院区单元包设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院区单元包设置\\s*$/ })"
tree_node_e4b8ade5bf83:
description: "中心库上下限建议(AI)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库上下限建议(AI)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库上下限建议(AI)\\s*$/ })"
tree_node_e8afb7e9a286:
description: "请领出库渠道设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领出库渠道设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领出库渠道设置\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e4b88ae4b88be99990e5bbbae8aeae_2:
description: "中心库上下限建议"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库上下限建议"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库上下限建议\\s*$/ })"
tree_node_e7bb93e7ae97:
description: "结算点设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算点设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算点设置\\s*$/ })"
tree_node_e8b083e4bbb7:
description: "调价管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "调价管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*调价管理\\s*$/ })"
tree_el_e4baa7e59381e4bfa1e681afe58f98e69bb4_2:
description: "产品信息变更"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品信息变更"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品信息变更\\s*$/ })"
tree_node_e58f98e69bb4:
description: "变更单明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "变更单明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*变更单明细查询\\s*$/ })"
tree_node_e5a496e59bb4:
description: "外围系统产品新增"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "外围系统产品新增"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*外围系统产品新增\\s*$/ })"
tree_el_e5a496e59bb4e7b3bbe7bb9fe4baa7e59381e58f98e69bb4e7aea1e79086_2:
description: "外围系统产品变更管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "外围系统产品变更管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*外围系统产品变更管理\\s*$/ })"
tree_el_e4baa7e593814449e69fa5e8afa2_2:
description: "产品DI查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品DI查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品DI查询\\s*$/ })"
tree_node_e7bcbae8b4a7:
description: "缺货目录维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "缺货目录维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*缺货目录维护\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e5ba93e58cbae4baa7e59381e8aebee7bdae_2:
description: "中心库库区产品设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库库区产品设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库库区产品设置\\s*$/ })"
tree_el_e7bcbae8b4a7e79baee5bd95e6988ee7bb86_2:
description: "缺货目录明细"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "缺货目录明细"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*缺货目录明细\\s*$/ })"
tree_el_e789a9e69699e4bfa1e681afe58f98e69bb4_2:
description: "物料信息变更"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "物料信息变更"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*物料信息变更\\s*$/ })"
tree_el_e4baa7e593814449e58f98e69bb4_2:
description: "产品DI变更"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品DI变更"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品DI变更\\s*$/ })"
tree_el_e4baa7e59381e8b584e8b4a8e9bd90e585a8e8a784e58899_2:
description: "产品资质齐全规则"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品资质齐全规则"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品资质齐全规则\\s*$/ })"
tree_el_e4baa7e59381e8b584e8b4a8e4b880e8a788_2:
description: "产品资质一览"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品资质一览"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品资质一览\\s*$/ })"
tree_el_e789a9e69699e58f98e69bb4e58d95e6988ee7bb86e69fa5e8afa2_2:
description: "物料变更单明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "物料变更单明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*物料变更单明细查询\\s*$/ })"
tree_el_e7a791e5aea4e7aea1e79086_2:
description: "科室管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室管理\\s*$/ })"
tree_el_e7a791e5aea4e799bbe8aeb0_2:
description: "科室登记"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室登记"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室登记\\s*$/ })"
tree_el_e7a791e5aea4e4baa7e59381e58886e9858d_2:
description: "科室产品分配"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室产品分配"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室产品分配\\s*$/ })"
tree_el_e7a791e5aea4e5ba93e58cbae4baa7e59381e8aebee7bdae_2:
description: "科室库区产品设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室库区产品设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室库区产品设置\\s*$/ })"
tree_el_e7a791e5aea4e8b79fe58fb0e99990e9a29de4bbbbe58aa1_2:
description: "科室跟台限额任务"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室跟台限额任务"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室跟台限额任务\\s*$/ })"
tree_el_e8afb7e9a286e6a8a1e69dbfe7bbb4e68aa4_2:
description: "请领模板维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领模板维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领模板维护\\s*$/ })"
tree_node_e887aae58aa8:
description: "自动请领排程"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "自动请领排程"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*自动请领排程\\s*$/ })"
tree_el_e7a791e5aea4e4babae59198e69fa5e8afa2_2:
description: "科室人员查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室人员查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室人员查询\\s*$/ })"
tree_el_e7a791e5aea4e4b88ae4b88be99990e5bbbae8aeae_2:
description: "科室上下限建议"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室上下限建议"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室上下限建议\\s*$/ })"
tree_el_e7a791e5aea4e4b88ae4b88be99990e5bbbae8aeaeefbc884149efbc89_2:
description: "科室上下限建议(AI)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室上下限建议(AI)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室上下限建议(AI)\\s*$/ })"
tree_el_e7a791e5aea4e9a284e7ae97e7aea1e79086_2:
description: "科室预算管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室预算管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室预算管理\\s*$/ })"
tree_node_e6a380e9aa8c:
description: "检验机器管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "检验机器管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*检验机器管理\\s*$/ })"
tree_el_e7a791e5aea4e98081e8b4a7e8aea1e58892_2:
description: "科室送货计划"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室送货计划"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室送货计划\\s*$/ })"
tree_el_e7a791e5aea4e58886e7b1bbe7bbb4e68aa4_2:
description: "科室分类维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室分类维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室分类维护\\s*$/ })"
tree_el_e7a791e5aea4e4baa7e593814149e9a284e6b58be7bb93e8aeba_2:
description: "科室产品AI预测结论"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室产品AI预测结论"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室产品AI预测结论\\s*$/ })"
tree_node_e5ba93e688bf:
description: "库房管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库房管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库房管理\\s*$/ })"
tree_node_e5ba93e58cba:
description: "库区设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库区设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库区设置\\s*$/ })"
tree_node_e68ea2e99288:
description: "探针绑定"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "探针绑定"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*探针绑定\\s*$/ })"
tree_node_e58d8ee6b885:
description: "华清通道"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "华清通道"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*华清通道\\s*$/ })"
tree_node_userManage_e794a8e688b7:
description: "用户管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "用户管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*用户管理\\s*$/ })"
tree_node_roleManage_e8a792e889b2:
description: "角色管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "角色管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*角色管理\\s*$/ })"
tree_userManage_2:
description: "用户管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "用户管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*用户管理\\s*$/ })"
tree_node_unionUserManage_e58cbbe585b1:
description: "医共体用户管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "医共体用户管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*医共体用户管理\\s*$/ })"
tree_node_e6b581e7a88b:
description: "流程设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "流程设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*流程设置\\s*$/ })"
tree_node_e5aea1e689b9:
description: "审批流程设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "审批流程设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*审批流程设置\\s*$/ })"
tree_el_e5aea1e689b9e6b581e5ae9ee4be8b_2:
description: "审批流实例"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "审批流实例"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*审批流实例\\s*$/ })"
tree_node_e68ea5e58fa3:
description: "接口管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "接口管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*接口管理\\s*$/ })"
tree_el_e68ea5e58fa3e697a5e5bf97_2:
description: "接口日志"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "接口日志"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*接口日志\\s*$/ })"
tree_node_e68ea8e98081:
description: "推送物价"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "推送物价"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*推送物价\\s*$/ })"
tree_node_e694b6e8b4b9:
description: "收费项目对码"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "收费项目对码"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*收费项目对码\\s*$/ })"
tree_el_e5a496e59bb4e4baa7e59381e58f98e69bb4_2:
description: "外围产品变更"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "外围产品变更"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*外围产品变更\\s*$/ })"
tree_node_484953e4bbb7:
description: "HIS价对照查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "HIS价对照查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*HIS价对照查询\\s*$/ })"
tree_node_e5a496e983a8:
description: "外部变更明细信息查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "外部变更明细信息查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*外部变更明细信息查询\\s*$/ })"
tree_node_e58cbbe4bf9d:
description: "医保信息核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "医保信息核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*医保信息核对\\s*$/ })"
tree_node_e58e82e59586:
description: "厂商对码"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "厂商对码"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*厂商对码\\s*$/ })"
tree_node_e4bba3e4b8ba:
description: "代为科室请领(已确认)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "代为科室请领(已确认)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*代为科室请领(已确认)\\s*$/ })"
tree_node_e4bba3e4ba8c:
description: "代二级科室请领产品"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "代二级科室请领产品"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*代二级科室请领产品\\s*$/ })"
tree_node_484953e4baa7:
description: "HIS产品信息变更"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "HIS产品信息变更"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*HIS产品信息变更\\s*$/ })"
tree_node_484953e7a791:
description: "HIS科室查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "HIS科室查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*HIS科室查询\\s*$/ })"
tree_node_484953e4baba:
description: "HIS人员查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "HIS人员查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*HIS人员查询\\s*$/ })"
tree_node_484953e694b6:
description: "HIS收费项与产品对照关系查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "HIS收费项与产品对照关系查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*HIS收费项与产品对照关系查询\\s*$/ })"
tree_el_e999a2e58cbae5afb9e7a081_2:
description: "院区对码"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院区对码"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院区对码\\s*$/ })"
tree_el_e999a2e58cbae5afb9e7a081_3:
description: "院区对码"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院区对码"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院区对码\\s*$/ })"
tree_el_e999a2e58cbae5afb9e7a081_4:
description: "院区对码"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院区对码"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院区对码\\s*$/ })"
tree_node_e4bd8ee580bc:
description: "低值计费接口查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "低值计费接口查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*低值计费接口查询\\s*$/ })"
tree_node_e699bae883bd:
description: "智能柜与库区对码"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "智能柜与库区对码"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*智能柜与库区对码\\s*$/ })"
tree_node_e789a9e8b584:
description: "物资字典推送记录"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "物资字典推送记录"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*物资字典推送记录\\s*$/ })"
tree_node_e5b9b3e58fb0:
description: "平台产品价格差异查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "平台产品价格差异查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*平台产品价格差异查询\\s*$/ })"
tree_el_e8afb7e9a286e58d95e68ea5e58fa3e69fa5e8afa2_2:
description: "请领单接口查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领单接口查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领单接口查询\\s*$/ })"
tree_node_surgerySetting_e6898be69caf:
description: "手术套包设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包设置\\s*$/ })"
tree_node_basePkgMaintenance_e59fbae7a180:
description: "基础包维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "基础包维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*基础包维护\\s*$/ })"
tree_node_operTypeMaintenance_e69cafe7a78d:
description: "术种维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "术种维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*术种维护\\s*$/ })"
tree_node_stdPkgMaintenance_e6a087e58786:
description: "标准套包维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "标准套包维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*标准套包维护\\s*$/ })"
tree_node_admitManage_e58786e585a5:
description: "准入管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "准入管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*准入管理\\s*$/ })"
tree_node_admitMaterial_e789a9e69699:
description: "物料准入管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "物料准入管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*物料准入管理\\s*$/ })"
tree_node_admitProductApply_e4baa7e59381:
description: "产品准入申请"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品准入申请"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品准入申请\\s*$/ })"
tree_node_admitMaterialList_e789a9e69699:
description: "物料准入单列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "物料准入单列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*物料准入单列表\\s*$/ })"
tree_node_admitProductList_e4baa7e59381:
description: "产品准入单列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品准入单列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品准入单列表\\s*$/ })"
tree_node_admitSupply_e4be9be8b4a7:
description: "供货目录申请"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供货目录申请"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供货目录申请\\s*$/ })"
tree_node_admitTask_e58786e585a5:
description: "准入任务分配"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "准入任务分配"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*准入任务分配\\s*$/ })"
tree_node_purchase_e98787e8b4ad:
description: "采购管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购管理\\s*$/ })"
tree_node_e98787e8b4ad:
description: "采购计划"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购计划"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购计划\\s*$/ })"
tree_node_e99990e9878f:
description: "限量任务"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "限量任务"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*限量任务\\s*$/ })"
tree_el_e98787e8b4ade58d95e7aea1e79086_2:
description: "采购单管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购单管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购单管理\\s*$/ })"
tree_el_e98787e8b4ade8aea1e58892e6988ee7bb86_2:
description: "采购计划明细"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购计划明细"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购计划明细\\s*$/ })"
tree_el_e8afb7e9a286e5aea1e6a0b8_2:
description: "请领审核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领审核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领审核\\s*$/ })"
tree_node_e4b8b4e98787:
description: "临采任务"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "临采任务"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*临采任务\\s*$/ })"
tree_node_e5b8a6e9878f:
description: "带量任务管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "带量任务管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*带量任务管理\\s*$/ })"
tree_el_e5b8a6e9878fe98787e8b4ade79baee5bd95_2:
description: "带量采购目录"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "带量采购目录"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*带量采购目录\\s*$/ })"
tree_node_e69c88e5baa6:
description: "月度备货计划"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "月度备货计划"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*月度备货计划\\s*$/ })"
tree_node_e7a791e7a094:
description: "科研项目设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科研项目设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科研项目设置\\s*$/ })"
tree_node_e6898be69caf:
description: "手术通知单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术通知单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术通知单\\s*$/ })"
tree_node_e79c81e98787:
description: "省采订单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "省采订单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*省采订单\\s*$/ })"
tree_node_e6b19fe88b8f:
description: "江苏省采"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "江苏省采"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*江苏省采\\s*$/ })"
tree_node_e7bb8fe8b4b9:
description: "经费来源类型"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "经费来源类型"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*经费来源类型\\s*$/ })"
tree_el_e7bcbae8b4a7e58f8de9a688_2:
description: "缺货反馈"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "缺货反馈"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*缺货反馈\\s*$/ })"
tree_node_e68d90e8b5a0:
description: "捐赠活动设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "捐赠活动设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*捐赠活动设置\\s*$/ })"
tree_node_e4be9be5ba94:
description: "供应商评价"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商评价"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商评价\\s*$/ })"
tree_node_opening_e69c9fe5889d:
description: "期初管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "期初管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*期初管理\\s*$/ })"
tree_node_e69c9fe5889d:
description: "期初录入"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "期初录入"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*期初录入\\s*$/ })"
tree_el_e69c9fe5889de6988ee7bb86e69fa5e8afa2_2:
description: "期初明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "期初明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*期初明细查询\\s*$/ })"
tree_node_e5bfabe9809f:
description: "快速盘点记录"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "快速盘点记录"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*快速盘点记录\\s*$/ })"
tree_node_centerStock_e4b8ade5bf83:
description: "中心库管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库管理\\s*$/ })"
tree_node_e585a5e5ba93:
description: "入库管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入库管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入库管理\\s*$/ })"
tree_node_e9aa8ce694b6:
description: "验收管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "验收管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*验收管理\\s*$/ })"
tree_el_e9aa8ce694b6e694b6e8b4a7_2:
description: "验收收货"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "验收收货"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*验收收货\\s*$/ })"
tree_node_e4b88ae69eb6:
description: "上架入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "上架入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*上架入库\\s*$/ })"
tree_el_e9aa8ce694b6e58fb0e8b4a6_2:
description: "验收台账"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "验收台账"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*验收台账\\s*$/ })"
tree_el_e7a791e5aea4e9a9b3e59b9ee7a1aee8aea4_2:
description: "科室驳回确认"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室驳回确认"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室驳回确认\\s*$/ })"
tree_node_e6898be5b7a5:
description: "手工入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工入库\\s*$/ })"
tree_node_e585b6e4bb96:
description: "其他物资入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "其他物资入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*其他物资入库\\s*$/ })"
tree_node_e8af95e58982:
description: "试剂性能验证单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "试剂性能验证单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*试剂性能验证单\\s*$/ })"
tree_node_e7b4a7e680a5:
description: "紧急使用登记"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "紧急使用登记"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*紧急使用登记\\s*$/ })"
tree_node_e8b4b4e7a081:
description: "贴码核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "贴码核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*贴码核对\\s*$/ })"
tree_el_e9aa8ce694b6e7a1aee8aea4_2:
description: "验收确认"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "验收确认"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*验收确认\\s*$/ })"
tree_node_e68abde9aa8c:
description: "抽验记录查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "抽验记录查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*抽验记录查询\\s*$/ })"
tree_el_e9aa8ce694b6e8b4b4e7a081e4bbbbe58aa1e58886e9858d_2:
description: "验收贴码任务分配"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "验收贴码任务分配"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*验收贴码任务分配\\s*$/ })"
tree_node_e8b79fe58fb0:
description: "跟台耗材识别仪入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跟台耗材识别仪入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跟台耗材识别仪入库\\s*$/ })"
tree_node_e587bae5ba93:
description: "出库管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库管理\\s*$/ })"
tree_node_e7949fe68890:
description: "生成拣货单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "生成拣货单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*生成拣货单\\s*$/ })"
tree_node_e68ba3e8b4a7:
description: "拣货执行"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "拣货执行"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*拣货执行\\s*$/ })"
tree_el_e587bae5ba93e5a48de6a0b8_2:
description: "出库复核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库复核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库复核\\s*$/ })"
tree_el_e6898be5b7a5e587bae5ba93_2:
description: "手工出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工出库\\s*$/ })"
tree_node_e68aa5e68d9f:
description: "报损出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "报损出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*报损出库\\s*$/ })"
tree_node_e8b083e68ba8:
description: "调拨出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "调拨出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*调拨出库\\s*$/ })"
tree_node_e7a7bbe5ba93:
description: "移库出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "移库出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*移库出库\\s*$/ })"
tree_node_e98080e8b4a7:
description: "退货出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退货出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退货出库\\s*$/ })"
tree_el_e68ba3e8b4a7e58d95e7aea1e79086_2:
description: "拣货单管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "拣货单管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*拣货单管理\\s*$/ })"
tree_el_e587bae5ba93e58d95e58897e8a1a8_2:
description: "出库单列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库单列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库单列表\\s*$/ })"
tree_el_e8b79fe58fb0e98080e8b4a7e587bae5ba93_2:
description: "跟台退货出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跟台退货出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跟台退货出库\\s*$/ })"
tree_el_e98080e8b4a7e6988ee7bb86e69fa5e8afa2_2:
description: "退货明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退货明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退货明细查询\\s*$/ })"
tree_el_e587bae5ba93e6988ee7bb86e69fa5e8afa2_2:
description: "出库明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库明细查询\\s*$/ })"
tree_el_e68ba3e8b4a7e58886e9858de7aea1e79086_2:
description: "拣货分配管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "拣货分配管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*拣货分配管理\\s*$/ })"
tree_el_e68ba3e8b4a7e6988ee7bb86e69fa5e8afa2_2:
description: "拣货明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "拣货明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*拣货明细查询\\s*$/ })"
tree_el_e587bae5ba93e6a0b8e9aa8c_2:
description: "出库核验"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库核验"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库核验\\s*$/ })"
tree_node_e59088e58d95:
description: "合单出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "合单出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*合单出库\\s*$/ })"
tree_node_e8a385e7aeb1:
description: "装箱贴码"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "装箱贴码"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*装箱贴码\\s*$/ })"
tree_el_e7a791e5aea4e59088e58d95e587bae5ba93_2:
description: "科室合单出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室合单出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室合单出库\\s*$/ })"
tree_el_e59088e58d95e587bae5ba93e58d95_2:
description: "合单出库单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "合单出库单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*合单出库单\\s*$/ })"
tree_node_e7aeb1e7a081:
description: "箱码打印记录"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "箱码打印记录"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*箱码打印记录\\s*$/ })"
tree_node_e4baa4e68ea5:
description: "交接记录"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "交接记录"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*交接记录\\s*$/ })"
tree_node_e68abde6a380:
description: "抽检记录查看"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "抽检记录查看"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*抽检记录查看\\s*$/ })"
tree_el_e9aa8ce694b6e7a1aee8aea4_3:
description: "验收确认"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "验收确认"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*验收确认\\s*$/ })"
tree_node_e5ba93e58685:
description: "库内作业"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库内作业"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库内作业\\s*$/ })"
tree_node_e68993e7a081:
description: "打码中心"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "打码中心"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*打码中心\\s*$/ })"
tree_node_e68891e8a681:
description: "我要加工"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "我要加工"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*我要加工\\s*$/ })"
tree_node_e58aa0e5b7a5:
description: "加工执行"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "加工执行"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*加工执行\\s*$/ })"
tree_el_e5bfabe9809fe58aa0e5b7a5_2:
description: "快速加工"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "快速加工"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*快速加工\\s*$/ })"
tree_el_e5bfabe9809fe7bb84e58c85_2:
description: "快速组包"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "快速组包"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*快速组包\\s*$/ })"
tree_node_e8b4a7e4bd8d:
description: "货位调整台账"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "货位调整台账"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*货位调整台账\\s*$/ })"
tree_el_e58aa0e5b7a5e58d95e58897e8a1a8_2:
description: "加工单列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "加工单列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*加工单列表\\s*$/ })"
tree_el_e8b4a7e4bd8de8b083e695b4_2:
description: "货位调整"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "货位调整"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*货位调整\\s*$/ })"
tree_node_e68b86e99bb6:
description: "拆零加工"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "拆零加工"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*拆零加工\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e5ba93e58cbae7a7bbe58aa8_2:
description: "中心库库区移动"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库库区移动"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库库区移动\\s*$/ })"
tree_node_e5ba93e5ad98:
description: "库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存查询\\s*$/ })"
tree_el_e5ba93e5ad98e6b187e680bbe69fa5e8afa2_2:
description: "库存汇总查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存汇总查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存汇总查询\\s*$/ })"
tree_el_e5ba93e5ad98e6988ee7bb86e69fa5e8afa2_2:
description: "库存明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存明细查询\\s*$/ })"
tree_node_e585a8e999a2:
description: "全院库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "全院库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*全院库存查询\\s*$/ })"
tree_node_e4b88de889af:
description: "不良事件"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "不良事件"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*不良事件\\s*$/ })"
tree_el_e4b88de889afe4ba8be4bbb6e7aea1e79086_2:
description: "不良事件管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "不良事件管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*不良事件管理\\s*$/ })"
tree_el_e4b88de889afe4ba8be4bbb6e5aea1e689b9_2:
description: "不良事件审批"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "不良事件审批"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*不良事件审批\\s*$/ })"
tree_node_e79b98e782b9:
description: "盘点管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘点管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘点管理\\s*$/ })"
tree_el_e79b98e782b9e8aea1e58892e7aea1e79086_2:
description: "盘点计划管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘点计划管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘点计划管理\\s*$/ })"
tree_el_e79b98e782b9e5bd95e585a5_2:
description: "盘点录入"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘点录入"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘点录入\\s*$/ })"
tree_el_e79b98e782b9e7bb9fe8aea1_2:
description: "盘点统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘点统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘点统计\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e5b7a5e4bd9ce58fb0_2:
description: "中心库工作台"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库工作台"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库工作台\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e5b7a5e4bd9ce58fb0_3:
description: "中心库工作台"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库工作台"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库工作台\\s*$/ })"
tree_el_e7a7bbe5ba93e794b3e8afb7e7aea1e79086_2:
description: "移库申请管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "移库申请管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*移库申请管理\\s*$/ })"
tree_el_e7a7bbe5ba93e794b3e8afb7_2:
description: "移库申请"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "移库申请"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*移库申请\\s*$/ })"
tree_el_e7a7bbe5ba93e794b3e8afb7e6988ee7bb86e69fa5e8afa2_2:
description: "移库申请明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "移库申请明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*移库申请明细查询\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e7a7bbe5ba93e794b3e8afb7_2:
description: "中心库移库申请"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库移库申请"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库移库申请\\s*$/ })"
tree_node_e585bbe68aa4:
description: "养护管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "养护管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*养护管理\\s*$/ })"
tree_el_e585bbe68aa4e7aea1e79086_2:
description: "养护管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "养护管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*养护管理\\s*$/ })"
tree_el_e699bae883bde98787e8b4ad_2:
description: "智能采购"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "智能采购"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*智能采购\\s*$/ })"
tree_node_4149e98787e8:
description: "AI采购建议"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "AI采购建议"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*AI采购建议\\s*$/ })"
tree_node_4149e9a284e6:
description: "AI预测分析比对-每日预测"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "AI预测分析比对-每日预测"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*AI预测分析比对-每日预测\\s*$/ })"
tree_el_4149e9a284e6b58be58886e69e90e6af94e5afb92de697a5e59d87e9a284e6b58b_2:
description: "AI预测分析比对-日均预测"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "AI预测分析比对-日均预测"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*AI预测分析比对-日均预测\\s*$/ })"
tree_node_deptBusiness_e7a791e5aea4:
description: "科室业务管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室业务管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室业务管理\\s*$/ })"
tree_el_e8afb7e9a286e7aea1e79086_2:
description: "请领管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领管理\\s*$/ })"
tree_el_e68891e8a681e8afb7e9a286_2:
description: "我要请领"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "我要请领"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*我要请领\\s*$/ })"
tree_el_e7b4a7e680a5e8afb7e9a286_2:
description: "紧急请领"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "紧急请领"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*紧急请领\\s*$/ })"
tree_node_e4bba3e7a791:
description: "代科室下单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "代科室下单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*代科室下单\\s*$/ })"
tree_el_e8afb7e9a286e58d95e7a1aee8aea4_2:
description: "请领单确认"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领单确认"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领单确认\\s*$/ })"
tree_el_e8afb7e9a286e58d95e69fa5e8afa2_2:
description: "请领单查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领单查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领单查询\\s*$/ })"
tree_el_e8afb7e9a286e58d95e6988ee7bb86e69fa5e8afa2_2:
description: "请领单明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领单明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领单明细查询\\s*$/ })"
tree_el_e8afb7e9a286e69caae5ae8ce68890e8bf9be5baa6e69fa5e8afa2_2:
description: "请领未完成进度查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领未完成进度查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领未完成进度查询\\s*$/ })"
tree_el_e8b79fe58fb0e6898be69cafe794b3e8afb7_2:
description: "跟台手术申请"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跟台手术申请"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跟台手术申请\\s*$/ })"
tree_el_e8b79fe58fb0e5a597e9a490e7bbb4e68aa4_2:
description: "跟台套餐维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跟台套餐维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跟台套餐维护\\s*$/ })"
tree_node_e5a487e8b4a7:
description: "备货耗材包管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "备货耗材包管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*备货耗材包管理\\s*$/ })"
tree_el_e585a5e5ba93e7aea1e79086_2:
description: "入库管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入库管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入库管理\\s*$/ })"
tree_el_e7a791e5aea4e585a5e5ba93_2:
description: "科室入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室入库\\s*$/ })"
tree_el_e585a5e5ba93e58d95e69fa5e8afa2_2:
description: "入库单查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入库单查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入库单查询\\s*$/ })"
tree_node_e6b688e88097:
description: "消耗退回"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "消耗退回"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*消耗退回\\s*$/ })"
tree_node_e98080e5ba93:
description: "退库核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退库核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退库核对\\s*$/ })"
tree_el_e587bae5ba93e7aea1e79086_2:
description: "出库管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库管理\\s*$/ })"
tree_el_e6898be5b7a5e6b688e88097_2:
description: "手工消耗"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工消耗"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工消耗\\s*$/ })"
tree_el_e98080e5ba93e587bae5ba93_2:
description: "退库出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退库出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退库出库\\s*$/ })"
tree_el_e587bae5ba93e58d95e69fa5e8afa2_2:
description: "出库单查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库单查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库单查询\\s*$/ })"
tree_node_e9a286e794a8:
description: "领用出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "领用出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*领用出库\\s*$/ })"
tree_el_e6898be5b7a5e9a286e794a8e587bae5ba93_2:
description: "手工领用出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工领用出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工领用出库\\s*$/ })"
tree_el_e8b79fe58fb0e4bdbfe794a8e7a1aee8aea4_2:
description: "跟台使用确认"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跟台使用确认"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跟台使用确认\\s*$/ })"
tree_node_e4b889e7baa7:
description: "三级库调拨"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "三级库调拨"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*三级库调拨\\s*$/ })"
tree_node_e4ba8ce7baa7:
description: "二级库调拨"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "二级库调拨"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*二级库调拨\\s*$/ })"
tree_el_e7a791e5aea4e98080e5ba9328e585ade999a229_2:
description: "科室退库(六院)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室退库(六院)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室退库(六院)\\s*$/ })"
tree_node_e69da1e7a081:
description: "条码使用确认"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "条码使用确认"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*条码使用确认\\s*$/ })"
tree_el_e5ba93e58685e7aea1e79086_2:
description: "库内管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库内管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库内管理\\s*$/ })"
tree_node_e689abe7a081:
description: "扫码发放"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "扫码发放"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*扫码发放\\s*$/ })"
tree_el_e5ba93e58cbae7a7bbe58aa8_2:
description: "库区移动"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库区移动"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库区移动\\s*$/ })"
tree_node_e58f91e694be:
description: "发放单查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发放单查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发放单查询\\s*$/ })"
tree_node_e58d95e793b6:
description: "单瓶条码补打"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "单瓶条码补打"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*单瓶条码补打\\s*$/ })"
tree_node_e6b497e6b688:
description: "洗消管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "洗消管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*洗消管理\\s*$/ })"
tree_el_e8b79fe58fb0e88097e69d90e5a48de9aa8c_2:
description: "跟台耗材复验"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跟台耗材复验"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跟台耗材复验\\s*$/ })"
tree_el_e4b889e7baa7e5ba93e697a5e6b885e7aea1e79086_2:
description: "三级库日清管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "三级库日清管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*三级库日清管理\\s*$/ })"
tree_el_e6898be5b7a5e6a0b8e99480e7bb93e7ae97_2:
description: "手工核销结算"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工核销结算"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工核销结算\\s*$/ })"
tree_el_e8b79fe58fb0e69da1e7a081e68993e58db0_2:
description: "跟台条码打印"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跟台条码打印"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跟台条码打印\\s*$/ })"
tree_el_e5ba93e5ad98e69fa5e8afa2_2:
description: "库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存查询\\s*$/ })"
tree_el_e7a791e5aea4e5ba93e5ad98e69fa5e8afa2_2:
description: "科室库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室库存查询\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e7aea1e79086_2:
description: "手术套包管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包管理\\s*$/ })"
tree_node_e59fbae7a180:
description: "基础包加工"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "基础包加工"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*基础包加工\\s*$/ })"
tree_el_e59fbae7a180e58c85e5ba93e5ad98e69fa5e8afa2_2:
description: "基础包库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "基础包库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*基础包库存查询\\s*$/ })"
tree_el_e6898be69cafe68e92e7a88be7aea1e79086_2:
description: "手术排程管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术排程管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术排程管理\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e794b3e8afb7_2:
description: "手术套包申请"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包申请"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包申请\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e58aa0e5b7a5_2:
description: "手术套包加工"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包加工"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包加工\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e585a5e5ba93_2:
description: "手术套包入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包入库\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e9a284e58aa0e5b7a5_2:
description: "手术套包预加工"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包预加工"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包预加工\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e587bae5ba93_2:
description: "手术套包出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包出库\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e6b688e88097_2:
description: "手术套包消耗"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包消耗"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包消耗\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e98080e5ba93_2:
description: "手术套包退库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包退库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包退库\\s*$/ })"
tree_el_e6898be69cafe5a597e58c85e5ba93e5ad98e69fa5e8afa2_2:
description: "手术套包库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手术套包库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手术套包库存查询\\s*$/ })"
tree_el_e79b98e782b9e7aea1e79086_2:
description: "盘点管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘点管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘点管理\\s*$/ })"
tree_el_e79b98e782b9e8aea1e58892e7aea1e79086_3:
description: "盘点计划管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘点计划管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘点计划管理\\s*$/ })"
tree_el_e79b98e782b9e5bd95e585a5_3:
description: "盘点录入"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘点录入"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘点录入\\s*$/ })"
tree_node_e79b98e4ba8f:
description: "盘亏处理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘亏处理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘亏处理\\s*$/ })"
tree_el_e79b98e782b9e7bb9fe8aea1_3:
description: "盘点统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "盘点统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*盘点统计\\s*$/ })"
tree_el_e7a791e5aea4e5b7a5e4bd9ce58fb0_2:
description: "科室工作台"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室工作台"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室工作台\\s*$/ })"
tree_el_e7a791e5aea4e5b7a5e4bd9ce58fb0_3:
description: "科室工作台"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室工作台"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室工作台\\s*$/ })"
tree_el_e5a487e8b4a7e8aea1e58892_2:
description: "备货计划"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "备货计划"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*备货计划\\s*$/ })"
tree_el_e7a791e5aea4e5a487e8b4a7e8aea1e58892e58897e8a1a8_2:
description: "科室备货计划列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室备货计划列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室备货计划列表\\s*$/ })"
tree_el_e7a791e5aea4e5a487e8b4a7e8aea1e58892e69fa5e8afa2_2:
description: "科室备货计划查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室备货计划查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室备货计划查询\\s*$/ })"
tree_el_e5a487e8b4a7e8aea1e58892e6b187e680bbe5aea1e689b9_2:
description: "备货计划汇总审批"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "备货计划汇总审批"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*备货计划汇总审批\\s*$/ })"
tree_el_e7a791e5aea4e699bae883bde8a1a5e8b4a7_2:
description: "科室智能补货"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室智能补货"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室智能补货\\s*$/ })"
tree_el_e5ba93e5ad98e699bae883bde7aea1e79086e9a9bee9a9b6e888b1_2:
description: "库存智能管理驾驶舱"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存智能管理驾驶舱"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存智能管理驾驶舱\\s*$/ })"
tree_node_4149e8a1a5e8:
description: "AI补货建议"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "AI补货建议"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*AI补货建议\\s*$/ })"
tree_el_4149e9a284e6b58be58886e69e90e6af94e5afb92de6af8fe697a5e9a284e6b58b_2:
description: "AI预测分析比对-每日预测"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "AI预测分析比对-每日预测"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*AI预测分析比对-每日预测\\s*$/ })"
tree_el_4149e9a284e6b58be58886e69e90e6af94e5afb92de697a5e59d87e9a284e6b58b_3:
description: "AI预测分析比对-日均预测"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "AI预测分析比对-日均预测"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*AI预测分析比对-日均预测\\s*$/ })"
tree_node_finance_e8b4a2e58aa1:
description: "财务管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务管理\\s*$/ })"
tree_el_e7bb93e7ae97e7aea1e79086_2:
description: "结算管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算管理\\s*$/ })"
tree_node_e585a5e8b4a6:
description: "入账明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入账明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入账明细查询\\s*$/ })"
tree_el_e7bb93e7ae97e58d95e5aea1e6a0b8_2:
description: "结算单审核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算单审核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算单审核\\s*$/ })"
tree_el_e7949fe68890e7bb93e7ae97e58d95_2:
description: "生成结算单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "生成结算单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*生成结算单\\s*$/ })"
tree_el_e7bb93e7ae97e6988ee7bb86e7a791e5aea4e6a0b8e5afb9_2:
description: "结算明细科室核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算明细科室核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算明细科室核对\\s*$/ })"
tree_node_e58f91e7a5a8:
description: "发票核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票核对\\s*$/ })"
tree_el_e58f91e7a5a8e68f90e4baa4_2:
description: "发票提交"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票提交"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票提交\\s*$/ })"
tree_el_e58f91e7a5a8e5bd92e6a1a3_2:
description: "发票归档"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票归档"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票归档\\s*$/ })"
tree_el_e7949fe68890e4bb98e6acbee58d95_2:
description: "生成付款单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "生成付款单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*生成付款单\\s*$/ })"
tree_el_e58f91e7a5a8e6988ee7bb86e7a791e5aea4e6a0b8e5afb9_2:
description: "发票明细科室核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票明细科室核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票明细科室核对\\s*$/ })"
tree_el_e58f91e7a5a8e69fa5e8afa2_2:
description: "发票查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票查询\\s*$/ })"
tree_el_e7bb93e7ae97e5bc80e7a5a8e6988ee7bb86e69fa5e8afa2_2:
description: "结算开票明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算开票明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算开票明细查询\\s*$/ })"
tree_el_e58f91e7a5a8e5bd95e585a528e8b4a7e7a5a8e5908ce8a18c29_2:
description: "发票录入(货票同行)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票录入(货票同行)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票录入(货票同行)\\s*$/ })"
tree_node_e68890e69cac:
description: "成本明细科室核对"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "成本明细科室核对"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*成本明细科室核对\\s*$/ })"
tree_el_e68ea5e58fa3e58f91e7a5a8e7a1aee8aea4efbc88e8b4a7e7a5a8e5908ce8a18cefbc89_2:
description: "接口发票确认(货票同行)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "接口发票确认(货票同行)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*接口发票确认(货票同行)\\s*$/ })"
tree_node_e7bb93e5ad98:
description: "结存管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结存管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结存管理\\s*$/ })"
tree_node_e8b4a2e58aa1:
description: "财务结存"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务结存"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务结存\\s*$/ })"
tree_node_e789a9e6b581:
description: "物流结存"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "物流结存"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*物流结存\\s*$/ })"
tree_node_orthoVolume_e9aaa8e7a791:
description: "骨科带量"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "骨科带量"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*骨科带量\\s*$/ })"
tree_el_e59fbae7a180e695b0e68dae_2:
description: "基础数据"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "基础数据"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*基础数据\\s*$/ })"
tree_el_e5b8a6e9878fe7b3bbe7bb9fe7aea1e79086_2:
description: "带量系统管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "带量系统管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*带量系统管理\\s*$/ })"
tree_node_e9aaa8e7a791:
description: "骨科带量目录"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "骨科带量目录"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*骨科带量目录\\s*$/ })"
tree_node_e695b0e68dae:
description: "数据上报"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "数据上报"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*数据上报\\s*$/ })"
tree_node_e69caae6b885:
description: "未清洗数据"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "未清洗数据"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*未清洗数据\\s*$/ })"
tree_node_e5be85e7a1ae:
description: "待确认数据"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "待确认数据"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*待确认数据\\s*$/ })"
tree_node_e5be85e4b88a:
description: "待上报数据"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "待上报数据"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*待上报数据\\s*$/ })"
tree_node_e5b7b2e4b88a:
description: "已上报数据"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "已上报数据"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*已上报数据\\s*$/ })"
tree_el_e5b8a6e9878fe68aa5e8a1a8e58886e69e90_2:
description: "带量报表分析"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "带量报表分析"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*带量报表分析\\s*$/ })"
tree_el_e9aaa8e7a791e5b8a6e9878fe5ae8ce68890e8bf9be5baa6_2:
description: "骨科带量完成进度"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "骨科带量完成进度"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*骨科带量完成进度\\s*$/ })"
tree_node_general_e7bbbce59088:
description: "综合管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "综合管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*综合管理\\s*$/ })"
tree_node_e8aea1e98080:
description: "计退费管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "计退费管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*计退费管理\\s*$/ })"
tree_el_e6b688e88097e8aea1e8b4b9_2:
description: "消耗计费"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "消耗计费"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*消耗计费\\s*$/ })"
tree_el_e7a791e5aea4e587bae5ba93e6b187e680bbe68aa5e8a1a8_2:
description: "科室出库汇总报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室出库汇总报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室出库汇总报表\\s*$/ })"
tree_el_e7b4a7e680a5e585a5e5ba93e58f8ae8aea1e8b4b9_2:
description: "紧急入库及计费"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "紧急入库及计费"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*紧急入库及计费\\s*$/ })"
tree_node_e9ab98e580bc:
description: "高值计退费"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "高值计退费"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*高值计退费\\s*$/ })"
tree_el_e4be9be5ba94e59586e585a5e5ba93e6b187e680bbe68aa5e8a1a8_2:
description: "供应商入库汇总报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商入库汇总报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商入库汇总报表\\s*$/ })"
tree_node_e694b6e694af:
description: "收支汇总报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "收支汇总报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*收支汇总报表\\s*$/ })"
tree_el_e8aea1e98080e8b4b9e8aeb0e5bd95_2:
description: "计退费记录"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "计退费记录"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*计退费记录\\s*$/ })"
tree_el_e7a791e5aea4e587bae5ba93e6b187e680bbe68aa5e8a1a87632_2:
description: "科室出库汇总报表v2"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室出库汇总报表v2"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室出库汇总报表v2\\s*$/ })"
tree_node_e88097e69d90:
description: "耗材发放记录"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "耗材发放记录"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*耗材发放记录\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e4b89ae58aa1_2:
description: "中心库业务"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库业务"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库业务\\s*$/ })"
tree_el_e587bae5ba93e6a0b8e9aa8c_3:
description: "出库核验"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库核验"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库核验\\s*$/ })"
tree_el_e7a791e5aea4e8afb7e9a286e5aea1e99885_2:
description: "科室请领审阅"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室请领审阅"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室请领审阅\\s*$/ })"
tree_el_e98787e8b4ade6b187e680bbe5aea1e689b9_2:
description: "采购汇总审批"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购汇总审批"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购汇总审批\\s*$/ })"
tree_finance_2:
description: "财务管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务管理\\s*$/ })"
tree_el_e7a791e5aea4e68890e69cace7a1aee8aea4_2:
description: "科室成本确认"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室成本确认"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室成本确认\\s*$/ })"
tree_el_e6a380e9aa8ce9a1b9e79baee4b88ee6a380e9aa8ce8af95e58982e5afb9e785a7e7bbb4e68aa4_2:
description: "检验项目与检验试剂对照维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "检验项目与检验试剂对照维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*检验项目与检验试剂对照维护\\s*$/ })"
tree_node_4249e68aa5e8:
description: "BI报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "BI报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*BI报表\\s*$/ })"
tree_el_4249e68aa5e8a1a8e58fafe8a786e58c96_2:
description: "BI报表可视化"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "BI报表可视化"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*BI报表可视化\\s*$/ })"
tree_node_yangcai_e998b3e98787:
description: "阳采管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "阳采管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*阳采管理\\s*$/ })"
tree_node_e998b3e98787:
description: "阳采字典管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "阳采字典管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*阳采字典管理\\s*$/ })"
tree_node_processCenter_e6b581e7a88b:
description: "流程中心"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "流程中心"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*流程中心\\s*$/ })"
tree_el_e5aea1e689b9e4b8ade5bf83_2:
description: "审批中心"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "审批中心"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*审批中心\\s*$/ })"
tree_node_e68891e79a84:
description: "我的"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "我的"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*我的\\s*$/ })"
tree_node_e983a8e997a8:
description: "部门待审批单据"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "部门待审批单据"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*部门待审批单据\\s*$/ })"
tree_node_logistics_e5908ee58ba4:
description: "后勤物资管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "后勤物资管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*后勤物资管理\\s*$/ })"
tree_basicSetting_2:
description: "基础设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "基础设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*基础设置\\s*$/ })"
tree_el_e4be9be5ba94e59586e7aea1e79086_2:
description: "供应商管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商管理\\s*$/ })"
tree_el_e789a9e8b584e5ad97e585b8e7aea1e79086_2:
description: "物资字典管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "物资字典管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*物资字典管理\\s*$/ })"
tree_el_e7a791e5aea4e5ad97e585b8e58886e9858d_2:
description: "科室字典分配"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室字典分配"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室字典分配\\s*$/ })"
tree_el_e999a2e58cbae789a9e8b584e8aebee7bdae_2:
description: "院区物资设置"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院区物资设置"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院区物资设置\\s*$/ })"
tree_el_e8afb7e9a286e6a8a1e78988e7bbb4e68aa4_2:
description: "请领模版维护"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领模版维护"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领模版维护\\s*$/ })"
tree_purchase_2:
description: "采购管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购管理\\s*$/ })"
tree_el_e7a791e5aea4e5a487e8b4a7e8aea1e58892_2:
description: "科室备货计划"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室备货计划"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室备货计划\\s*$/ })"
tree_el_e5a487e8b4a7e8aea1e58892e6b187e680bb_2:
description: "备货计划汇总"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "备货计划汇总"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*备货计划汇总\\s*$/ })"
tree_el_e98787e8b4ade8aea1e58892_2:
description: "采购计划"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购计划"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购计划\\s*$/ })"
tree_el_e98787e8b4ade8aea1e58892e6988ee7bb86e69fa5e8afa2_2:
description: "采购计划明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购计划明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购计划明细查询\\s*$/ })"
tree_el_e98787e8b4ade58d95e7aea1e79086_3:
description: "采购单管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购单管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购单管理\\s*$/ })"
tree_node_e9858de98081:
description: "配送管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "配送管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*配送管理\\s*$/ })"
tree_el_e887aae58aa8e98787e8b4ade5bbbae8aeae_2:
description: "自动采购建议"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "自动采购建议"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*自动采购建议\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e4b89ae58aa1_3:
description: "中心库业务"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库业务"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库业务\\s*$/ })"
tree_el_e9aa8ce694b6e7aea1e79086_2:
description: "验收管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "验收管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*验收管理\\s*$/ })"
tree_el_e585a5e5ba93e58d95e58897e8a1a8_2:
description: "入库单列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入库单列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入库单列表\\s*$/ })"
tree_el_e6898be5b7a5e585a5e5ba93_2:
description: "手工入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工入库\\s*$/ })"
tree_el_e6898be5b7a5e587bae5ba93_3:
description: "手工出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工出库\\s*$/ })"
tree_el_e587bae5ba93e58d95e58897e8a1a8_3:
description: "出库单列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库单列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库单列表\\s*$/ })"
tree_el_e98080e8b4a7e587bae5ba93_2:
description: "退货出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退货出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退货出库\\s*$/ })"
tree_el_e587bae5ba93e58d95e5aea1e6a0b8_2:
description: "出库单审核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库单审核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库单审核\\s*$/ })"
tree_el_e8afb7e9a286e4b8ade5bf83e5ba93e5aea1e6a0b8_2:
description: "请领中心库审核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领中心库审核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领中心库审核\\s*$/ })"
tree_el_e8afb7e9a286e587bae5ba93_2:
description: "请领出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领出库\\s*$/ })"
tree_el_e4b88ae69eb6e585a5e5ba93_2:
description: "上架入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "上架入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*上架入库\\s*$/ })"
tree_el_e98080e8b4a7e6988ee7bb86e69fa5e8afa2_3:
description: "退货明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退货明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退货明细查询\\s*$/ })"
tree_el_e7a791e5aea4e4b89ae58aa1_2:
description: "科室业务"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室业务"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室业务\\s*$/ })"
tree_el_e7a791e5aea4e585a5e5ba93_3:
description: "科室入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室入库\\s*$/ })"
tree_el_e68891e8a681e8afb7e9a286_3:
description: "我要请领"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "我要请领"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*我要请领\\s*$/ })"
tree_el_e8afb7e9a286e7a791e5aea4e5aea1e6a0b8_2:
description: "请领科室审核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领科室审核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领科室审核\\s*$/ })"
tree_el_e585a5e5ba93e58d95e58897e8a1a8_3:
description: "入库单列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入库单列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入库单列表\\s*$/ })"
tree_el_e587bae5ba93e58d95e58897e8a1a8_4:
description: "出库单列表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库单列表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库单列表\\s*$/ })"
tree_el_e7a791e5aea4e6b688e88097_2:
description: "科室消耗"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室消耗"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室消耗\\s*$/ })"
tree_el_e7a791e5aea4e98080e5ba93_2:
description: "科室退库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室退库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室退库\\s*$/ })"
tree_el_e5ba93e5ad98e69fa5e8afa2_3:
description: "库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存查询\\s*$/ })"
tree_el_e5ba93e5ad98e6b187e680bbe69fa5e8afa2_3:
description: "库存汇总查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存汇总查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存汇总查询\\s*$/ })"
tree_el_e5ba93e5ad98e6988ee7bb86_2:
description: "库存明细"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存明细"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存明细\\s*$/ })"
tree_finance_3:
description: "财务管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务管理\\s*$/ })"
tree_el_e58f91e7a5a8e5bd95e585a5_2:
description: "发票录入"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票录入"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票录入\\s*$/ })"
tree_el_e58f91e7a5a8e5aea1e6a0b8_2:
description: "发票审核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票审核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票审核\\s*$/ })"
tree_el_e58f91e7a5a8e69fa5e8afa2_3:
description: "发票查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发票查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发票查询\\s*$/ })"
tree_node_statReport_e7bb9fe8aea1:
description: "统计报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "统计报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*统计报表\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e587bae585a5e5ba93e68aa5e8a1a8_2:
description: "中心库出入库报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库出入库报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库出入库报表\\s*$/ })"
tree_node_inOutDetailQuery_e587bae585a5:
description: "出入库明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出入库明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出入库明细查询\\s*$/ })"
tree_node_inboundSummaryQuery_e585a5e5ba93:
description: "入库汇总查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入库汇总查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入库汇总查询\\s*$/ })"
tree_node_outboundSummaryQuery_e587bae5ba93:
description: "出库汇总查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库汇总查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库汇总查询\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e4baa7e59381e8bf9be99480e5ad98_2:
description: "中心库产品进销存"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库产品进销存"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库产品进销存\\s*$/ })"
tree_node_e587bae585a5:
description: "出入库明细查询(后勤)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出入库明细查询(后勤)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出入库明细查询(后勤)\\s*$/ })"
tree_el_e4baa7e59381e591a8e8bdace78e87e68aa5e8a1a8_2:
description: "产品周转率报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品周转率报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品周转率报表\\s*$/ })"
tree_el_e4b8ade5bf83e5ba93e8bf9be99480e5ad9828e5908ee58ba429_2:
description: "中心库进销存(后勤)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库进销存(后勤)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库进销存(后勤)\\s*$/ })"
tree_node_e58780e585a5:
description: "净入库汇总查询(多维度)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "净入库汇总查询(多维度)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*净入库汇总查询(多维度)\\s*$/ })"
tree_node_e58780e587ba:
description: "净出库汇总查询(多维度)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "净出库汇总查询(多维度)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*净出库汇总查询(多维度)\\s*$/ })"
tree_el_e7a791e5aea4e587bae585a5e5ba93e68aa5e8a1a8_2:
description: "科室出入库报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室出入库报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室出入库报表\\s*$/ })"
tree_inOutDetailQuery_2:
description: "出入库明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出入库明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出入库明细查询\\s*$/ })"
tree_inboundSummaryQuery_2:
description: "入库汇总查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入库汇总查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入库汇总查询\\s*$/ })"
tree_outboundSummaryQuery_2:
description: "出库汇总查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库汇总查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库汇总查询\\s*$/ })"
tree_el_e7a791e5aea4e4baa7e59381e8bf9be99480e5ad98_2:
description: "科室产品进销存"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室产品进销存"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室产品进销存\\s*$/ })"
tree_el_e587bae585a5e5ba93e6988ee7bb86e69fa5e8afa228e5908ee58ba4efbc89_2:
description: "出入库明细查询(后勤)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出入库明细查询(后勤)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出入库明细查询(后勤)\\s*$/ })"
tree_el_e7a791e5aea4e4baa7e59381e591a8e8bdace78e87e68aa5e8a1a8_2:
description: "科室产品周转率报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室产品周转率报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室产品周转率报表\\s*$/ })"
tree_el_e7bb93e7ae97e68890e69cace68aa5e8a1a8_2:
description: "结算成本报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算成本报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算成本报表\\s*$/ })"
tree_el_e68890e69cace585a5e8b4a6e6988ee7bb86e69fa5e8afa2_2:
description: "成本入账明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "成本入账明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*成本入账明细查询\\s*$/ })"
tree_el_e7bb93e7ae97e585a5e8b4a6e6988ee7bb86e69fa5e8afa2_2:
description: "结算入账明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算入账明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算入账明细查询\\s*$/ })"
tree_el_e8b4a2e58aa1e58886e7b1bbe8bf9be99480e5ad98_2:
description: "财务分类进销存"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务分类进销存"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务分类进销存\\s*$/ })"
tree_el_e8b4a2e58aa1e4baa7e59381e8bf9be99480e5ad98_2:
description: "财务产品进销存"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务产品进销存"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务产品进销存\\s*$/ })"
tree_el_e7a791e5aea4e68890e69cace58886e7b1bbe6b187e680bb_2:
description: "科室成本分类汇总"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室成本分类汇总"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室成本分类汇总\\s*$/ })"
tree_el_e4be9be5ba94e59586e585a5e8b4a6e58886e7b1bbe6b187e680bb_2:
description: "供应商入账分类汇总"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商入账分类汇总"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商入账分类汇总\\s*$/ })"
tree_el_e7a791e5aea4e68890e69cace58886e7b1bbe6b187e680bb28e8aea1e8b4b9e7a791e5aea429_2:
description: "科室成本分类汇总(计费科室)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室成本分类汇总(计费科室)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室成本分类汇总(计费科室)\\s*$/ })"
tree_el_e7a791e5aea4e58780e585a5e68890e69cace69fa5e8afa2_2:
description: "科室净入成本查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室净入成本查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室净入成本查询\\s*$/ })"
tree_el_e7a791e5aea4e68890e69cace68e92e5908d_2:
description: "科室成本排名"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室成本排名"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室成本排名\\s*$/ })"
tree_el_e4baa7e59381e68890e69cace68e92e5908d_2:
description: "产品成本排名"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "产品成本排名"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*产品成本排名\\s*$/ })"
tree_el_e68890e69cace585a5e8b4a6e6b187e680bbe69fa5e8afa2_2:
description: "成本入账汇总查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "成本入账汇总查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*成本入账汇总查询\\s*$/ })"
tree_el_e7a791e5aea4e68890e69cace58886e7b1bbe6b187e680bb_3:
description: "科室成本分类汇总"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室成本分类汇总"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室成本分类汇总\\s*$/ })"
tree_el_e4be9be5ba94e59586e585a5e8b4a6e58886e7b1bbe6b187e680bbe697a7_2:
description: "供应商入账分类汇总旧"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商入账分类汇总旧"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商入账分类汇总旧\\s*$/ })"
tree_el_e7a791e5aea4e68890e69cace58886e7b1bbe6b187e680bb28e8aea1e8b4b9e7a791e5aea429e697a7_2:
description: "科室成本分类汇总(计费科室)旧"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室成本分类汇总(计费科室)旧"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室成本分类汇总(计费科室)旧\\s*$/ })"
tree_el_e8b4a2e58aa1e585a5e5ba93e58d95_2:
description: "财务入库单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务入库单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务入库单\\s*$/ })"
tree_el_e8b4a2e58aa1e587bae5ba93e58d95_2:
description: "财务出库单"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务出库单"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务出库单\\s*$/ })"
tree_el_e68890e69cace585a5e8b4a6e6988ee7bb86e69fa5e8afa2efbc88e689a7e8a18ce7a791e5aea4e7bbb4e5baa6efbc89_2:
description: "成本入账明细查询(执行科室维度)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "成本入账明细查询(执行科室维度)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*成本入账明细查询(执行科室维度)\\s*$/ })"
tree_el_e7a791e5aea4e68890e69cace58886e7b1bbe6b187e680bb28e5908ee58ba429_2:
description: "科室成本分类汇总(后勤)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室成本分类汇总(后勤)"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室成本分类汇总(后勤)\\s*$/ })"
tree_node_e5afb9e8b4a6:
description: "对账报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "对账报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*对账报表\\s*$/ })"
tree_el_e7a791e5aea4e5afb9e8b4a6e69fa5e8afa2_2:
description: "科室对账查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室对账查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室对账查询\\s*$/ })"
tree_el_e7a791e5aea4e58780e585a5e6b187e680bbe8a1a8_2:
description: "科室净入汇总表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室净入汇总表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室净入汇总表\\s*$/ })"
tree_el_e8afb7e9a286e587bae5ba93e58886e7b1bbe6b187e680bbe8a1a8_2:
description: "请领出库分类汇总表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "请领出库分类汇总表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*请领出库分类汇总表\\s*$/ })"
tree_el_e98787e8b4ade58886e7b1bbe6b187e680bb_2:
description: "采购分类汇总"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购分类汇总"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购分类汇总\\s*$/ })"
tree_el_e98787e8b4ade585a5e5ba93e6b187e680bbe8a1a8_2:
description: "采购入库汇总表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购入库汇总表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购入库汇总表\\s*$/ })"
tree_el_e4be9be5ba94e59586e5afb9e8b4a6e69fa5e8afa2_2:
description: "供应商对账查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商对账查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商对账查询\\s*$/ })"
tree_el_e7a791e5aea4e58780e587bae6b187e680bbe8a1a8_2:
description: "科室净出汇总表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室净出汇总表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室净出汇总表\\s*$/ })"
tree_node_e8bfbde6baaf:
description: "追溯报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "追溯报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*追溯报表\\s*$/ })"
tree_node_e79bb4e9858d:
description: "直配请领单追溯"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "直配请领单追溯"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*直配请领单追溯\\s*$/ })"
tree_el_e69da1e7a081e8bfbde6baaf_2:
description: "条码追溯"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "条码追溯"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*条码追溯\\s*$/ })"
tree_el_e79bb4e9858de8afb7e9a286e6988ee7bb86e69fa5e8afa2_2:
description: "直配请领明细查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "直配请领明细查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*直配请领明细查询\\s*$/ })"
tree_el_e7a791e5aea4e8aea2e58d95e5ae8ce68890e68385e586b5e8bfbde6baafe68aa5e8a1a8_2:
description: "科室订单完成情况追溯报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室订单完成情况追溯报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室订单完成情况追溯报表\\s*$/ })"
tree_el_e98787e8b4ade58d95e8bfbde6baaf_2:
description: "采购单追溯"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "采购单追溯"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*采购单追溯\\s*$/ })"
tree_el_e7a791e5aea4e8afb7e9a286e58d95e8bfbde6baaf_2:
description: "科室请领单追溯"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室请领单追溯"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室请领单追溯\\s*$/ })"
tree_el_e7bb93e7ae97e5bc80e7a5a8e69fa5e8afa2_2:
description: "结算开票查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算开票查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算开票查询\\s*$/ })"
tree_el_e7bb93e7ae97e5bc80e7a5a8e69fa5e8afa2_3:
description: "结算开票查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算开票查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算开票查询\\s*$/ })"
tree_el_e4be9be5ba94e59586e5bc80e7a5a8e58886e7b1bbe6b187e680bb_2:
description: "供应商开票分类汇总"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商开票分类汇总"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商开票分类汇总\\s*$/ })"
tree_el_e7bb93e7ae97e58d95e58f91e7a5a8e78ab6e68081e69fa5e8afa2_2:
description: "结算单发票状态查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "结算单发票状态查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*结算单发票状态查询\\s*$/ })"
tree_el_e58f91e694bee6b688e88097e68aa5e8a1a8_2:
description: "发放消耗报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发放消耗报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发放消耗报表\\s*$/ })"
tree_el_e9ab98e580bce6b688e88097e8bfbde6baaf_2:
description: "高值消耗追溯"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "高值消耗追溯"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*高值消耗追溯\\s*$/ })"
tree_el_e6b688e88097e8b68be58abfe58886e69e90_2:
description: "消耗趋势分析"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "消耗趋势分析"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*消耗趋势分析\\s*$/ })"
tree_node_e682a3e88085:
description: "患者消耗追溯"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "患者消耗追溯"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*患者消耗追溯\\s*$/ })"
tree_node_e5a49ae6aca1:
description: "多次计费耗材追溯"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "多次计费耗材追溯"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*多次计费耗材追溯\\s*$/ })"
tree_el_e7a791e5aea4e6b688e88097e68e92e5908d_2:
description: "科室消耗排名"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室消耗排名"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室消耗排名\\s*$/ })"
tree_node_e9a284e8ada6:
description: "预警报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "预警报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*预警报表\\s*$/ })"
tree_node_e6bb9ee79599:
description: "滞留预警"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "滞留预警"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*滞留预警\\s*$/ })"
tree_el_e7bcbae8b4a7e68aa5e8a1a8_2:
description: "缺货报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "缺货报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*缺货报表\\s*$/ })"
tree_node_e8bf91e69c9f:
description: "近期效期查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "近期效期查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*近期效期查询\\s*$/ })"
tree_node_e4bd8ee582a8:
description: "低储预警"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "低储预警"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*低储预警\\s*$/ })"
tree_node_e5bc82e5b8b8:
description: "异常分析报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "异常分析报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*异常分析报表\\s*$/ })"
tree_node_e8aea1e8b4b9:
description: "计费消耗差异报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "计费消耗差异报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*计费消耗差异报表\\s*$/ })"
tree_el_e4bd8ee580bce8aea1e8b4b9e68ea5e58fa3e5b7aee5bc82e7bb9fe8aea1_2:
description: "低值计费接口差异统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "低值计费接口差异统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*低值计费接口差异统计\\s*$/ })"
tree_el_e4bd8ee580bce8aea1e8b4b9e6b688e88097e5b7aee5bc82e7bb9fe8aea1_2:
description: "低值计费消耗差异统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "低值计费消耗差异统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*低值计费消耗差异统计\\s*$/ })"
tree_el_e8bf90e7bbb4e68aa5e8a1a8_2:
description: "运维报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "运维报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*运维报表\\s*$/ })"
tree_el_e585a5e8b4a6e6a0b8e5afb9e69fa5e8afa2_2:
description: "入账核对查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "入账核对查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*入账核对查询\\s*$/ })"
tree_el_e699bae883bde69f9ce68aa5e8a1a8_2:
description: "智能柜报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "智能柜报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*智能柜报表\\s*$/ })"
tree_el_e699bae883bde69f9ce5ba93e5ad98e69fa5e8afa2_2:
description: "智能柜库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "智能柜库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*智能柜库存查询\\s*$/ })"
tree_el_e6938de4bd9ce6b581e6b0b4e69fa5e8afa2_2:
description: "操作流水查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "操作流水查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*操作流水查询\\s*$/ })"
tree_el_e9a286e794a8e69caae8bf98e59b9ee69fa5e8afa2_2:
description: "领用未还回查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "领用未还回查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*领用未还回查询\\s*$/ })"
tree_el_e699bae883bde69f9ce5b7aee5bc82e68aa5e8a1a8_2:
description: "智能柜差异报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "智能柜差异报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*智能柜差异报表\\s*$/ })"
tree_node_e694bfe7ad96:
description: "政策导向"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "政策导向"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*政策导向\\s*$/ })"
tree_node_e9878de782b9:
description: "重点管控耗材统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "重点管控耗材统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*重点管控耗材统计\\s*$/ })"
tree_el_e5b8a6e9878fe4bbbbe58aa1e7bb9fe8aea1_2:
description: "带量任务统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "带量任务统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*带量任务统计\\s*$/ })"
tree_el_e5b8a6e9878fe6988ee7bb86e5ae8ce68890e78e87e69fa5e8afa2_2:
description: "带量明细完成率查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "带量明细完成率查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*带量明细完成率查询\\s*$/ })"
tree_el_e5b8a6e9878fe7a791e5aea4e4bbbbe58aa1e6988ee7bb86_2:
description: "带量科室任务明细"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "带量科室任务明细"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*带量科室任务明细\\s*$/ })"
tree_el_e5b8a6e9878fe79baee5bd95e6b688e88097e695b0e68daee7bb9fe8aea1_2:
description: "带量目录消耗数据统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "带量目录消耗数据统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*带量目录消耗数据统计\\s*$/ })"
tree_node_37e4bd8de58c:
description: "7位医保码带量分析"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "7位医保码带量分析"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*7位医保码带量分析\\s*$/ })"
tree_node_e7bb9fe8aea1:
description: "统计分析"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "统计分析"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*统计分析\\s*$/ })"
tree_el_e8b083e4bbb7e7bb9fe8aea1e68aa5e8a1a8_2:
description: "调价统计报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "调价统计报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*调价统计报表\\s*$/ })"
tree_el_e8b4a2e58aa1e695b0e68daee58886e69e902de7a791e5aea4e68890e69cac_2:
description: "财务数据分析-科室成本"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务数据分析-科室成本"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务数据分析-科室成本\\s*$/ })"
tree_el_e8b4a2e58aa1e695b0e68daee58886e69e902de4be9be5ba94e59586e585a5e8b4a6_2:
description: "财务数据分析-供应商入账"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "财务数据分析-供应商入账"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*财务数据分析-供应商入账\\s*$/ })"
tree_el_e8af95e58982e689b9e58fb7e7bb9fe8aea1_2:
description: "试剂批号统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "试剂批号统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*试剂批号统计\\s*$/ })"
tree_el_e8af95e58982e689b9e58fb7e7bb9fe8aea1e6988ee7bb86_2:
description: "试剂批号统计明细"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "试剂批号统计明细"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*试剂批号统计明细\\s*$/ })"
tree_el_e8af95e58982e689b9e58fb7e7bb9fe8aea1e6988ee7bb86_3:
description: "试剂批号统计明细"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "试剂批号统计明细"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*试剂批号统计明细\\s*$/ })"
tree_el_e8af95e58982e689b9e58fb7e7bb9fe8aea1_3:
description: "试剂批号统计"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "试剂批号统计"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*试剂批号统计\\s*$/ })"
tree_el_e8af95e58982e689b9e58fb7e7bb9fe8aea1e6988ee7bb86_4:
description: "试剂批号统计明细"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "试剂批号统计明细"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*试剂批号统计明细\\s*$/ })"
tree_el_e8af95e58982e689b9e58fb7e7bb9fe8aea1e6988ee7bb86_5:
description: "试剂批号统计明细"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "试剂批号统计明细"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*试剂批号统计明细\\s*$/ })"
tree_node_dataViz_e695b0e68dae:
description: "数据可视化"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "数据可视化"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*数据可视化\\s*$/ })"
tree_node_e6b58be8af95:
description: "测试0422"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "测试0422"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*测试0422\\s*$/ })"
tree_el_e4be9be5ba94e59586e585b3e88194e4baa4e69893e79c8be69dbf_2:
description: "供应商关联交易看板"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "供应商关联交易看板"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*供应商关联交易看板\\s*$/ })"
tree_node_31:
description: "1"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "1"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*1\\s*$/ })"
tree_node_e8b7b3e8bdac:
description: "跳转测试6"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跳转测试6"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跳转测试6\\s*$/ })"
tree_node_3132313232:
description: "12122"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "12122"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*12122\\s*$/ })"
tree_el_e8b7b3e8bdace6b58be8af9537_2:
description: "跳转测试7"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "跳转测试7"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*跳转测试7\\s*$/ })"
el_535044e58685e7bd91e7b3bbe7bb9f706461:
description: "SPD内网系统pda"
element_type: checkbox
section: "main::main"
strategy: text
value: "SPD内网系统pda"
playwright: "page.getByText('SPD内网系统pda')"
tree_centerStock_2:
description: "中心库管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "中心库管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*中心库管理\\s*$/ })"
tree_node_e588b0e8b4a7:
description: "到货验收"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "到货验收"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*到货验收\\s*$/ })"
tree_el_e4b88ae69eb6e585a5e5ba93_3:
description: "上架入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "上架入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*上架入库\\s*$/ })"
tree_el_e68ba3e8b4a7e4b88be69eb6_2:
description: "拣货下架"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "拣货下架"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*拣货下架\\s*$/ })"
tree_el_e6898be5b7a5e587bae5ba93_4:
description: "手工出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工出库\\s*$/ })"
tree_el_e8b083e68ba8e587bae5ba93_2:
description: "调拨出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "调拨出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*调拨出库\\s*$/ })"
tree_el_e98080e8b4a7e587bae5ba93_3:
description: "退货出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退货出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退货出库\\s*$/ })"
tree_el_e7a7bbe5ba93e587bae5ba93_2:
description: "移库出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "移库出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*移库出库\\s*$/ })"
tree_el_e587bae5ba93e5a48de6a0b8_3:
description: "出库复核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库复核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库复核\\s*$/ })"
tree_el_e5bfabe9809fe58aa0e5b7a5_3:
description: "快速加工"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "快速加工"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*快速加工\\s*$/ })"
tree_el_e58aa0e5b7a5e689a7e8a18c_2:
description: "加工执行"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "加工执行"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*加工执行\\s*$/ })"
tree_el_e5ba93e5ad98e79b98e782b9_2:
description: "库存盘点"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存盘点"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存盘点\\s*$/ })"
tree_el_e5ba93e5ad98e69fa5e8afa2_4:
description: "库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存查询\\s*$/ })"
tree_el_e8b4a7e4bd8de8b083e695b4_3:
description: "货位调整"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "货位调整"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*货位调整\\s*$/ })"
tree_el_e5bfabe9809fe689abe7a081_2:
description: "快速扫码"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "快速扫码"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*快速扫码\\s*$/ })"
tree_el_e69c9fe5889de5bd95e585a5_2:
description: "期初录入"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "期初录入"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*期初录入\\s*$/ })"
tree_node_e59b9ee58d95:
description: "回单管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "回单管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*回单管理\\s*$/ })"
tree_node_e689b9e9878f:
description: "批量货位调整"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "批量货位调整"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*批量货位调整\\s*$/ })"
tree_node_e8819ae58d95:
description: "聚单拣货"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "聚单拣货"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*聚单拣货\\s*$/ })"
tree_el_e8819ae58d95e5a48de6a0b8_2:
description: "聚单复核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "聚单复核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*聚单复核\\s*$/ })"
tree_el_e4bba3e7a791e5aea4e585a5e5ba93_2:
description: "代科室入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "代科室入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*代科室入库\\s*$/ })"
tree_el_e68abde9aa8ce7aea1e79086_2:
description: "抽验管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "抽验管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*抽验管理\\s*$/ })"
tree_el_e587bae5ba93e58d95e7bb91e5ae9a_2:
description: "出库单绑定"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "出库单绑定"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*出库单绑定\\s*$/ })"
tree_node_e999a2e58685:
description: "院内配送"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院内配送"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院内配送\\s*$/ })"
tree_el_e999a2e58685e98081e8bebe_2:
description: "院内送达"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "院内送达"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*院内送达\\s*$/ })"
tree_el_e5bfabe9809fe68b86e58c85_2:
description: "快速拆包"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "快速拆包"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*快速拆包\\s*$/ })"
tree_node_e694b6e8b4a7:
description: "收货复核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "收货复核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*收货复核\\s*$/ })"
tree_el_e7aeb1e7a081e68993e58db0_2:
description: "箱码打印"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "箱码打印"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*箱码打印\\s*$/ })"
tree_el_e8819ae58d95e9aa8ce694b6_2:
description: "聚单验收"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "聚单验收"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*聚单验收\\s*$/ })"
tree_node_e58cbbe5b7a5:
description: "医工抽检"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "医工抽检"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*医工抽检\\s*$/ })"
tree_el_e7a791e5aea4e5ba93e7aea1e79086_2:
description: "科室库管理"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室库管理"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室库管理\\s*$/ })"
tree_el_e7a791e5aea4e585a5e5ba93_4:
description: "科室入库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "科室入库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*科室入库\\s*$/ })"
tree_el_e58f91e694bee587bae5ba93_2:
description: "发放出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "发放出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*发放出库\\s*$/ })"
tree_el_e98080e5ba93e587bae5ba93_3:
description: "退库出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退库出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退库出库\\s*$/ })"
tree_el_e9a286e794a8e587bae5ba93_2:
description: "领用出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "领用出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*领用出库\\s*$/ })"
tree_el_e6898be5b7a5e9a286e794a8e587bae5ba93_3:
description: "手工领用出库"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工领用出库"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工领用出库\\s*$/ })"
tree_el_e6898be5b7a5e6b688e88097_3:
description: "手工消耗"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "手工消耗"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*手工消耗\\s*$/ })"
tree_el_e5ba93e5ad98e79b98e782b9_3:
description: "库存盘点"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存盘点"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存盘点\\s*$/ })"
tree_el_e5ba93e5ad98e69fa5e8afa2_5:
description: "库存查询"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库存查询"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库存查询\\s*$/ })"
tree_el_e98080e5ba93e5a48de6a0b8_2:
description: "退库复核"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "退库复核"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*退库复核\\s*$/ })"
tree_el_e5ba93e58cbae8b4a7e4bd8de7a7bbe58aa8_2:
description: "库区货位移动"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "库区货位移动"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*库区货位移动\\s*$/ })"
tree_statReport_2:
description: "统计报表"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "统计报表"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*统计报表\\s*$/ })"
tree_el_e69da1e7a081e8bfbde6baaf_3:
description: "条码追溯"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "条码追溯"
tree: ".menu-role-tree"
playwright: "page.locator('.menu-role-tree .ant-tree-title').filter({ hasText: /^\\s*条码追溯\\s*$/ })"
import type { Locator, Page } from '@playwright/test';
/** 基础设置 · 医院资料 共用菜单 / 表格 / 分页 / 弹窗。 */
export class BasicSharedLocators {
readonly menuBasic: Locator;
readonly menuHospital: Locator;
readonly table: Locator;
readonly tableHeader: Locator;
readonly dataRows: Locator;
readonly empty: Locator;
readonly pagination: Locator;
readonly paginationTotal: Locator;
readonly pageJumpInput: Locator;
readonly nextPage: Locator;
readonly dialog: Locator;
readonly confirm: Locator;
readonly formError: Locator;
constructor(protected readonly page: Page) {
this.menuBasic = page.getByRole('menuitem', { name: '基础设置' });
this.menuHospital = page.getByRole('menuitem', { name: '医院资料' });
this.table = page.locator('.ant-table').first();
this.tableHeader = page.locator('.ant-table-thead th');
this.dataRows = page.locator('.ant-table-tbody tr.ant-table-row:not(.ant-table-measure-row)');
this.empty = page.locator('.ant-empty, .ant-empty-description').first();
this.pagination = page.locator('.ant-pagination').first();
this.paginationTotal = page.locator('.ant-pagination-total-text').first();
this.pageJumpInput = page.locator('.ant-pagination-options-quick-jumper input').first();
this.nextPage = page.locator('.ant-pagination-next').first();
this.dialog = page.getByRole('dialog');
this.confirm = page.locator('.ant-modal-confirm, .ant-popconfirm, .ant-modal').filter({ hasText: '提示' }).last();
this.formError = page.locator('.ant-form-item-explain-error');
}
menuItem(name: string): Locator {
return this.page.getByRole('menuitem', { name, exact: true });
}
button(name: string | RegExp): Locator {
return this.page.getByRole('button', { name });
}
dialogButton(name: string | RegExp): Locator {
return this.dialog.getByRole('button', { name });
}
}
import type { Locator, Page } from '@playwright/test';
/** 基础设置 · 用户管理。叶子菜单是 .ant-menu-item;一级与叶子均可叫「用户管理」。 */
export class BasicUserSharedLocators {
readonly menuBasic: Locator;
readonly userSubmenuTitle: Locator;
readonly tableHeader: Locator;
readonly empty: Locator;
readonly paginationTotal: Locator;
readonly nextPage: Locator;
readonly formError: Locator;
readonly advancedFilter: Locator;
readonly nameInput: Locator;
readonly dialog: Locator;
constructor(protected readonly page: Page) {
this.menuBasic = page.getByRole('menuitem', { name: '基础设置' });
this.userSubmenuTitle = page.locator('.ant-menu-submenu-title').filter({ hasText: /^用户管理$/ });
this.tableHeader = page.locator('.ant-table-thead th');
this.empty = page.locator('.ant-empty, .ant-empty-description').first();
this.paginationTotal = page.locator('.ant-pagination-total-text').first();
this.nextPage = page.locator('.ant-pagination-next').first();
this.formError = page.locator('.ant-form-item-explain-error, .ant-message-notice, .ant-notification-notice');
this.advancedFilter = page.locator('.advance-filter').first();
this.nameInput = page.getByPlaceholder('姓名、登录账号');
this.dialog = page.locator('.ant-modal-wrap .ant-modal:visible, .ant-drawer-open').last();
}
menuLeaf(name: string): Locator {
return this.page.locator('.ant-menu-item').filter({ hasText: new RegExp(`^\\s*${name}\\s*$`) }).first();
}
button(name: string, root: Locator | Page = this.page): Locator {
const compact = name.replace(/\s/g, '');
const pattern = new RegExp(compact.split('').join('\\s*'));
return root.getByRole('button', { name: pattern });
}
formItem(label: string, root: Locator | Page = this.page): Locator {
return root.locator('.ant-form-item').filter({ hasText: label }).first();
}
formSelect(label: string, root: Locator | Page = this.page): Locator {
return this.formItem(label, root).locator('.ant-select').first();
}
}
import type { Page } from '@playwright/test';
import { BasicUserLocators } from './basic-user.locator';
/** 医共体用户管理。选择器来自 locators/spd/basic-user-union.locator.yaml */
export class BasicUserUnionLocators extends BasicUserLocators {
constructor(page: Page) {
super(page);
}
}
# Auto-generated from basic-user-union-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/user/platform/personCom
# Scanned: 2026-10-20T07:55:55.473Z
# Page: 基础设置 > 用户管理 > 医共体用户管理
# Note: advanced filter panel was opened during scan
# Note: filter dropdown was opened during scan
# Note: edit dialog was opened during scan
page: basic-user-union
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/user/platform/personCom
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_roleManage:
description: "角色管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "角色管理"
playwright: "page.getByRole('menuitem', { name: '角色管理' })"
menu_userManage:
description: "用户管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "用户管理"
playwright: "page.getByRole('menuitem', { name: '用户管理' })"
menu_unionUserManage:
description: "医共体用户管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "医共体用户管理"
playwright: "page.getByRole('menuitem', { name: '医共体用户管理' })"
unionUserManage:
description: "医共体用户管理"
element_type: tab
section: "main::main"
strategy: text
value: "医共体用户管理"
playwright: "page.getByText('医共体用户管理')"
tab_unionUserManage:
description: "医共体用户管理"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/user/platform/personCom"
playwright: "page.locator('#rc-tabs-0-tab-/basic/user/platform/personCom')"
el_e5a793e5908dInput:
description: "姓名、登录账号"
element_type: text
section: "main::main"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
el_e68980e5b19ee58cbbe999a2Select:
description: "邹城市人民医院(test)"
element_type: select
section: "main::main"
strategy: label_text
value: "所属医院"
playwright: "page.getByText('所属医院', { exact: true })"
el_e68980e5b19ee58cbbe999a2Input:
description: "所属医院"
element_type: search
section: "main::main"
strategy: id
value: "form_item_corpId"
playwright: "page.locator('#form_item_corpId')"
el_e88194e7b3bbe696b9e5bc8fInput:
description: "联系方式"
element_type: text
section: "main::main"
strategy: id
value: "form_item_tel"
playwright: "page.locator('#form_item_tel')"
searchBtn:
description: "查 询"
element_type: button
section: "main::main"
strategy: role
role: button
name: "查 询"
playwright: "page.getByRole('button', { name: '查 询' })"
resetBtn:
description: "重 置"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重 置"
playwright: "page.getByRole('button', { name: '重 置' })"
advancedFilterBtn:
description: "高级筛选"
element_type: filter_trigger
section: "main::main"
strategy: css
value: ".advance-filter"
playwright: "page.locator('.advance-filter')"
addBtn:
description: "新 增"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新 增"
playwright: "page.getByRole('button', { name: '新 增' })"
el_457863656ce5afbce585a5Btn:
description: "Excel导入"
element_type: button
section: "main::main"
strategy: role
role: button
name: "Excel导入"
playwright: "page.getByRole('button', { name: 'Excel导入' })"
tableDensity:
description: "column-height"
element_type: span
section: "main::main"
strategy: label
value: "column-height"
playwright: "page.getByLabel('column-height')"
editBtn:
description: "编辑"
element_type: button
section: "main::main"
strategy: role
role: button
name: "编辑"
playwright: "page.getByRole('button', { name: '编辑' })"
el_e68e88e69d83Btn:
description: "授权"
element_type: button
section: "main::main"
strategy: role
role: button
name: "授权"
playwright: "page.getByRole('button', { name: '授权' })"
el_e9878de7bdaee5af86e7a081Btn:
description: "重置密码"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重置密码"
playwright: "page.getByRole('button', { name: '重置密码' })"
el_e7a791e5aea4Select:
description: "请选择"
element_type: select
section: "main::main"
strategy: label_text
value: "科室"
playwright: "page.getByText('科室', { exact: true })"
el_e5a793e5908dInput_2:
description: "姓名"
element_type: search
section: "main::main"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
el_e8a792e889b2Select:
description: "请选择"
element_type: select
section: "main::main"
strategy: label_text
value: "角色"
playwright: "page.getByText('角色', { exact: true })"
el_e8a792e889b2Input:
description: "角色"
element_type: search
section: "main::main"
strategy: id
value: "form_item_roleCode"
playwright: "page.locator('#form_item_roleCode')"
filterApplyBtn:
description: "筛 选"
element_type: button
section: "main::main"
strategy: role
role: button
name: "筛 选"
playwright: "page.getByRole('button', { name: '筛 选' })"
# --- main::pagination ---
pagination_el_e585b1313432e69da13132333530e69da12fe9a1b5e8b7b3e887b3e9a1b5:
description: "共 142 条12350 条/页跳至页"
element_type: ul
section: "main::pagination"
strategy: text
value: "共 142 条12350 条/页跳至页"
playwright: "page.getByText('共 142 条12350 条/页跳至页')"
pagination_prevPageBtn:
description: "上一页"
element_type: li
section: "main::pagination"
strategy: text
value: "上一页"
playwright: "page.getByText('上一页')"
pagination_page_1:
description: "1"
element_type: pagination_item
section: "main::pagination"
strategy: css
value: ".ant-pagination-item-active"
playwright: "page.locator('.ant-pagination-item-active')"
pagination_page_2:
description: "2"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "2"
playwright: "page.getByText('2')"
pagination_page_3:
description: "3"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "3"
playwright: "page.getByText('3')"
pagination_nextPageBtn:
description: "下一页"
element_type: li
section: "main::pagination"
strategy: text
value: "下一页"
playwright: "page.getByText('下一页')"
pagination_pageSizeSelect:
description: "50 条/页"
element_type: select
section: "main::pagination"
strategy: text
value: "50 条/页"
playwright: "page.getByText('50 条/页')"
# --- main::panel:高级筛选 ---
drawer_el_e5a793e5908dInput:
description: "姓名、登录账号"
element_type: text
section: "main::panel:高级筛选"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
drawer_el_e68980e5b19ee58cbbe999a2Select:
description: "邹城市人民医院(test)"
element_type: select
section: "main::panel:高级筛选"
strategy: label_text
value: "所属医院"
playwright: "page.getByText('所属医院', { exact: true })"
drawer_el_e68980e5b19ee58cbbe999a2Input:
description: "所属医院"
element_type: search
section: "main::panel:高级筛选"
strategy: id
value: "form_item_corpId"
playwright: "page.locator('#form_item_corpId')"
drawer_el_e88194e7b3bbe696b9e5bc8fInput:
description: "联系方式"
element_type: text
section: "main::panel:高级筛选"
strategy: id
value: "form_item_tel"
playwright: "page.locator('#form_item_tel')"
drawer_el_e7a791e5aea4Select:
description: "请选择"
element_type: select
section: "main::panel:高级筛选"
strategy: label_text
value: "科室"
playwright: "page.getByText('科室', { exact: true })"
drawer_el_e5a793e5908dInput_2:
description: "姓名"
element_type: search
section: "main::panel:高级筛选"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
drawer_el_e8a792e889b2Select:
description: "请选择"
element_type: select
section: "main::panel:高级筛选"
strategy: label_text
value: "角色"
playwright: "page.getByText('角色', { exact: true })"
drawer_el_e8a792e889b2Input:
description: "角色"
element_type: search
section: "main::panel:高级筛选"
strategy: id
value: "form_item_roleCode"
playwright: "page.locator('#form_item_roleCode')"
# --- main::panel:drawer:footer ---
# --- main::modal:编辑用户 ---
el_e8b4a6e58fb7Input:
description: "请输入"
element_type: text
section: "main::modal:编辑用户"
strategy: id
value: "form_item_userCode"
playwright: "page.locator('#form_item_userCode')"
el_e5a793e5908dInput_3:
description: "请输入"
element_type: text
section: "main::modal:编辑用户"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
el_e88194e7b3bbe696b9e5bc8fInput_2:
description: "请输入"
element_type: text
section: "main::modal:编辑用户"
strategy: id
value: "form_item_tel"
playwright: "page.locator('#form_item_tel')"
el_e58cbbe999a2e59198e5b7a5e7bc96e58fb7Input:
description: "请输入"
element_type: text
section: "main::modal:编辑用户"
strategy: id
value: "form_item_erpCode"
playwright: "page.locator('#form_item_erpCode')"
el_e7adbee5908de59bbee78987:
description: "签名图片"
element_type: span
section: "main::modal:编辑用户"
strategy: role
role: button
name: "签名图片"
playwright: "page.getByRole('button', { name: '签名图片' })"
el_e7a681e794a8:
description: "禁用"
element_type: radio
section: "main::modal:编辑用户"
strategy: text
value: "禁用"
playwright: "page.getByText('禁用')"
enable:
description: "启用"
element_type: radio
section: "main::modal:编辑用户"
strategy: text
value: "启用"
playwright: "page.getByText('启用')"
cancelBtn:
description: "取 消"
element_type: button
section: "main::modal:编辑用户"
strategy: role
role: button
name: "取 消"
playwright: "page.getByRole('button', { name: '取 消' })"
confirmBtn:
description: "确 定"
element_type: button
section: "main::modal:编辑用户"
strategy: role
role: button
name: "确 定"
playwright: "page.getByRole('button', { name: '确 定' })"
import type { Locator, Page } from '@playwright/test';
import { BasicUserSharedLocators } from './basic-user-shared.locator';
/** 用户管理。选择器来自 locators/spd/basic-user.locator.yaml */
export class BasicUserLocators extends BasicUserSharedLocators {
readonly deptInput: Locator;
readonly roleInput: Locator;
readonly excelImport: Locator;
readonly signature: Locator;
constructor(page: Page) {
super(page);
this.deptInput = page.locator('#form_item_deptId');
this.roleInput = page.locator('#form_item_roleCode');
this.excelImport = page.getByRole('button', { name: 'Excel导入' });
this.signature = page.getByText('签名图片');
}
dialogUserCode(): Locator {
return this.dialog.locator('#form_item_userCode');
}
dialogName(): Locator {
return this.dialog.locator('#form_item_cname');
}
dialogTel(): Locator {
return this.dialog.locator('#form_item_tel');
}
dialogErp(): Locator {
return this.dialog.locator('#form_item_erpCode');
}
}
# Auto-generated from basic-user-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/user/platform/person
# Scanned: 2026-10-20T07:54:40.566Z
# Page: 基础设置 > 用户管理 > 用户管理
# Note: advanced filter panel was opened during scan
# Note: filter dropdown was opened during scan
# Note: edit dialog was opened during scan
page: basic-user
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/user/platform/person
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_roleManage:
description: "角色管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "角色管理"
playwright: "page.getByRole('menuitem', { name: '角色管理' })"
menu_userManage:
description: "用户管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "用户管理"
playwright: "page.getByRole('menuitem', { name: '用户管理' })"
menu_unionUserManage:
description: "医共体用户管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "医共体用户管理"
playwright: "page.getByRole('menuitem', { name: '医共体用户管理' })"
userManage:
description: "用户管理"
element_type: tab
section: "main::main"
strategy: text
value: "用户管理"
playwright: "page.getByText('用户管理')"
tab_userManage:
description: "用户管理"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/user/platform/person"
playwright: "page.locator('#rc-tabs-0-tab-/basic/user/platform/person')"
el_e5a793e5908dInput:
description: "姓名、登录账号"
element_type: text
section: "main::main"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
el_e7a791e5aea4Select:
description: "请选择"
element_type: select
section: "main::main"
strategy: label_text
value: "科室"
playwright: "page.getByText('科室', { exact: true })"
el_e5a793e5908dInput_2:
description: "姓名"
element_type: search
section: "main::main"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
el_e8a792e889b2Select:
description: "请选择"
element_type: select
section: "main::main"
strategy: label_text
value: "角色"
playwright: "page.getByText('角色', { exact: true })"
el_e8a792e889b2Input:
description: "角色"
element_type: search
section: "main::main"
strategy: id
value: "form_item_roleCode"
playwright: "page.locator('#form_item_roleCode')"
searchBtn:
description: "查 询"
element_type: button
section: "main::main"
strategy: role
role: button
name: "查 询"
playwright: "page.getByRole('button', { name: '查 询' })"
resetBtn:
description: "重 置"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重 置"
playwright: "page.getByRole('button', { name: '重 置' })"
advancedFilterBtn:
description: "高级筛选"
element_type: filter_trigger
section: "main::main"
strategy: css
value: ".advance-filter"
playwright: "page.locator('.advance-filter')"
addBtn:
description: "新 增"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新 增"
playwright: "page.getByRole('button', { name: '新 增' })"
el_457863656ce5afbce585a5Btn:
description: "Excel导入"
element_type: button
section: "main::main"
strategy: role
role: button
name: "Excel导入"
playwright: "page.getByRole('button', { name: 'Excel导入' })"
tableDensity:
description: "column-height"
element_type: span
section: "main::main"
strategy: label
value: "column-height"
playwright: "page.getByLabel('column-height')"
editBtn:
description: "编辑"
element_type: button
section: "main::main"
strategy: role
role: button
name: "编辑"
playwright: "page.getByRole('button', { name: '编辑' })"
el_e68e88e69d83Btn:
description: "授权"
element_type: button
section: "main::main"
strategy: role
role: button
name: "授权"
playwright: "page.getByRole('button', { name: '授权' })"
el_e9878de7bdaee5af86e7a081Btn:
description: "重置密码"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重置密码"
playwright: "page.getByRole('button', { name: '重置密码' })"
el_e5a793e5908dInput_3:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
el_e7a791e5aea4Input:
description: "科室"
element_type: search
section: "main::main"
strategy: id
value: "form_item_deptId"
playwright: "page.locator('#form_item_deptId')"
statusSelect:
description: "状态"
element_type: select
section: "main::main"
strategy: label_text
value: "状态"
playwright: "page.getByText('状态', { exact: true })"
filterApplyBtn:
description: "筛 选"
element_type: button
section: "main::main"
strategy: role
role: button
name: "筛 选"
playwright: "page.getByRole('button', { name: '筛 选' })"
# --- main::pagination ---
pagination_el_e585b1313432e69da13132333530e69da12fe9a1b5e8b7b3e887b3e9a1b5:
description: "共 142 条12350 条/页跳至页"
element_type: ul
section: "main::pagination"
strategy: text
value: "共 142 条12350 条/页跳至页"
playwright: "page.getByText('共 142 条12350 条/页跳至页')"
pagination_prevPageBtn:
description: "上一页"
element_type: li
section: "main::pagination"
strategy: text
value: "上一页"
playwright: "page.getByText('上一页')"
pagination_page_1:
description: "1"
element_type: pagination_item
section: "main::pagination"
strategy: css
value: ".ant-pagination-item-active"
playwright: "page.locator('.ant-pagination-item-active')"
pagination_page_2:
description: "2"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "2"
playwright: "page.getByText('2')"
pagination_page_3:
description: "3"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "3"
playwright: "page.getByText('3')"
pagination_nextPageBtn:
description: "下一页"
element_type: li
section: "main::pagination"
strategy: text
value: "下一页"
playwright: "page.getByText('下一页')"
pagination_pageSizeSelect:
description: "50 条/页"
element_type: select
section: "main::pagination"
strategy: text
value: "50 条/页"
playwright: "page.getByText('50 条/页')"
# --- main::panel:高级筛选 ---
drawer_el_e5a793e5908dInput:
description: "请输入"
element_type: text
section: "main::panel:高级筛选"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
drawer_el_e7a791e5aea4Select:
description: "请选择"
element_type: select
section: "main::panel:高级筛选"
strategy: label_text
value: "科室"
playwright: "page.getByText('科室', { exact: true })"
drawer_el_e7a791e5aea4Input:
description: "科室"
element_type: search
section: "main::panel:高级筛选"
strategy: id
value: "form_item_deptId"
playwright: "page.locator('#form_item_deptId')"
drawer_el_e8a792e889b2Select:
description: "请选择"
element_type: select
section: "main::panel:高级筛选"
strategy: label_text
value: "角色"
playwright: "page.getByText('角色', { exact: true })"
drawer_el_e8a792e889b2Input:
description: "角色"
element_type: search
section: "main::panel:高级筛选"
strategy: id
value: "form_item_roleCode"
playwright: "page.locator('#form_item_roleCode')"
drawer_statusSelect:
description: "状态"
element_type: select
section: "main::panel:高级筛选"
strategy: label_text
value: "状态"
playwright: "page.getByText('状态', { exact: true })"
# --- main::panel:drawer:footer ---
# --- main::modal:编辑用户 ---
el_e8b4a6e58fb7Input:
description: "请输入"
element_type: text
section: "main::modal:编辑用户"
strategy: id
value: "form_item_userCode"
playwright: "page.locator('#form_item_userCode')"
el_e5a793e5908dInput_4:
description: "请输入"
element_type: text
section: "main::modal:编辑用户"
strategy: id
value: "form_item_cname"
playwright: "page.locator('#form_item_cname')"
el_e88194e7b3bbe696b9e5bc8fInput:
description: "请输入"
element_type: text
section: "main::modal:编辑用户"
strategy: id
value: "form_item_tel"
playwright: "page.locator('#form_item_tel')"
el_e58cbbe999a2e59198e5b7a5e7bc96e58fb7Input:
description: "请输入"
element_type: text
section: "main::modal:编辑用户"
strategy: id
value: "form_item_erpCode"
playwright: "page.locator('#form_item_erpCode')"
el_e7adbee5908de59bbee78987:
description: "签名图片"
element_type: span
section: "main::modal:编辑用户"
strategy: role
role: button
name: "签名图片"
playwright: "page.getByRole('button', { name: '签名图片' })"
el_e7a681e794a8:
description: "禁用"
element_type: radio
section: "main::modal:编辑用户"
strategy: text
value: "禁用"
playwright: "page.getByText('禁用')"
enable:
description: "启用"
element_type: radio
section: "main::modal:编辑用户"
strategy: text
value: "启用"
playwright: "page.getByText('启用')"
cancelBtn:
description: "取 消"
element_type: button
section: "main::modal:编辑用户"
strategy: role
role: button
name: "取 消"
playwright: "page.getByRole('button', { name: '取 消' })"
confirmBtn:
description: "确 定"
element_type: button
section: "main::modal:编辑用户"
strategy: role
role: button
name: "确 定"
playwright: "page.getByRole('button', { name: '确 定' })"
import type { Locator, Page } from '@playwright/test';
import { WhFlowSharedLocators } from './wh-flow-shared.locator';
/** 审批流程设置。选择器来自 locators/spd/flow-def.locator.yaml */
export class FlowDefLocators extends WhFlowSharedLocators {
readonly typeSearch: Locator;
readonly addFlowBtn: Locator;
readonly saveBtn: Locator;
readonly resetBtn: Locator;
readonly defaultFlow: Locator;
readonly customFlow: Locator;
readonly conditionCancel: Locator;
constructor(page: Page) {
super(page);
this.typeSearch = page.getByPlaceholder('流程名称');
this.addFlowBtn = page.getByRole('button', { name: '新增流程' });
this.saveBtn = page.getByRole('button', { name: /保\s*存/ });
this.resetBtn = page.getByRole('button', { name: /重\s*置/ });
this.defaultFlow = page.getByText('默认审批流', { exact: true }).first();
this.customFlow = page.getByText('自定义审批流', { exact: true }).first();
this.conditionCancel = page.getByRole('button', { name: /取\s*消/ });
}
typeItems(): Locator {
return this.page.locator(
'.ant-layout-sider .ant-menu-item, .ant-layout-sider li, [class*="left"] .ant-menu-item, [class*="biz"] li',
);
}
selectedType(): Locator {
return this.page
.locator('.ant-layout-sider .ant-menu-item-selected, .ant-layout-sider .ant-menu-item-active, [class*="selected"]')
.first();
}
}
# Auto-generated from flow-def-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/flowSet/workflow/flowSet
# Scanned: 2026-10-20T09:05:57.781Z
# Page: 基础设置 > 流程设置 > 审批流程设置
page: flow-def
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/flowSet/workflow/flowSet
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_el_e5aea1e689b9e6b581e7a88be8aebee7bdae:
description: "审批流程设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "审批流程设置"
playwright: "page.getByRole('menuitem', { name: '审批流程设置' })"
menu_el_e5aea1e689b9e6b581e5ae9ee4be8b:
description: "审批流实例"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "审批流实例"
playwright: "page.getByRole('menuitem', { name: '审批流实例' })"
el_e5aea1e689b9e6b581e7a88be8aebee7bdae:
description: "审批流程设置"
element_type: tab
section: "main::main"
strategy: text
value: "审批流程设置"
playwright: "page.getByText('审批流程设置')"
tab_el_e5aea1e689b9e6b581e7a88be8aebee7bdae:
description: "审批流程设置"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/flowSet/workflow/flowSet"
playwright: "page.locator('#rc-tabs-0-tab-/basic/flowSet/workflow/flowSet')"
el_e5aea1e689b9e6b581e7a88be8aebee7bdaeInput:
description: "流程名称"
element_type: text
section: "main::main"
strategy: placeholder
value: "流程名称"
playwright: "page.getByPlaceholder('流程名称')"
el_e696b0e5a29ee6b581e7a88bBtn:
description: "新增流程"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新增流程"
playwright: "page.getByRole('button', { name: '新增流程' })"
Input:
description: "1"
element_type: text
section: "main::main"
strategy: id
value: "form_item_pageList_0_modelName"
playwright: "page.locator('#form_item_pageList_0_modelName')"
editBtn:
description: "编辑"
element_type: button
section: "main::main"
strategy: role
role: button
name: "编辑"
playwright: "page.getByRole('button', { name: '编辑' })"
el_e588a0e999a4Btn:
description: "删除"
element_type: button
section: "main::main"
strategy: role
role: button
name: "删除"
playwright: "page.getByRole('button', { name: '删除' })"
2Input_2:
description: "2"
element_type: text
section: "main::main"
strategy: id
value: "form_item_pageList_1_modelName"
playwright: "page.locator('#form_item_pageList_1_modelName')"
saveBtn:
description: "保 存"
element_type: button
section: "main::main"
strategy: role
role: button
name: "保 存"
playwright: "page.getByRole('button', { name: '保 存' })"
resetBtn:
description: "重 置"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重 置"
playwright: "page.getByRole('button', { name: '重 置' })"
form_item_pagelist_2_modelnameInput:
description: "text"
element_type: text
section: "main::main"
strategy: id
value: "form_item_pageList_2_modelName"
playwright: "page.locator('#form_item_pageList_2_modelName')"
# --- main::modal:条件配置 ---
el_e6b7bbe58aa0Btn:
description: "添 加"
element_type: button
section: "main::modal:条件配置"
strategy: role
role: button
name: "添 加"
playwright: "page.getByRole('button', { name: '添 加' })"
el_e698afe590a6e8b685e99990Select:
description: "是否超限"
element_type: select
section: "main::modal:条件配置"
strategy: text
value: "是否超限"
playwright: "page.getByText('是否超限')"
form_item_tablelist_0_conditiontypeInput:
description: "search"
element_type: search
section: "main::modal:条件配置"
strategy: id
value: "form_item_tableList_0_conditionType"
playwright: "page.locator('#form_item_tableList_0_conditionType')"
el_e698afSelect:
description: "是"
element_type: select
section: "main::modal:条件配置"
strategy: text
value: "是"
playwright: "page.getByText('是')"
form_item_tablelist_0_conditiontextInput:
description: "search"
element_type: search
section: "main::modal:条件配置"
strategy: id
value: "form_item_tableList_0_conditionText"
playwright: "page.locator('#form_item_tableList_0_conditionText')"
cancelBtn:
description: "取 消"
element_type: button
section: "main::modal:条件配置"
strategy: role
role: button
name: "取 消"
playwright: "page.getByRole('button', { name: '取 消' })"
import type { Locator, Page } from '@playwright/test';
import { WhFlowSharedLocators } from './wh-flow-shared.locator';
/** 审批流实例。选择器来自 locators/spd/flow-inst.locator.yaml */
export class FlowInstLocators extends WhFlowSharedLocators {
readonly orderNo: Locator;
readonly summary: Locator;
readonly startDate: Locator;
readonly endDate: Locator;
readonly queryBtn: Locator;
readonly resetBtn: Locator;
readonly detailBtn: Locator;
readonly backBtn: Locator;
constructor(page: Page) {
super(page);
this.orderNo = page.locator('#form_item_orderNo').or(page.getByPlaceholder('单据编号')).first();
this.summary = page.locator('#form_item_msg').or(page.getByPlaceholder('摘要')).first();
this.startDate = page.locator('#form_item_dateValue').first();
this.endDate = page.getByPlaceholder('截止时间').first();
this.queryBtn = page.getByRole('button', { name: /查\s*询/ });
this.resetBtn = page.getByRole('button', { name: /重\s*置/ });
this.detailBtn = page.getByRole('button', { name: '详情' });
this.backBtn = page.getByRole('button', { name: /返\s*回/ });
}
statusSelect(): Locator {
return this.page.locator('.ant-form-item').filter({ hasText: '审批状态' }).locator('.ant-select').first();
}
bizTypeSelect(): Locator {
return this.page.locator('.ant-form-item').filter({ hasText: '业务类型' }).locator('.ant-select').first();
}
}
# Auto-generated from flow-inst-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/flowSet/workflow/flowCase
# Scanned: 2026-10-20T09:08:51.288Z
# Page: 基础设置 > 流程设置 > 审批流实例
# Note: filter dropdown was opened during scan
# Note: detail view was opened during scan
page: flow-inst
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/flowSet/workflow/flowCase
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_el_e5aea1e689b9e6b581e7a88be8aebee7bdae:
description: "审批流程设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "审批流程设置"
playwright: "page.getByRole('menuitem', { name: '审批流程设置' })"
menu_el_e5aea1e689b9e6b581e5ae9ee4be8b:
description: "审批流实例"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "审批流实例"
playwright: "page.getByRole('menuitem', { name: '审批流实例' })"
el_e5aea1e689b9e6b581e5ae9ee4be8b:
description: "审批流实例"
element_type: tab
section: "main::main"
strategy: text
value: "审批流实例"
playwright: "page.getByText('审批流实例')"
tab_el_e5aea1e689b9e6b581e5ae9ee4be8b:
description: "审批流实例"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/flowSet/workflow/flowCase"
playwright: "page.locator('#rc-tabs-0-tab-/basic/flowSet/workflow/flowCase')"
documentNo:
description: "单据编号"
element_type: text
section: "main::main"
strategy: id
value: "form_item_orderNo"
playwright: "page.locator('#form_item_orderNo')"
el_e5aea1e689b9e78ab6e68081Select:
description: "审批状态"
element_type: select
section: "main::main"
strategy: label_text
value: "审批状态"
playwright: "page.getByText('审批状态', { exact: true })"
el_e5aea1e689b9e78ab6e68081Input:
description: "审批状态"
element_type: search
section: "main::main"
strategy: id
value: "form_item_procState"
playwright: "page.locator('#form_item_procState')"
el_e58f91e8b5b7e697b6e997b4DateRange:
description: "发起时间"
element_type: datepicker
section: "main::main"
strategy: label_text
value: "发起时间"
playwright: "page.getByText('发起时间', { exact: true })"
el_e58f91e8b5b7e697b6e997b4Input:
description: "开始时间"
element_type: text
section: "main::main"
strategy: id
value: "form_item_dateValue"
playwright: "page.locator('#form_item_dateValue')"
el_e58f91e8b5b7e697b6e997b4Input_2:
description: "截止时间"
element_type: text
section: "main::main"
strategy: placeholder
value: "截止时间"
playwright: "page.getByPlaceholder('截止时间')"
el_e4b89ae58aa1e7b1bbe59e8bSelect:
description: "业务类型"
element_type: select
section: "main::main"
strategy: label_text
value: "业务类型"
playwright: "page.getByText('业务类型', { exact: true })"
el_e4b89ae58aa1e7b1bbe59e8bInput:
description: "业务类型"
element_type: search
section: "main::main"
strategy: id
value: "form_item_businessType"
playwright: "page.locator('#form_item_businessType')"
el_e69198e8a681Input:
description: "摘要"
element_type: text
section: "main::main"
strategy: id
value: "form_item_msg"
playwright: "page.locator('#form_item_msg')"
searchBtn:
description: "查 询"
element_type: button
section: "main::main"
strategy: role
role: button
name: "查 询"
playwright: "page.getByRole('button', { name: '查 询' })"
resetBtn:
description: "重 置"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重 置"
playwright: "page.getByRole('button', { name: '重 置' })"
tableDensity:
description: "column-height"
element_type: span
section: "main::main"
strategy: label
value: "column-height"
playwright: "page.getByLabel('column-height')"
detailBtn:
description: "详情"
element_type: button
section: "main::main"
strategy: role
role: button
name: "详情"
playwright: "page.getByRole('button', { name: '详情' })"
el_e58f91e8b5b7e5aea1e689b9e8928be58d8ee58f91e8b5b7e4babae5a484e79086e697b6e997b4efbc9a323032362d31302d323031363a34383a353028e88097e697b630e5b08fe697b630e58886e9929f30e7a79229e5aea1e689b9e6848fe8a781efbc9ae28094:
description: "发起审批蒋华发起人处理时间:2026-10-20 16:48:50(耗时0小时0分钟0秒)审批意见:—"
element_type: div
section: "main::main"
strategy: role
role: button
name: "发起审批蒋华发起人处理时间:2026-10-20 16:48:50(耗时0小时0分钟0秒)审批意见:—"
playwright: "page.getByRole('button', { name: '发起审批蒋华发起人处理时间:2026-10-20 16:48:50(耗时0小时0分钟0秒)审批意见:—' })"
el_e5aea1e689b9e9809ae8bf87e8928be58d8ee8bf90e890a5e4b8bbe7aea1e5a484e79086e697b6e997b4efbc9a323032362d31302d323031363a34383a353028e88097e697b630e5b08fe697b630e58886e9929f31e7a79229e5aea1e689b9e6848fe8a781efbc9ae887aae58aa8e5aea1e689b9:
description: "审批通过蒋华运营主管处理时间:2026-10-20 16:48:50(耗时0小时0分钟1秒)审批意见:自动审批"
element_type: div
section: "main::main"
strategy: role
role: button
name: "审批通过蒋华运营主管处理时间:2026-10-20 16:48:50(耗时0小时0分钟1秒)审批意见:自动审批"
playwright: "page.getByRole('button', { name: '审批通过蒋华运营主管处理时间:2026-10-20 16:48:50(耗时0小时0分钟1秒)审批意见:自动审批' })"
# --- main::pagination ---
pagination_el_e585b132333632e69da13132333435e280a2e280a2e280a234383530e69da12fe9a1b5e8b7b3e887b3e9a1b5:
description: "共 2362 条12345•••4850 条/页跳至页"
element_type: ul
section: "main::pagination"
strategy: text
value: "共 2362 条12345•••4850 条/页跳至页"
playwright: "page.getByText('共 2362 条12345•••4850 条/页跳至页')"
pagination_prevPageBtn:
description: "上一页"
element_type: li
section: "main::pagination"
strategy: text
value: "上一页"
playwright: "page.getByText('上一页')"
pagination_page_1:
description: "1"
element_type: pagination_item
section: "main::pagination"
strategy: css
value: ".ant-pagination-item-active"
playwright: "page.locator('.ant-pagination-item-active')"
pagination_page_2:
description: "2"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "2"
playwright: "page.getByText('2')"
pagination_page_3:
description: "3"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "3"
playwright: "page.getByText('3')"
pagination_page_4:
description: "4"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "4"
playwright: "page.getByText('4')"
pagination_page_5:
description: "5"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "5"
playwright: "page.getByText('5')"
pagination_el_e59091e5908e35e9a1b5:
description: "向后 5 页"
element_type: li
section: "main::pagination"
strategy: text
value: "向后 5 页"
playwright: "page.getByText('向后 5 页')"
pagination_page_48:
description: "48"
element_type: pagination_item
section: "main::pagination"
strategy: text
value: "48"
playwright: "page.getByText('48')"
pagination_nextPageBtn:
description: "下一页"
element_type: li
section: "main::pagination"
strategy: text
value: "下一页"
playwright: "page.getByText('下一页')"
pagination_pageSizeSelect:
description: "50 条/页"
element_type: select
section: "main::pagination"
strategy: text
value: "50 条/页"
playwright: "page.getByText('50 条/页')"
# --- main::detail:采购计划详情 ---
backBtn:
description: "返 回"
element_type: button
section: "main::detail:采购计划详情"
strategy: role
role: button
name: "返 回"
playwright: "page.getByRole('button', { name: '返 回' })"
tableDensity_2:
description: "column-height"
element_type: span
section: "main::detail:采购计划详情"
strategy: label
value: "column-height"
playwright: "page.getByLabel('column-height')"
el_e585b132e69da1313530e69da12fe9a1b5:
description: "共 2 条150 条/页"
element_type: ul
section: "main::detail:采购计划详情"
strategy: text
value: "共 2 条150 条/页"
playwright: "page.getByText('共 2 条150 条/页')"
prevPageBtn:
description: "上一页"
element_type: li
section: "main::detail:采购计划详情"
strategy: text
value: "上一页"
playwright: "page.getByText('上一页')"
page_1:
description: "1"
element_type: pagination_item
section: "main::detail:采购计划详情"
strategy: css
value: ".ant-pagination-item-active"
playwright: "page.locator('.ant-pagination-item-active')"
nextPageBtn:
description: "下一页"
element_type: li
section: "main::detail:采购计划详情"
strategy: text
value: "下一页"
playwright: "page.getByText('下一页')"
pageSizeSelect:
description: "50 条/页"
element_type: select
section: "main::detail:采购计划详情"
strategy: text
value: "50 条/页"
playwright: "page.getByText('50 条/页')"
# Auto-generated from surgery-base-pkg-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/operationSetting/baseMaintenance
# Scanned: 2026-10-20T08:47:17.301Z
# Page: 基础设置 > 手术套包设置 > 基础包维护
# Note: dialog/modal was opened during scan
page: surgery-base-pkg
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/operationSetting/baseMaintenance
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_basePkgMaintenance:
description: "基础包维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础包维护"
playwright: "page.getByRole('menuitem', { name: '基础包维护' })"
menu_operTypeMaintenance:
description: "术种维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "术种维护"
playwright: "page.getByRole('menuitem', { name: '术种维护' })"
menu_stdPkgMaintenance:
description: "标准套包维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "标准套包维护"
playwright: "page.getByRole('menuitem', { name: '标准套包维护' })"
basePkgMaintenance:
description: "基础包维护"
element_type: tab
section: "main::main"
strategy: text
value: "基础包维护"
playwright: "page.getByText('基础包维护')"
tab_basePkgMaintenance:
description: "基础包维护"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/operationSetting/baseMaintenance"
playwright: "page.locator('#rc-tabs-0-tab-/basic/operationSetting/baseMaintenance')"
addCategoryBtn:
description: "新增分类"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新增分类"
playwright: "page.getByRole('button', { name: '新增分类' })"
addBasePkgBtn:
description: "新增基础包"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新增基础包"
playwright: "page.getByRole('button', { name: '新增基础包' })"
categorySearchInput:
description: "请输入分类名称"
element_type: text
section: "main::main"
strategy: placeholder
value: "请输入分类名称"
playwright: "page.getByPlaceholder('请输入分类名称')"
tree_node_e7b1bb313231:
description: "类12121313"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类12121313"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类12121313\\s*$/ })"
tree_node_e58c85323131:
description: "包2112412"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "包2112412"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包2112412\\s*$/ })"
tree_node_e58c85415554:
description: "包AUTO-BASE-1792473862012-33"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "包AUTO-BASE-1792473862012-33"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包AUTO-BASE-1792473862012-33\\s*$/ })"
tree_el_e58c854155544f2d424153452d313739323437333839313334382d313539_2:
description: "包AUTO-BASE-1792473891348-159"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "包AUTO-BASE-1792473891348-159"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包AUTO-BASE-1792473891348-159\\s*$/ })"
tree_el_e58c854155544f2d424153452d313739323437333933343839312d393337_2:
description: "包AUTO-BASE-1792473934891-937"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "包AUTO-BASE-1792473934891-937"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包AUTO-BASE-1792473934891-937\\s*$/ })"
tree_node_e7b1bb323032:
description: "类20240324"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类20240324"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类20240324\\s*$/ })"
tree_el_e7b1bb3230323530353136_2:
description: "类20250516"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类20250516"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类20250516\\s*$/ })"
tree_el_e7b1bb3230323630373039_2:
description: "类20260709"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类20260709"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类20260709\\s*$/ })"
tree_el_e7b1bb32303236e59b9ee5bd92e6b58be8af95_2:
description: "类2026回归测试"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类2026回归测试"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类2026回归测试\\s*$/ })"
tree_node_e7b1bb323531:
description: "类2512回归"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类2512回归"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类2512回归\\s*$/ })"
tree_node_e7b1bb544553:
description: "类TEST"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类TEST"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类TEST\\s*$/ })"
tree_node_e7b1bb6a6d5f:
description: "类jm_基础包分类01"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类jm_基础包分类01"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类jm_基础包分类01\\s*$/ })"
tree_el_e7b1bb6a6d5fe59fbae7a180e58c85e58886e7b1bb3032_2:
description: "类jm_基础包分类02"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类jm_基础包分类02"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类jm_基础包分类02\\s*$/ })"
tree_node_e7b1bbe58fa3:
description: "类口腔科基础包分类1"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类口腔科基础包分类1"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类口腔科基础包分类1\\s*$/ })"
tree_node_e7b1bbe59fba:
description: "类基础包0613"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类基础包0613"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类基础包0613\\s*$/ })"
tree_el_e7b1bbe59fbae7a180e58c8531_2:
description: "类基础包1"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类基础包1"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类基础包1\\s*$/ })"
tree_node_e7b1bbe5a496:
description: "类外科手术"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类外科手术"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类外科手术\\s*$/ })"
tree_node_e7b1bbe5b091:
description: "类少"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类少"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类少\\s*$/ })"
tree_node_e7b1bbe6898b:
description: "类手术分类"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类手术分类"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类手术分类\\s*$/ })"
tree_node_e7b1bbe69588:
description: "类效期"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类效期"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类效期\\s*$/ })"
tree_node_e7b1bbe88386:
description: "类胆囊手术"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类胆囊手术"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类胆囊手术\\s*$/ })"
tree_node_e7b1bbe9ab98:
description: "类高值包"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类高值包"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类高值包\\s*$/ })"
tree_node_e7b1bb31:
description: "类1"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类1"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类1\\s*$/ })"
tree_node_e7b1bb33:
description: "类3"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类3"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类3\\s*$/ })"
tree_node_e7b1bb6a6d37:
description: "类jm73"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类jm73"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类jm73\\s*$/ })"
tree_node_e7b1bbe5bf83:
description: "类心内科手术"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类心内科手术"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类心内科手术\\s*$/ })"
tree_node_e7b1bbe9aaa8:
description: "类骨科手术"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类骨科手术"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类骨科手术\\s*$/ })"
productName:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "table_search_form_keyword"
playwright: "page.locator('#table_search_form_keyword')"
specModel:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "table_search_form_goodsSpec"
playwright: "page.locator('#table_search_form_goodsSpec')"
manufacturer:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "table_search_form_goodsMfrsName"
playwright: "page.locator('#table_search_form_goodsMfrsName')"
searchBtn:
description: "查 询"
element_type: button
section: "main::main"
strategy: role
role: button
name: "查 询"
playwright: "page.getByRole('button', { name: '查 询' })"
resetBtn:
description: "重 置"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重 置"
playwright: "page.getByRole('button', { name: '重 置' })"
expandFilterBtn:
description: "展开"
element_type: button
section: "main::main"
strategy: role
role: button
name: "展开"
playwright: "page.getByRole('button', { name: '展开' })"
addProductBtn:
description: "添加产品"
element_type: button
section: "main::main"
strategy: role
role: button
name: "添加产品"
playwright: "page.getByRole('button', { name: '添加产品' })"
editBtn:
description: "编辑"
element_type: button
section: "main::main"
strategy: role
role: button
name: "编辑"
playwright: "page.getByRole('button', { name: '编辑' })"
removeBtn:
description: "移除"
element_type: button
section: "main::main"
strategy: role
role: button
name: "移除"
playwright: "page.getByRole('button', { name: '移除' })"
# --- main::pagination ---
pagination_el_e585b133e69da1313530e69da12fe9a1b5:
description: "共 3 条150 条/页"
element_type: ul
section: "main::pagination"
strategy: text
value: "共 3 条150 条/页"
playwright: "page.getByText('共 3 条150 条/页')"
pagination_prevPageBtn:
description: "上一页"
element_type: li
section: "main::pagination"
strategy: text
value: "上一页"
playwright: "page.getByText('上一页')"
pagination_page_1:
description: "1"
element_type: pagination_item
section: "main::pagination"
strategy: css
value: ".ant-pagination-item-active"
playwright: "page.locator('.ant-pagination-item-active')"
pagination_nextPageBtn:
description: "下一页"
element_type: li
section: "main::pagination"
strategy: text
value: "下一页"
playwright: "page.getByText('下一页')"
pagination_pageSizeSelect:
description: "50 条/页"
element_type: select
section: "main::pagination"
strategy: text
value: "50 条/页"
playwright: "page.getByText('50 条/页')"
# --- main::modal:新增基础包 ---
basePkgName:
description: "请输入"
element_type: text
section: "main::modal:新增基础包"
strategy: id
value: "form_item_pkgName"
playwright: "page.locator('#form_item_pkgName')"
basePkgCategorySelect:
description: "请选择"
element_type: select
section: "main::modal:新增基础包"
strategy: label_text
value: "所属分类"
playwright: "page.getByText('所属分类', { exact: true })"
basePkgCategory:
description: "所属分类"
element_type: search
section: "main::modal:新增基础包"
strategy: id
value: "form_item_kindId"
playwright: "page.locator('#form_item_kindId')"
basePkgCode:
description: "请输入"
element_type: text
section: "main::modal:新增基础包"
strategy: id
value: "form_item_pkgCode"
playwright: "page.locator('#form_item_pkgCode')"
remark:
description: "请输入"
element_type: textarea
section: "main::modal:新增基础包"
strategy: id
value: "form_item_remark"
playwright: "page.locator('#form_item_remark')"
cancelBtn:
description: "取 消"
element_type: button
section: "main::modal:新增基础包"
strategy: role
role: button
name: "取 消"
playwright: "page.getByRole('button', { name: '取 消' })"
confirmBtn:
description: "确 认"
element_type: button
section: "main::modal:新增基础包"
strategy: role
role: button
name: "确 认"
playwright: "page.getByRole('button', { name: '确 认' })"
# --- main::modal:新增分类 ---
basePkgCategoryName:
description: "请输入"
element_type: text
section: "main::modal:新增分类"
strategy: id
value: "form_item_kindName"
playwright: "page.locator('#form_item_kindName')"
# Auto-generated from surgery-oper-type-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/operationSetting/typeMaintenance
# Scanned: 2026-10-20T08:47:41.945Z
# Page: 基础设置 > 手术套包设置 > 术种维护
# Note: filter dropdown was opened during scan
# Note: dialog/modal was opened during scan
page: surgery-oper-type
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/operationSetting/typeMaintenance
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_basePkgMaintenance:
description: "基础包维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础包维护"
playwright: "page.getByRole('menuitem', { name: '基础包维护' })"
menu_operTypeMaintenance:
description: "术种维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "术种维护"
playwright: "page.getByRole('menuitem', { name: '术种维护' })"
menu_stdPkgMaintenance:
description: "标准套包维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "标准套包维护"
playwright: "page.getByRole('menuitem', { name: '标准套包维护' })"
operTypeMaintenance:
description: "术种维护"
element_type: tab
section: "main::main"
strategy: text
value: "术种维护"
playwright: "page.getByText('术种维护')"
tab_operTypeMaintenance:
description: "术种维护"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/operationSetting/typeMaintenance"
playwright: "page.locator('#rc-tabs-0-tab-/basic/operationSetting/typeMaintenance')"
addBtn:
description: "新增"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新增"
playwright: "page.getByRole('button', { name: '新增' })"
operTypeCategoryInput:
description: "请输入术种分类名称"
element_type: text
section: "main::main"
strategy: placeholder
value: "请输入术种分类名称"
playwright: "page.getByPlaceholder('请输入术种分类名称')"
operationName:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "table_search_form_operationName"
playwright: "page.locator('#table_search_form_operationName')"
diseaseName:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "table_search_form_disease"
playwright: "page.locator('#table_search_form_disease')"
searchBtn:
description: "查 询"
element_type: button
section: "main::main"
strategy: role
role: button
name: "查 询"
playwright: "page.getByRole('button', { name: '查 询' })"
resetBtn:
description: "重 置"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重 置"
playwright: "page.getByRole('button', { name: '重 置' })"
addOperTypeBtn:
description: "新增术种"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新增术种"
playwright: "page.getByRole('button', { name: '新增术种' })"
editBtn:
description: "编辑"
element_type: button
section: "main::main"
strategy: role
role: button
name: "编辑"
playwright: "page.getByRole('button', { name: '编辑' })"
enableBtn:
description: "启用"
element_type: button
section: "main::main"
strategy: role
role: button
name: "启用"
playwright: "page.getByRole('button', { name: '启用' })"
# --- main::pagination ---
pagination_el_e585b132e69da1313530e69da12fe9a1b5:
description: "共 2 条150 条/页"
element_type: ul
section: "main::pagination"
strategy: text
value: "共 2 条150 条/页"
playwright: "page.getByText('共 2 条150 条/页')"
pagination_prevPageBtn:
description: "上一页"
element_type: li
section: "main::pagination"
strategy: text
value: "上一页"
playwright: "page.getByText('上一页')"
pagination_page_1:
description: "1"
element_type: pagination_item
section: "main::pagination"
strategy: css
value: ".ant-pagination-item-active"
playwright: "page.locator('.ant-pagination-item-active')"
pagination_nextPageBtn:
description: "下一页"
element_type: li
section: "main::pagination"
strategy: text
value: "下一页"
playwright: "page.getByText('下一页')"
pagination_pageSizeSelect:
description: "50 条/页"
element_type: select
section: "main::pagination"
strategy: text
value: "50 条/页"
playwright: "page.getByText('50 条/页')"
pagination_pageSizeSelect_2:
description: "50 条/页205010020 条/页50 条/页100 条/页200 条/页"
element_type: select
section: "main::pagination"
strategy: text
value: "50 条/页205010020 条/页50 条/页100 条/页200 条/页"
playwright: "page.getByText('50 条/页205010020 条/页50 条/页100 条/页200 条/页')"
# --- main::modal:分类维护 ---
operTypeCategoryName:
description: "请输入"
element_type: text
section: "main::modal:分类维护"
strategy: id
value: "basic_kindName"
playwright: "page.locator('#basic_kindName')"
cancelBtn:
description: "取 消"
element_type: button
section: "main::modal:分类维护"
strategy: role
role: button
name: "取 消"
playwright: "page.getByRole('button', { name: '取 消' })"
saveBtn:
description: "保 存"
element_type: button
section: "main::modal:分类维护"
strategy: role
role: button
name: "保 存"
playwright: "page.getByRole('button', { name: '保 存' })"
import type { Locator, Page } from '@playwright/test';
/**
* 基础设置 · 手术套包设置(基础包维护 / 术种维护 / 标准套包维护)。
* 定位来源:locators/spd/surgery-*.locator.yaml(由交互元素扫描提炼)。
* 三页同组页签 + 左树 + 右列表 + 分页 + 弹窗,共用类只放稳定定位。
*/
export class SurgerySharedLocators {
readonly menuBasic: Locator;
readonly surgerySubmenuTitle: Locator;
readonly leftTree: Locator;
readonly treeSearchInput: Locator;
readonly tableHeader: Locator;
readonly tableBody: Locator;
readonly empty: Locator;
readonly pagination: Locator;
readonly paginationTotal: Locator;
readonly paginationActive: Locator;
readonly paginationPrev: Locator;
readonly paginationNext: Locator;
readonly dialog: Locator;
readonly formError: Locator;
constructor(protected readonly page: Page) {
this.menuBasic = page.getByRole('menuitem', { name: '基础设置' });
this.surgerySubmenuTitle = page
.locator('.ant-menu-submenu-title')
.filter({ hasText: /^\s*手术套包设置\s*$/ })
.first();
this.leftTree = page.locator('.ant-tree').first();
this.treeSearchInput = page.locator('.ant-tree ~ * input, .ant-tree input').first();
this.tableHeader = page.locator('.ant-table-thead th');
this.tableBody = page.locator('.ant-table-tbody');
this.empty = page.locator('.ant-empty, .ant-empty-description').first();
this.pagination = page.locator('.ant-pagination').first();
this.paginationTotal = page.locator('.ant-pagination-total-text').first();
this.paginationActive = page.locator('.ant-pagination-item-active').first();
this.paginationPrev = page.locator('.ant-pagination-prev').first();
this.paginationNext = page.locator('.ant-pagination-next').first();
this.dialog = page.locator('.ant-modal-content, .ant-modal-wrap .ant-modal, .ant-drawer-open').last();
this.formError = page.locator('.ant-form-item-explain-error, .ant-message-error, .ant-notification-notice');
}
/** 侧栏叶子菜单(基础包维护/术种维护/标准套包维护,既有 role=menuitem 也有 .ant-menu-item)。 */
menuLeaf(name: string): Locator {
const pattern = new RegExp(`^\\s*${name}\\s*$`);
return this.page
.getByRole('menuitem', { name: pattern })
.or(this.page.locator('.ant-menu-item').filter({ hasText: pattern }))
.first();
}
/** 同组页签(URL 型 rc-tabs 或文本 Tab 均覆盖)。 */
tab(name: string): Locator {
const pattern = new RegExp(name);
return this.page
.locator('.ant-tabs-tab')
.filter({ hasText: pattern })
.first()
.or(this.page.getByRole('tab', { name: pattern }).first())
.or(this.page.getByText(pattern).first());
}
button(name: string, root: Locator | Page = this.page): Locator {
const compact = name.replace(/\s/g, '');
const pattern = new RegExp(compact.split('').join('\\s*'));
return root.getByRole('button', { name: pattern });
}
/** 树节点:按可见文本包含匹配。 */
treeNode(text: string): Locator {
return this.leftTree.locator('.ant-tree-node-content-wrapper').filter({ hasText: text }).first();
}
treeNodes(): Locator {
return this.leftTree.locator('.ant-tree-node-content-wrapper');
}
/** 弹窗内表单控件按 id 定位(CSV 明确给出 #form_item_xxx / #basic_kindName)。 */
byId(id: string): Locator {
return this.page.locator(id.startsWith('#') ? id : `#${id}`).first();
}
/** 弹窗内确定类按钮(「确 认」「确 定」「保 存」「确定(N)」)。 */
confirmLikeButton(root: Locator | Page = this.dialog): Locator {
return root
.getByRole('button')
.filter({ hasText: /确\s*[认定]|保\s*存/ })
.first();
}
cancelLikeButton(root: Locator | Page = this.dialog): Locator {
return root.getByRole('button', { name: /取\s*消/ }).first();
}
}
# Auto-generated from surgery-std-pkg-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/operationSetting/standardMaintenance
# Scanned: 2026-10-20T08:47:54.322Z
# Page: 基础设置 > 手术套包设置 > 标准套包维护
page: surgery-std-pkg
module: spd-basic
url: http://spdtest.cmic.com.cn:8080/spd/basic/operationSetting/standardMaintenance
locators:
# --- main::main ---
menu_home:
description: "首页"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "首页"
playwright: "page.getByRole('menuitem', { name: '首页' })"
menu_basicSetting:
description: "基础设置"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础设置"
playwright: "page.getByRole('menuitem', { name: '基础设置' })"
menu_purchase:
description: "采购管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "采购管理"
playwright: "page.getByRole('menuitem', { name: '采购管理' })"
menu_opening:
description: "期初管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "期初管理"
playwright: "page.getByRole('menuitem', { name: '期初管理' })"
menu_centerStock:
description: "中心库管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "中心库管理"
playwright: "page.getByRole('menuitem', { name: '中心库管理' })"
menu_deptBusiness:
description: "科室业务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "科室业务管理"
playwright: "page.getByRole('menuitem', { name: '科室业务管理' })"
menu_finance:
description: "财务管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "财务管理"
playwright: "page.getByRole('menuitem', { name: '财务管理' })"
menu_orthoVolume:
description: "骨科带量"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "骨科带量"
playwright: "page.getByRole('menuitem', { name: '骨科带量' })"
menu_general:
description: "综合管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "综合管理"
playwright: "page.getByRole('menuitem', { name: '综合管理' })"
menu_yangcai:
description: "阳采管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "阳采管理"
playwright: "page.getByRole('menuitem', { name: '阳采管理' })"
menu_processCenter:
description: "流程中心"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "流程中心"
playwright: "page.getByRole('menuitem', { name: '流程中心' })"
menu_logistics:
description: "后勤物资管理"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "后勤物资管理"
playwright: "page.getByRole('menuitem', { name: '后勤物资管理' })"
menu_statReport:
description: "统计报表"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "统计报表"
playwright: "page.getByRole('menuitem', { name: '统计报表' })"
menu_dataViz:
description: "数据可视化"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "数据可视化"
playwright: "page.getByRole('menuitem', { name: '数据可视化' })"
menu_basePkgMaintenance:
description: "基础包维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "基础包维护"
playwright: "page.getByRole('menuitem', { name: '基础包维护' })"
menu_operTypeMaintenance:
description: "术种维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "术种维护"
playwright: "page.getByRole('menuitem', { name: '术种维护' })"
menu_stdPkgMaintenance:
description: "标准套包维护"
element_type: li
section: "main::main"
strategy: role
role: menuitem
name: "标准套包维护"
playwright: "page.getByRole('menuitem', { name: '标准套包维护' })"
stdPkgMaintenance:
description: "标准套包维护"
element_type: tab
section: "main::main"
strategy: text
value: "标准套包维护"
playwright: "page.getByText('标准套包维护')"
tab_stdPkgMaintenance:
description: "标准套包维护"
element_type: div
section: "main::main"
strategy: id
value: "rc-tabs-0-tab-/basic/operationSetting/standardMaintenance"
playwright: "page.locator('#rc-tabs-0-tab-/basic/operationSetting/standardMaintenance')"
addBtn:
description: "新 增"
element_type: button
section: "main::main"
strategy: role
role: button
name: "新 增"
playwright: "page.getByRole('button', { name: '新 增' })"
stdPkgTreeSearchInput:
description: "请输入术种分类名称、术种名称、标准套包名称"
element_type: text
section: "main::main"
strategy: placeholder
value: "请输入术种分类名称、术种名称、标准套包名称"
playwright: "page.getByPlaceholder('请输入术种分类名称、术种名称、标准套包名称')"
tree_node_e7b1bbe69caa:
description: "类未建分类(2)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类未建分类(2)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类未建分类(2)\\s*$/ })"
tree_node_e69caf313128:
description: "术11(4)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "术11(4)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*术11(4)\\s*$/ })"
tree_node_e58c857171:
description: "包qq"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "包qq"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包qq\\s*$/ })"
tree_node_e58c857474:
description: "包tt"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "包tt"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包tt\\s*$/ })"
tree_node_e58c85e695a3:
description: "包散货包"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "包散货包"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包散货包\\s*$/ })"
tree_node_e58c85e6b7b7:
description: "包混包"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "包混包"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包混包\\s*$/ })"
tree_node_e69caf313231:
description: "术1212(0)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "术1212(0)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*术1212(0)\\s*$/ })"
tree_node_e7b1bb313334:
description: "类134(2)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类134(2)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类134(2)\\s*$/ })"
tree_node_e7b1bb323032:
description: "类20240325(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类20240325(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类20240325(1)\\s*$/ })"
tree_el_e7b1bb3230323530353136283129_2:
description: "类20250516(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类20250516(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类20250516(1)\\s*$/ })"
tree_el_e7b1bb32303236283129_2:
description: "类2026(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类2026(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类2026(1)\\s*$/ })"
tree_node_e7b1bb323531:
description: "类2512回归(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类2512回归(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类2512回归(1)\\s*$/ })"
tree_node_e7b1bb414141:
description: "类AAAAA(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类AAAAA(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类AAAAA(1)\\s*$/ })"
tree_node_e7b1bb544553:
description: "类TEST(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类TEST(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类TEST(1)\\s*$/ })"
tree_node_e7b1bb6a6d37:
description: "类jm73(2)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类jm73(2)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类jm73(2)\\s*$/ })"
tree_node_e7b1bb6a6d5f:
description: "类jm_术种分类01(4)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类jm_术种分类01(4)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类jm_术种分类01(4)\\s*$/ })"
tree_node_e7b1bbe58fa3:
description: "类口腔内科手术(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类口腔内科手术(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类口腔内科手术(1)\\s*$/ })"
tree_el_e7b1bbe58fa3e88594e5a496e7a791e6898be69caf283329_2:
description: "类口腔外科手术(3)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类口腔外科手术(3)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类口腔外科手术(3)\\s*$/ })"
tree_node_e7b1bbe69caf:
description: "类术种0613(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类术种0613(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类术种0613(1)\\s*$/ })"
tree_node_e7b1bbe883b8:
description: "类胸外科(1)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类胸外科(1)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类胸外科(1)\\s*$/ })"
tree_node_e7b1bbe9aaa8:
description: "类骨外科(8)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类骨外科(8)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类骨外科(8)\\s*$/ })"
tree_el_e7b1bbe9aaa8e7a791283229_2:
description: "类骨科(2)"
element_type: tree_title
section: "main::main"
strategy: tree_node
value: "类骨科(2)"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类骨科(2)\\s*$/ })"
productName:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "table_search_form_keyword"
playwright: "page.locator('#table_search_form_keyword')"
specModel:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "table_search_form_goodsSpec"
playwright: "page.locator('#table_search_form_goodsSpec')"
manufacturer:
description: "请输入"
element_type: text
section: "main::main"
strategy: id
value: "table_search_form_goodsMfrsName"
playwright: "page.locator('#table_search_form_goodsMfrsName')"
searchBtn:
description: "查 询"
element_type: button
section: "main::main"
strategy: role
role: button
name: "查 询"
playwright: "page.getByRole('button', { name: '查 询' })"
resetBtn:
description: "重 置"
element_type: button
section: "main::main"
strategy: role
role: button
name: "重 置"
playwright: "page.getByRole('button', { name: '重 置' })"
expandFilterBtn:
description: "展开"
element_type: button
section: "main::main"
strategy: role
role: button
name: "展开"
playwright: "page.getByRole('button', { name: '展开' })"
addBasePkgBtn:
description: "添加基础包"
element_type: button
section: "main::main"
strategy: role
role: button
name: "添加基础包"
playwright: "page.getByRole('button', { name: '添加基础包' })"
addLoosePartBtn:
description: "添加散件"
element_type: button
section: "main::main"
strategy: role
role: button
name: "添加散件"
playwright: "page.getByRole('button', { name: '添加散件' })"
productOverviewBtn:
description: "产品概览"
element_type: button
section: "main::main"
strategy: role
role: button
name: "产品概览"
playwright: "page.getByRole('button', { name: '产品概览' })"
editBtn:
description: "编辑"
element_type: button
section: "main::main"
strategy: role
role: button
name: "编辑"
playwright: "page.getByRole('button', { name: '编辑' })"
removeBtn:
description: "移除"
element_type: button
section: "main::main"
strategy: role
role: button
name: "移除"
playwright: "page.getByRole('button', { name: '移除' })"
# --- main::modal:添加基础包 ---
addBasePkgSearchInput:
description: "请输入分类/基础包名称"
element_type: text
section: "main::modal:添加基础包"
strategy: placeholder
value: "请输入分类/基础包名称"
playwright: "page.getByPlaceholder('请输入分类/基础包名称')"
tree_node_e7b1bb313231:
description: "类12121313"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类12121313"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类12121313\\s*$/ })"
tree_node_e58c85415554:
description: "包AUTO-BASE-1792473862012-33"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "包AUTO-BASE-1792473862012-33"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包AUTO-BASE-1792473862012-33\\s*$/ })"
Input:
description: "1"
element_type: text
section: "main::modal:添加基础包"
strategy: role
role: spinbutton
name: "1"
playwright: "page.getByRole('spinbutton', { name: '1' })"
tree_el_e58c854155544f2d424153452d313739323437333839313334382d313539_2:
description: "包AUTO-BASE-1792473891348-159"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "包AUTO-BASE-1792473891348-159"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包AUTO-BASE-1792473891348-159\\s*$/ })"
tree_el_e58c854155544f2d424153452d313739323437333933343839312d393337_2:
description: "包AUTO-BASE-1792473934891-937"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "包AUTO-BASE-1792473934891-937"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*包AUTO-BASE-1792473934891-937\\s*$/ })"
tree_el_e7b1bb3230323430333234_2:
description: "类20240324"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类20240324"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类20240324\\s*$/ })"
tree_el_e7b1bb3230323530353136_2:
description: "类20250516"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类20250516"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类20250516\\s*$/ })"
tree_el_e7b1bb32303236e59b9ee5bd92e6b58be8af95_2:
description: "类2026回归测试"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类2026回归测试"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类2026回归测试\\s*$/ })"
tree_el_e7b1bb32353132e59b9ee5bd92_2:
description: "类2512回归"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类2512回归"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类2512回归\\s*$/ })"
tree_el_e7b1bb54455354_2:
description: "类TEST"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类TEST"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类TEST\\s*$/ })"
tree_el_e7b1bb6a6d5fe59fbae7a180e58c85e58886e7b1bb3031_2:
description: "类jm_基础包分类01"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类jm_基础包分类01"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类jm_基础包分类01\\s*$/ })"
tree_el_e7b1bb6a6d5fe59fbae7a180e58c85e58886e7b1bb3032_2:
description: "类jm_基础包分类02"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类jm_基础包分类02"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类jm_基础包分类02\\s*$/ })"
tree_el_e7b1bbe58fa3e88594e7a791e59fbae7a180e58c85e58886e7b1bb31_2:
description: "类口腔科基础包分类1"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类口腔科基础包分类1"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类口腔科基础包分类1\\s*$/ })"
tree_node_e7b1bbe59fba:
description: "类基础包0613"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类基础包0613"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类基础包0613\\s*$/ })"
tree_node_e7b1bbe5a496:
description: "类外科手术"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类外科手术"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类外科手术\\s*$/ })"
tree_node_e7b1bbe69588:
description: "类效期"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类效期"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类效期\\s*$/ })"
tree_node_e7b1bbe88386:
description: "类胆囊手术"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类胆囊手术"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类胆囊手术\\s*$/ })"
tree_node_e7b1bbe9ab98:
description: "类高值包"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类高值包"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类高值包\\s*$/ })"
tree_el_e7b1bb6a6d3733_2:
description: "类jm73"
element_type: tree_title
section: "main::modal:添加基础包"
strategy: tree_node
value: "类jm73"
tree: ".ant-tree"
playwright: "page.locator('.ant-tree .ant-tree-title').filter({ hasText: /^\\s*类jm73\\s*$/ })"
cancelBtn:
description: "取 消"
element_type: button
section: "main::modal:添加基础包"
strategy: role
role: button
name: "取 消"
playwright: "page.getByRole('button', { name: '取 消' })"
confirmBtn:
description: "确定(0)"
element_type: button
section: "main::modal:添加基础包"
strategy: role
role: button
name: "确定(0)"
playwright: "page.getByRole('button', { name: '确定(0)' })"
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