Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
test
autotest-playwright-web-spd
Commits
6a181bea
Commit
6a181bea
authored
Oct 20, 2026
by
liguangyu06
Browse files
将基础管理等未入库改动暂存到 temp 分支,便于远程备份。
新模块用例尚未具备通关凭证,本次按临时备份跳过本地门禁。
parent
f6eec849
Changes
214
Hide whitespace changes
Inline
Side-by-side
Too many changes to show.
To preserve performance only
20 of 214+
files are displayed.
Plain diff
Email patch
locators/spd/vendor-auth-final.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-auth-final-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/authAuditFinal
# Scanned: 2026-10-20T08:41:58.554Z
# Page: 基础设置 > 厂商管理 > 授权变更终审
# Note: filter dropdown was opened during scan
page
:
vendor-auth-final
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/authAuditFinal
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
authFinal
:
description
:
"
授权变更终审"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
授权变更终审"
playwright
:
"
page.getByText('授权变更终审')"
tab_authFinal
:
description
:
"
授权变更终审"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/authAuditFinal"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/authAuditFinal')"
operationDateDateRange
:
description
:
"
制单日期"
element_type
:
datepicker
section
:
"
main::main"
strategy
:
label_text
value
:
"
制单日期"
playwright
:
"
page.getByText('制单日期',
{
exact:
true
})"
dateRange
:
description
:
"
开始日期"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_dateValue"
playwright
:
"
page.locator('#table_search_form_dateValue')"
operationDateInput
:
description
:
"
结束日期"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
结束日期"
playwright
:
"
page.getByPlaceholder('结束日期')"
documentNo
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_orderNo"
playwright
:
"
page.locator('#table_search_form_orderNo')"
el_e99480e594aee59586Select
:
description
:
"
请选择"
element_type
:
select
section
:
"
main::main"
strategy
:
label_text
value
:
"
销售商"
playwright
:
"
page.getByText('销售商',
{
exact:
true
})"
supplierId
:
description
:
"
销售商"
element_type
:
search
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_provId"
playwright
:
"
page.locator('#table_search_form_provId')"
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:
'展开'
})"
locators/spd/vendor-auth-first.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-auth-first-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/authAudit
# Scanned: 2026-10-20T08:41:49.683Z
# Page: 基础设置 > 厂商管理 > 授权变更初审
# Note: filter dropdown was opened during scan
page
:
vendor-auth-first
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/authAudit
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
authFirst
:
description
:
"
授权变更初审"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
授权变更初审"
playwright
:
"
page.getByText('授权变更初审')"
tab_authFirst
:
description
:
"
授权变更初审"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/authAudit"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/authAudit')"
operationDateDateRange
:
description
:
"
制单日期"
element_type
:
datepicker
section
:
"
main::main"
strategy
:
label_text
value
:
"
制单日期"
playwright
:
"
page.getByText('制单日期',
{
exact:
true
})"
dateRange
:
description
:
"
开始日期"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_dateValue"
playwright
:
"
page.locator('#table_search_form_dateValue')"
operationDateInput
:
description
:
"
结束日期"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
结束日期"
playwright
:
"
page.getByPlaceholder('结束日期')"
documentNo
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_orderNo"
playwright
:
"
page.locator('#table_search_form_orderNo')"
el_e99480e594aee59586Select
:
description
:
"
请选择"
element_type
:
select
section
:
"
main::main"
strategy
:
label_text
value
:
"
销售商"
playwright
:
"
page.getByText('销售商',
{
exact:
true
})"
supplierId
:
description
:
"
销售商"
element_type
:
search
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_provId"
playwright
:
"
page.locator('#table_search_form_provId')"
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:
'展开'
})"
locators/spd/vendor-cert-diff.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-cert-diff-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/scjs/yc/certCompare
# Scanned: 2026-10-20T08:43:43.547Z
# Page: 基础设置 > 厂商管理 > 注册证差异对比
page
:
vendor-cert-diff
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/scjs/yc/certCompare
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
certDiff
:
description
:
"
注册证差异对比"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
注册证差异对比"
playwright
:
"
page.getByText('注册证差异对比')"
tab_certDiff
:
description
:
"
注册证差异对比"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/scjs/yc/certCompare"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/scjs/yc/certCompare')"
el_e789a9e69699e5908de7a7b0Input
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_goodsName"
playwright
:
"
page.locator('#table_search_form_goodsName')"
specModel
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_goodsSpec"
playwright
:
"
page.locator('#table_search_form_goodsSpec')"
statusSelect
:
description
:
"
启用"
element_type
:
select
section
:
"
main::main"
strategy
:
label_text
value
:
"
状态"
playwright
:
"
page.getByText('状态',
{
exact:
true
})"
statusInput
:
description
:
"
状态"
element_type
:
search
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_mgiTbStatus"
playwright
:
"
page.locator('#table_search_form_mgiTbStatus')"
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:
'展开'
})"
el_e7ab8be58db3e69bb4e696b0Btn
:
description
:
"
立即更新"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
立即更新"
playwright
:
"
page.getByRole('button',
{
name:
'立即更新'
})"
exportBtn
:
description
:
"
导出"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
导出"
playwright
:
"
page.getByRole('button',
{
name:
'导出'
})"
# --- main::pagination ---
pagination_el_e585b137363537e69da13132333435e280a2e280a2e280a23339323030e69da12fe9a1b5e8b7b3e887b3e9a1b5
:
description
:
"
共
7657
条12345•••39200
条/页跳至页"
element_type
:
ul
section
:
"
main::pagination"
strategy
:
text
value
:
"
共
7657
条12345•••39200
条/页跳至页"
playwright
:
"
page.getByText('共
7657
条12345•••39200
条/页跳至页')"
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_39
:
description
:
"
39"
element_type
:
pagination_item
section
:
"
main::pagination"
strategy
:
text
value
:
"
39"
playwright
:
"
page.getByText('39')"
pagination_nextPageBtn
:
description
:
"
下一页"
element_type
:
li
section
:
"
main::pagination"
strategy
:
text
value
:
"
下一页"
playwright
:
"
page.getByText('下一页')"
pagination_pageSizeSelect
:
description
:
"
200
条/页"
element_type
:
select
section
:
"
main::pagination"
strategy
:
text
value
:
"
200
条/页"
playwright
:
"
page.getByText('200
条/页')"
locators/spd/vendor-cert-final.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-cert-final-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal
# Scanned: 2026-10-20T08:42:16.674Z
# Page: 基础设置 > 厂商管理 > 注册证变更终审
# Note: filter dropdown was opened during scan
page
:
vendor-cert-final
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
certFinal
:
description
:
"
注册证变更终审"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
注册证变更终审"
playwright
:
"
page.getByText('注册证变更终审')"
tab_certFinal
:
description
:
"
注册证变更终审"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/regCertAuditFinal"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/regCertAuditFinal')"
operationDateDateRange
:
description
:
"
制单日期"
element_type
:
datepicker
section
:
"
main::main"
strategy
:
label_text
value
:
"
制单日期"
playwright
:
"
page.getByText('制单日期',
{
exact:
true
})"
dateRange
:
description
:
"
开始日期"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_dateValue"
playwright
:
"
page.locator('#table_search_form_dateValue')"
operationDateInput
:
description
:
"
结束日期"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
结束日期"
playwright
:
"
page.getByPlaceholder('结束日期')"
documentNo
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_orderNo"
playwright
:
"
page.locator('#table_search_form_orderNo')"
changeTypeSelect
:
description
:
"
请选择"
element_type
:
select
section
:
"
main::main"
strategy
:
label_text
value
:
"
变更类型"
playwright
:
"
page.getByText('变更类型',
{
exact:
true
})"
changeTypeInput
:
description
:
"
变更类型"
element_type
:
search
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_chgType"
playwright
:
"
page.locator('#table_search_form_chgType')"
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:
'展开'
})"
locators/spd/vendor-cert-first.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-cert-first-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/regCertAudit
# Scanned: 2026-10-20T08:42:07.556Z
# Page: 基础设置 > 厂商管理 > 注册证变更初审
# Note: filter dropdown was opened during scan
page
:
vendor-cert-first
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/regCertAudit
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
certFirst
:
description
:
"
注册证变更初审"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
注册证变更初审"
playwright
:
"
page.getByText('注册证变更初审')"
tab_certFirst
:
description
:
"
注册证变更初审"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/regCertAudit"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/regCertAudit')"
operationDateDateRange
:
description
:
"
制单日期"
element_type
:
datepicker
section
:
"
main::main"
strategy
:
label_text
value
:
"
制单日期"
playwright
:
"
page.getByText('制单日期',
{
exact:
true
})"
dateRange
:
description
:
"
开始日期"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_dateValue"
playwright
:
"
page.locator('#table_search_form_dateValue')"
operationDateInput
:
description
:
"
结束日期"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
结束日期"
playwright
:
"
page.getByPlaceholder('结束日期')"
documentNo
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_orderNo"
playwright
:
"
page.locator('#table_search_form_orderNo')"
changeTypeSelect
:
description
:
"
请选择"
element_type
:
select
section
:
"
main::main"
strategy
:
label_text
value
:
"
变更类型"
playwright
:
"
page.getByText('变更类型',
{
exact:
true
})"
changeTypeInput
:
description
:
"
变更类型"
element_type
:
search
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_chgType"
playwright
:
"
page.locator('#table_search_form_chgType')"
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:
'展开'
})"
locators/spd/vendor-eval-indicator.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-eval-indicator-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/indicators
# Scanned: 2026-10-20T08:44:01.895Z
# Page: 基础设置 > 厂商管理 > 评价指标维护
# Note: filter dropdown was opened during scan
# Note: dialog/modal was opened during scan
page
:
vendor-eval-indicator
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/indicators
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
evalIndicator
:
description
:
"
评价指标维护"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
评价指标维护"
playwright
:
"
page.getByText('评价指标维护')"
tab_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/indicators"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/indicators')"
el_e68c87e6a087e58886e7b1bb
:
description
:
"
指标分类"
element_type
:
a
section
:
"
main::main"
strategy
:
text
value
:
"
指标分类"
playwright
:
"
page.getByText('指标分类')"
addBtn
:
description
:
"
新增"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
新增"
playwright
:
"
page.getByRole('button',
{
name:
'新增'
})"
categoryNameInput
:
description
:
"
分类名称"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
分类名称"
playwright
:
"
page.getByPlaceholder('分类名称')"
tree_node_e68c87e6a087
:
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_313131
:
description
:
"
111"
element_type
:
tree_title
section
:
"
main::main"
strategy
:
tree_node
value
:
"
111"
tree
:
"
.ant-tree"
playwright
:
"
page.locator('.ant-tree
.ant-tree-title').filter({
hasText:
/^
\\
s*111
\\
s*$/
})"
tree_node_323232
:
description
:
"
222"
element_type
:
tree_title
section
:
"
main::main"
strategy
:
tree_node
value
:
"
222"
tree
:
"
.ant-tree"
playwright
:
"
page.locator('.ant-tree
.ant-tree-title').filter({
hasText:
/^
\\
s*222
\\
s*$/
})"
tree_node_53e6b58be8af
:
description
:
"
S测试"
element_type
:
tree_title
section
:
"
main::main"
strategy
:
tree_node
value
:
"
S测试"
tree
:
"
.ant-tree"
playwright
:
"
page.locator('.ant-tree
.ant-tree-title').filter({
hasText:
/^
\\
s*S测试
\\
s*$/
})"
tree_node_e6b58be8af95
:
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_323630363236
:
description
:
"
260626回归指标分类"
element_type
:
tree_title
section
:
"
main::main"
strategy
:
tree_node
value
:
"
260626回归指标分类"
tree
:
"
.ant-tree"
playwright
:
"
page.locator('.ant-tree
.ant-tree-title').filter({
hasText:
/^
\\
s*260626回归指标分类
\\
s*$/
})"
tree_node_30363137e68c
:
description
:
"
0617指标"
element_type
:
tree_title
section
:
"
main::main"
strategy
:
tree_node
value
:
"
0617指标"
tree
:
"
.ant-tree"
playwright
:
"
page.locator('.ant-tree
.ant-tree-title').filter({
hasText:
/^
\\
s*0617指标
\\
s*$/
})"
el_e68c87e6a087e7bc96e7a081Input
:
description
:
"
请输入指标编码"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_indicatorsCode"
playwright
:
"
page.locator('#table_search_form_indicatorsCode')"
el_e68c87e6a087e5908de7a7b0Input
:
description
:
"
请输入指标名称"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_indicatorsName"
playwright
:
"
page.locator('#table_search_form_indicatorsName')"
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:
'重
置'
})"
editBtn
:
description
:
"
编辑"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
编辑"
playwright
:
"
page.getByRole('button',
{
name:
'编辑'
})"
detailBtn
:
description
:
"
详情"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
详情"
playwright
:
"
page.getByRole('button',
{
name:
'详情'
})"
logBtn
:
description
:
"
日志"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
日志"
playwright
:
"
page.getByRole('button',
{
name:
'日志'
})"
# --- main::pagination ---
pagination_indicatorCode
:
description
:
"
共
31
条150
条/页"
element_type
:
ul
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
指标编号"
playwright
:
"
page.getByText('指标编号',
{
exact:
true
})"
pagination_prevPageBtn
:
description
:
"
上一页"
element_type
:
li
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
指标编号"
playwright
:
"
page.getByText('指标编号',
{
exact:
true
})"
pagination_indicatorCodeBtn
:
description
:
"
指标编号"
element_type
:
button
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
指标编号"
playwright
:
"
page.getByText('指标编号',
{
exact:
true
})"
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
:
label_text
value
:
"
指标编号"
playwright
:
"
page.getByText('指标编号',
{
exact:
true
})"
pagination_pageSizeSelect
:
description
:
"
50
条/页"
element_type
:
select
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
指标编号"
playwright
:
"
page.getByText('指标编号',
{
exact:
true
})"
pagination_indicatorCode_2
:
description
:
"
共
31
条150
条/页205010020
条/页50
条/页100
条/页200
条/页"
element_type
:
ul
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
指标编号"
playwright
:
"
page.getByText('指标编号',
{
exact:
true
})"
pagination_pageSizeSelect_2
:
description
:
"
50
条/页205010020
条/页50
条/页100
条/页200
条/页"
element_type
:
select
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
指标编号"
playwright
:
"
page.getByText('指标编号',
{
exact:
true
})"
# --- main::modal:新增 ---
el_e4b88ae7baa7e58886e7b1bbSelect
:
description
:
"
请选择"
element_type
:
select
section
:
"
main::modal:新增"
strategy
:
label_text
value
:
"
上级分类"
playwright
:
"
page.getByText('上级分类',
{
exact:
true
})"
basePkgCategoryName
:
description
:
"
分类名称"
element_type
:
text
section
:
"
main::modal:新增"
strategy
:
id
value
:
"
form_item_kindName"
playwright
:
"
page.locator('#form_item_kindName')"
enable
:
description
:
"
启用"
element_type
:
radio
section
:
"
main::modal:新增"
strategy
:
text
value
:
"
启用"
playwright
:
"
page.getByText('启用')"
disable
:
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:
'确
定'
})"
locators/spd/vendor-eval-scheme.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-eval-scheme-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/evaluationPlan
# Scanned: 2026-10-20T08:43:52.262Z
# Page: 基础设置 > 厂商管理 > 评价方案维护
# Note: dialog/modal was opened during scan
page
:
vendor-eval-scheme
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/evaluationPlan
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
evalScheme
:
description
:
"
评价方案维护"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
评价方案维护"
playwright
:
"
page.getByText('评价方案维护')"
tab_evalScheme
:
description
:
"
评价方案维护"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/evaluationPlan"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/evaluationPlan')"
el_e5889be5bbbae697a5e69c9fDateRange
:
description
:
"
创建日期"
element_type
:
datepicker
section
:
"
main::main"
strategy
:
label_text
value
:
"
创建日期"
playwright
:
"
page.getByText('创建日期',
{
exact:
true
})"
dateRange
:
description
:
"
开始日期"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_dateValue"
playwright
:
"
page.locator('#table_search_form_dateValue')"
el_e5889be5bbbae697a5e69c9fInput
:
description
:
"
结束日期"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
结束日期"
playwright
:
"
page.getByPlaceholder('结束日期')"
el_e590afe794a8e697a5e69c9fDateRange
:
description
:
"
启用日期"
element_type
:
datepicker
section
:
"
main::main"
strategy
:
label_text
value
:
"
启用日期"
playwright
:
"
page.getByText('启用日期',
{
exact:
true
})"
el_e590afe794a8e697a5e69c9fInput
:
description
:
"
开始日期"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_startTimeValue"
playwright
:
"
page.locator('#table_search_form_startTimeValue')"
el_e590afe794a8e697a5e69c9fInput_2
:
description
:
"
结束日期"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
结束日期"
playwright
:
"
page.getByPlaceholder('结束日期')"
schemeCodeInput
:
description
:
"
请输入方案编码"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_planCode"
playwright
:
"
page.locator('#table_search_form_planCode')"
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:
'展开'
})"
addBtn
:
description
:
"
新
增"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
新
增"
playwright
:
"
page.getByRole('button',
{
name:
'新
增'
})"
# --- main::modal:新增方案 ---
el_e696b9e6a188e5908de7a7b0Input
:
description
:
"
方案名称"
element_type
:
text
section
:
"
main::modal:新增方案"
strategy
:
id
value
:
"
form_item_planName"
playwright
:
"
page.locator('#form_item_planName')"
remark
:
description
:
"
限255字符"
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:
'确
定'
})"
locators/spd/vendor-holiday.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-holiday-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/basic/prov/holiday
# Scanned: 2026-10-20T08:44:28.895Z
# Page: 基础设置 > 厂商管理 > 供应商节假日管理
# Note: dialog/modal was opened during scan
# Note: edit dialog was opened during scan
page
:
vendor-holiday
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/basic/prov/holiday
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
供应商节假日管理"
playwright
:
"
page.getByText('供应商节假日管理')"
tab_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/basic/prov/holiday"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/basic/prov/holiday')"
addBtn
:
description
:
"
新
增"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
新
增"
playwright
:
"
page.getByRole('button',
{
name:
'新
增'
})"
nameOrYearInput
:
description
:
"
请输入名称/年度"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
请输入名称/年度"
playwright
:
"
page.getByPlaceholder('请输入名称/年度')"
editBtn
:
description
:
"
编辑"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
编辑"
playwright
:
"
page.getByRole('button',
{
name:
'编辑'
})"
el_e689b9e9878fe588a0e999a4Btn
:
description
:
"
批量删除"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
批量删除"
playwright
:
"
page.getByRole('button',
{
name:
'批量删除'
})"
# --- main::pagination ---
pagination_add
:
description
:
"
共
16
条150
条/页"
element_type
:
ul
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
新
增"
playwright
:
"
page.getByText('新
增',
{
exact:
true
})"
pagination_prevPageBtn
:
description
:
"
上一页"
element_type
:
li
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
新
增"
playwright
:
"
page.getByText('新
增',
{
exact:
true
})"
pagination_addBtn
:
description
:
"
新
增"
element_type
:
button
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
新
增"
playwright
:
"
page.getByText('新
增',
{
exact:
true
})"
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
:
label_text
value
:
"
新
增"
playwright
:
"
page.getByText('新
增',
{
exact:
true
})"
pagination_pageSizeSelect
:
description
:
"
50
条/页"
element_type
:
select
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
新
增"
playwright
:
"
page.getByText('新
增',
{
exact:
true
})"
# --- main::modal:新增 ---
el_e5908de7a7b0Input
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:新增"
strategy
:
id
value
:
"
form_item_cname"
playwright
:
"
page.locator('#form_item_cname')"
yearDateRange
:
description
:
"
年度"
element_type
:
datepicker
section
:
"
main::modal:新增"
strategy
:
label_text
value
:
"
年度"
playwright
:
"
page.getByText('年度',
{
exact:
true
})"
yearInput
:
description
:
"
2026"
element_type
:
text
section
:
"
main::modal:新增"
strategy
:
id
value
:
"
form_item_yearly"
playwright
:
"
page.locator('#form_item_yearly')"
el_e8b5b7e6ada2e697a5e69c9fDateRange
:
description
:
"
起止日期"
element_type
:
datepicker
section
:
"
main::modal:新增"
strategy
:
label_text
value
:
"
起止日期"
playwright
:
"
page.getByText('起止日期',
{
exact:
true
})"
el_e8b5b7e6ada2e697a5e69c9fInput
:
description
:
"
开始日期"
element_type
:
text
section
:
"
main::modal:新增"
strategy
:
id
value
:
"
form_item_holidayDate"
playwright
:
"
page.locator('#form_item_holidayDate')"
el_e8b5b7e6ada2e697a5e69c9fInput_2
:
description
:
"
结束日期"
element_type
:
text
section
:
"
main::modal:新增"
strategy
:
placeholder
value
:
"
结束日期"
playwright
:
"
page.getByPlaceholder('结束日期')"
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:编辑 ---
el_e5908de7a7b0Input_2
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:编辑"
strategy
:
id
value
:
"
form_item_cname"
playwright
:
"
page.locator('#form_item_cname')"
el_e5908de7a7b0
:
description
:
"
close-circle"
element_type
:
span
section
:
"
main::modal:编辑"
strategy
:
label
value
:
"
close-circle"
playwright
:
"
page.getByLabel('close-circle')"
yearDateRange_2
:
description
:
"
年度"
element_type
:
datepicker
section
:
"
main::modal:编辑"
strategy
:
label_text
value
:
"
年度"
playwright
:
"
page.getByText('年度',
{
exact:
true
})"
yearInput_2
:
description
:
"
2026"
element_type
:
text
section
:
"
main::modal:编辑"
strategy
:
id
value
:
"
form_item_yearly"
playwright
:
"
page.locator('#form_item_yearly')"
el_e8b5b7e6ada2e697a5e69c9fDateRange_2
:
description
:
"
起止日期"
element_type
:
datepicker
section
:
"
main::modal:编辑"
strategy
:
label_text
value
:
"
起止日期"
playwright
:
"
page.getByText('起止日期',
{
exact:
true
})"
el_e8b5b7e6ada2e697a5e69c9fInput_3
:
description
:
"
开始日期"
element_type
:
text
section
:
"
main::modal:编辑"
strategy
:
id
value
:
"
form_item_holidayDate"
playwright
:
"
page.locator('#form_item_holidayDate')"
el_e8b5b7e6ada2e697a5e69c9fInput_4
:
description
:
"
结束日期"
element_type
:
text
section
:
"
main::modal:编辑"
strategy
:
placeholder
value
:
"
结束日期"
playwright
:
"
page.getByPlaceholder('结束日期')"
remark_2
:
description
:
"
请输入"
element_type
:
textarea
section
:
"
main::modal:编辑"
strategy
:
id
value
:
"
form_item_remark"
playwright
:
"
page.locator('#form_item_remark')"
locators/spd/vendor-qual.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-qual-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/basic/qcManage
# Scanned: 2026-10-20T08:41:30.230Z
# Page: 基础设置 > 厂商管理 > 供应商资质管理
# Note: filter dropdown was opened during scan
page
:
vendor-qual
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/basic/qcManage
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
vendorQual
:
description
:
"
供应商资质管理"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
供应商资质管理"
playwright
:
"
page.getByText('供应商资质管理')"
tab_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/basic/qcManage"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/basic/qcManage')"
supplierName
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_provName"
playwright
:
"
page.locator('#table_search_form_provName')"
el_e8af81e4bbb6e7b1bbe59e8bSelect
:
description
:
"
请选择"
element_type
:
select
section
:
"
main::main"
strategy
:
label_text
value
:
"
证件类型"
playwright
:
"
page.getByText('证件类型',
{
exact:
true
})"
el_e8af81e4bbb6e7b1bbe59e8bInput
:
description
:
"
证件类型"
element_type
:
search
section
:
"
main::main"
strategy
:
id
value
:
"
table_search_form_certType"
playwright
:
"
page.locator('#table_search_form_certType')"
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:
'重
置'
})"
exportBtn
:
description
:
"
导
出"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
导
出"
playwright
:
"
page.getByRole('button',
{
name:
'导
出'
})"
viewDetailBtn
:
description
:
"
查看"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
查看"
playwright
:
"
page.getByRole('button',
{
name:
'查看'
})"
# --- main::pagination ---
pagination_action
:
description
:
"
共
30
条150
条/页"
element_type
:
ul
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
操作"
playwright
:
"
page.getByText('操作',
{
exact:
true
})"
pagination_prevPageBtn
:
description
:
"
上一页"
element_type
:
li
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
操作"
playwright
:
"
page.getByText('操作',
{
exact:
true
})"
pagination_actionBtn
:
description
:
"
操作"
element_type
:
button
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
操作"
playwright
:
"
page.getByText('操作',
{
exact:
true
})"
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
:
label_text
value
:
"
操作"
playwright
:
"
page.getByText('操作',
{
exact:
true
})"
pagination_pageSizeSelect
:
description
:
"
50
条/页"
element_type
:
select
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
操作"
playwright
:
"
page.getByText('操作',
{
exact:
true
})"
# --- main::modal:承诺书 ---
cancelBtn
:
description
:
"
取
消"
element_type
:
button
section
:
"
main::modal:承诺书"
strategy
:
role
role
:
button
name
:
"
取
消"
playwright
:
"
page.getByRole('button',
{
name:
'取
消'
})"
locators/spd/vendor-query.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from vendor-query-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/factory
# Scanned: 2026-10-20T08:41:21.432Z
# Page: 基础设置 > 厂商管理 > 厂商查询
page
:
vendor-query
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/mfrs/paltform/mfrsName/factory
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_vendorQuery
:
description
:
"
厂商查询"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
厂商查询"
playwright
:
"
page.getByRole('menuitem',
{
name:
'厂商查询'
})"
menu_vendorQual
:
description
:
"
供应商资质管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商资质管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商资质管理'
})"
menu_authFirst
:
description
:
"
授权变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更初审'
})"
menu_certFirst
:
description
:
"
注册证变更初审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更初审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更初审'
})"
menu_certFinal
:
description
:
"
注册证变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证变更终审'
})"
menu_authFinal
:
description
:
"
授权变更终审"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
授权变更终审"
playwright
:
"
page.getByRole('menuitem',
{
name:
'授权变更终审'
})"
menu_certDiff
:
description
:
"
注册证差异对比"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
注册证差异对比"
playwright
:
"
page.getByRole('menuitem',
{
name:
'注册证差异对比'
})"
menu_evalScheme
:
description
:
"
评价方案维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价方案维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价方案维护'
})"
menu_evalIndicator
:
description
:
"
评价指标维护"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
评价指标维护"
playwright
:
"
page.getByRole('menuitem',
{
name:
'评价指标维护'
})"
menu_vendorHoliday
:
description
:
"
供应商节假日管理"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
供应商节假日管理"
playwright
:
"
page.getByRole('menuitem',
{
name:
'供应商节假日管理'
})"
vendorQuery
:
description
:
"
厂商查询"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
厂商查询"
playwright
:
"
page.getByText('厂商查询')"
tab_vendorQuery
:
description
:
"
厂商查询"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/factory"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/mfrs/paltform/mfrsName/factory')"
mfrsNameInput
:
description
:
"
厂商名称"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
厂商名称"
playwright
:
"
page.getByPlaceholder('厂商名称')"
tableDensity
:
description
:
"
column-height"
element_type
:
span
section
:
"
main::main"
strategy
:
label
value
:
"
column-height"
playwright
:
"
page.getByLabel('column-height')"
# --- main::pagination ---
pagination_el_e585b1343430e69da13132333435e280a2e280a2e280a2393530e69da12fe9a1b5e8b7b3e887b3e9a1b5
:
description
:
"
共
440
条12345•••950
条/页跳至页"
element_type
:
ul
section
:
"
main::pagination"
strategy
:
text
value
:
"
共
440
条12345•••950
条/页跳至页"
playwright
:
"
page.getByText('共
440
条12345•••950
条/页跳至页')"
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_9
:
description
:
"
9"
element_type
:
pagination_item
section
:
"
main::pagination"
strategy
:
text
value
:
"
9"
playwright
:
"
page.getByText('9')"
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
条/页')"
locators/spd/vendor-shared.locator.ts
0 → 100644
View file @
6a181bea
import
type
{
Locator
,
Page
}
from
'
@playwright/test
'
;
/** 基础设置 · 厂商管理。叶子菜单是 .ant-menu-item,不是 role=menuitem。 */
export
class
VendorSharedLocators
{
readonly
menuBasic
:
Locator
;
readonly
vendorSubmenuTitle
:
Locator
;
readonly
tableHeader
:
Locator
;
readonly
empty
:
Locator
;
readonly
paginationTotal
:
Locator
;
readonly
nextPage
:
Locator
;
readonly
prevPage
:
Locator
;
readonly
formError
:
Locator
;
constructor
(
protected
readonly
page
:
Page
)
{
this
.
menuBasic
=
page
.
getByRole
(
'
menuitem
'
,
{
name
:
'
基础设置
'
});
this
.
vendorSubmenuTitle
=
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
.
prevPage
=
page
.
locator
(
'
.ant-pagination-prev
'
).
first
();
this
.
formError
=
page
.
locator
(
'
.ant-form-item-explain-error, .ant-message-notice, .ant-notification-notice
'
);
}
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
});
}
tab
(
name
:
string
):
Locator
{
return
this
.
page
.
locator
(
'
.ant-tabs-tab
'
).
filter
({
hasText
:
new
RegExp
(
name
)
}).
first
();
}
putPage
():
Locator
{
return
this
.
page
.
locator
(
'
.put-page
'
).
last
();
}
dialog
():
Locator
{
return
this
.
page
.
locator
(
'
.ant-modal-wrap .ant-modal, .ant-drawer-open
'
).
last
();
}
}
locators/spd/warehouse-probe.locator.ts
0 → 100644
View file @
6a181bea
import
type
{
Locator
,
Page
}
from
'
@playwright/test
'
;
import
{
WhFlowSharedLocators
}
from
'
./wh-flow-shared.locator
'
;
/** 探针绑定。选择器来自 locators/spd/warehouse-probe.locator.yaml */
export
class
WarehouseProbeLocators
extends
WhFlowSharedLocators
{
readonly
queryBtn
:
Locator
;
readonly
resetBtn
:
Locator
;
readonly
bindBtn
:
Locator
;
readonly
modalCancel
:
Locator
;
constructor
(
page
:
Page
)
{
super
(
page
);
this
.
queryBtn
=
page
.
getByRole
(
'
button
'
,
{
name
:
/查
\s
*询/
});
this
.
resetBtn
=
page
.
getByRole
(
'
button
'
,
{
name
:
/重
\s
*置/
});
this
.
bindBtn
=
page
.
getByRole
(
'
button
'
,
{
name
:
'
绑定货位
'
});
this
.
modalCancel
=
page
.
getByRole
(
'
button
'
,
{
name
:
/取
\s
*消/
});
}
probeIdInput
():
Locator
{
return
this
.
page
.
locator
(
'
.ant-form-item
'
).
filter
({
hasText
:
'
探针ID
'
}).
locator
(
'
input
'
).
first
();
}
hostCodeInput
():
Locator
{
return
this
.
page
.
locator
(
'
.ant-form-item
'
).
filter
({
hasText
:
'
主机编码
'
}).
locator
(
'
input
'
).
first
();
}
bindSelect
():
Locator
{
return
this
.
page
.
locator
(
'
.ant-form-item
'
).
filter
({
hasText
:
'
是否绑定货位
'
}).
locator
(
'
.ant-select
'
).
first
();
}
bindModal
():
Locator
{
return
this
.
page
.
locator
(
'
.ant-modal:visible
'
).
filter
({
hasText
:
/货位绑定探针/
}).
first
();
}
confirmCountBtn
(
root
?:
Locator
):
Locator
{
const
scope
=
root
??
this
.
page
;
return
scope
.
getByRole
(
'
button
'
,
{
name
:
/确
\s
*定/
}).
first
();
}
}
locators/spd/warehouse-probe.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from warehouse-probe-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/storehouse/storehouse/probe
# Scanned: 2026-10-20T09:05:17.123Z
# Page: 基础设置 > 库房管理 > 探针绑定
# Note: filter dropdown was opened during scan
page
:
warehouse-probe
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/storehouse/storehouse/probe
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_e5ba93e58cbae8aebee7bdae
:
description
:
"
库区设置"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
库区设置"
playwright
:
"
page.getByRole('menuitem',
{
name:
'库区设置'
})"
menu_el_e68ea2e99288e7bb91e5ae9a
:
description
:
"
探针绑定"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
探针绑定"
playwright
:
"
page.getByRole('menuitem',
{
name:
'探针绑定'
})"
menu_el_e58d8ee6b885e9809ae98193
:
description
:
"
华清通道"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
华清通道"
playwright
:
"
page.getByRole('menuitem',
{
name:
'华清通道'
})"
el_e68ea2e99288e7bb91e5ae9a
:
description
:
"
探针绑定"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
探针绑定"
playwright
:
"
page.getByText('探针绑定')"
tab_el_e68ea2e99288e7bb91e5ae9a
:
description
:
"
探针绑定"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/storehouse/storehouse/probe"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/storehouse/storehouse/probe')"
el_e68ea2e992884944Input
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
form_item_cname"
playwright
:
"
page.locator('#form_item_cname')"
el_e68ea2e992884944Input_2
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::main"
strategy
:
id
value
:
"
form_item_cname"
playwright
:
"
page.locator('#form_item_cname')"
el_e698afe590a6e7bb91e5ae9ae8b4a7e4bd8dSelect
:
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:
'重
置'
})"
tableDensity
:
description
:
"
column-height"
element_type
:
span
section
:
"
main::main"
strategy
:
label
value
:
"
column-height"
playwright
:
"
page.getByLabel('column-height')"
8Btn
:
description
:
"
28"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
28"
playwright
:
"
page.getByRole('button',
{
name:
'28'
})"
el_e7bb91e5ae9ae8b4a7e4bd8dBtn
:
description
:
"
绑定货位"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
绑定货位"
playwright
:
"
page.getByRole('button',
{
name:
'绑定货位'
})"
Btn
:
description
:
"
3"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
3"
playwright
:
"
page.getByRole('button',
{
name:
'3'
})"
# --- main::pagination ---
pagination_el_e585b13131e69da1313530e69da12fe9a1b5
:
description
:
"
共
11
条150
条/页"
element_type
:
ul
section
:
"
main::pagination"
strategy
:
text
value
:
"
共
11
条150
条/页"
playwright
:
"
page.getByText('共
11
条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:货位绑定探针 ---
el_e5bd93e5898de5ba93e688bfSelect
:
description
:
"
千泉山院区中心库房"
element_type
:
select
section
:
"
main::modal:货位绑定探针"
strategy
:
label_text
value
:
"
当前库房"
playwright
:
"
page.getByText('当前库房',
{
exact:
true
})"
el_e5bd93e5898de5ba93e688bfInput
:
description
:
"
当前库房"
element_type
:
search
section
:
"
main::modal:货位绑定探针"
strategy
:
id
value
:
"
form_item_deptId"
playwright
:
"
page.locator('#form_item_deptId')"
el_e5bd93e5898de5ba93e58cbaSelect
:
description
:
"
当前库区"
element_type
:
select
section
:
"
main::modal:货位绑定探针"
strategy
:
label_text
value
:
"
当前库区"
playwright
:
"
page.getByText('当前库区',
{
exact:
true
})"
el_e5bd93e5898de5ba93e58cbaInput
:
description
:
"
当前库区"
element_type
:
search
section
:
"
main::modal:货位绑定探针"
strategy
:
id
value
:
"
form_item_areaCode"
playwright
:
"
page.locator('#form_item_areaCode')"
el_e8b4a7e4bd8de69fa5e8afa2Input
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:货位绑定探针"
strategy
:
id
value
:
"
form_item_shelfNo"
playwright
:
"
page.locator('#form_item_shelfNo')"
el_e8b4a7e4bd8de78ab6e68081Select
:
description
:
"
货位状态"
element_type
:
select
section
:
"
main::modal:货位绑定探针"
strategy
:
label_text
value
:
"
货位状态"
playwright
:
"
page.getByText('货位状态',
{
exact:
true
})"
el_e9bb98e8aea4e8b4a7e4bd8dSelect
:
description
:
"
默认货位"
element_type
:
select
section
:
"
main::modal:货位绑定探针"
strategy
:
label_text
value
:
"
默认货位"
playwright
:
"
page.getByText('默认货位',
{
exact:
true
})"
el_e585b132363236e69da13132333435e280a2e280a2e280a235333530e69da12fe9a1b5e8b7b3e887b3e9a1b5
:
description
:
"
共
2626
条12345•••5350
条/页跳至页"
element_type
:
ul
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
共
2626
条12345•••5350
条/页跳至页"
playwright
:
"
page.getByText('共
2626
条12345•••5350
条/页跳至页')"
prevPageBtn
:
description
:
"
上一页"
element_type
:
li
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
上一页"
playwright
:
"
page.getByText('上一页')"
page_1
:
description
:
"
1"
element_type
:
pagination_item
section
:
"
main::modal:货位绑定探针"
strategy
:
css
value
:
"
.ant-pagination-item-active"
playwright
:
"
page.locator('.ant-pagination-item-active')"
page_2
:
description
:
"
2"
element_type
:
pagination_item
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
2"
playwright
:
"
page.getByText('2')"
page_3
:
description
:
"
3"
element_type
:
pagination_item
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
3"
playwright
:
"
page.getByText('3')"
page_4
:
description
:
"
4"
element_type
:
pagination_item
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
4"
playwright
:
"
page.getByText('4')"
page_5
:
description
:
"
5"
element_type
:
pagination_item
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
5"
playwright
:
"
page.getByText('5')"
el_e59091e5908e35e9a1b5
:
description
:
"
向后
5
页"
element_type
:
li
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
向后
5
页"
playwright
:
"
page.getByText('向后
5
页')"
page_53
:
description
:
"
53"
element_type
:
pagination_item
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
53"
playwright
:
"
page.getByText('53')"
nextPageBtn
:
description
:
"
下一页"
element_type
:
li
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
下一页"
playwright
:
"
page.getByText('下一页')"
pageSizeSelect
:
description
:
"
50
条/页"
element_type
:
select
section
:
"
main::modal:货位绑定探针"
strategy
:
text
value
:
"
50
条/页"
playwright
:
"
page.getByText('50
条/页')"
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)'
})"
locators/spd/warehouse-zone.locator.ts
0 → 100644
View file @
6a181bea
import
type
{
Locator
,
Page
}
from
'
@playwright/test
'
;
import
{
WhFlowSharedLocators
}
from
'
./wh-flow-shared.locator
'
;
/** 库区设置。选择器来自 locators/spd/warehouse-zone.locator.yaml */
export
class
WarehouseZoneLocators
extends
WhFlowSharedLocators
{
readonly
warehouseNameInput
:
Locator
;
readonly
zoneSearch
:
Locator
;
readonly
syncBtn
:
Locator
;
readonly
addBtn
:
Locator
;
readonly
tree
:
Locator
;
readonly
shelfNo
:
Locator
;
readonly
shelfName
:
Locator
;
readonly
address
:
Locator
;
readonly
cancelBtn
:
Locator
;
readonly
confirmBtn
:
Locator
;
constructor
(
page
:
Page
)
{
super
(
page
);
this
.
warehouseNameInput
=
page
.
getByPlaceholder
(
'
库房名称
'
);
this
.
zoneSearch
=
page
.
getByPlaceholder
(
'
库区编号/名称
'
);
this
.
syncBtn
=
page
.
getByRole
(
'
button
'
,
{
name
:
'
同步
'
});
this
.
addBtn
=
page
.
getByRole
(
'
button
'
,
{
name
:
/新
\s
*增/
});
this
.
tree
=
page
.
locator
(
'
.ant-tree
'
).
first
();
this
.
shelfNo
=
page
.
locator
(
'
#basic_shelfNo
'
);
this
.
shelfName
=
page
.
locator
(
'
#basic_shelfName
'
);
this
.
address
=
page
.
locator
(
'
#basic_address
'
);
this
.
cancelBtn
=
page
.
getByRole
(
'
button
'
,
{
name
:
/取
\s
*消/
});
this
.
confirmBtn
=
page
.
getByRole
(
'
button
'
,
{
name
:
/确
\s
*定/
});
}
treeTitles
():
Locator
{
return
this
.
tree
.
locator
(
'
.ant-tree-title
'
);
}
selectedTreeTitle
():
Locator
{
return
this
.
tree
.
locator
(
'
.ant-tree-treenode-selected .ant-tree-title
'
).
first
();
}
}
locators/spd/warehouse-zone.locator.yaml
0 → 100644
View file @
6a181bea
# Auto-generated from warehouse-zone-elements.json
# Source: http://spdtest.cmic.com.cn:8080/spd/basic/storehouse/platform/storehouse/area
# Scanned: 2026-10-20T09:08:25.864Z
# Page: 基础设置 > 库房管理 > 库区设置
# Note: dialog/modal was opened during scan
# Note: edit dialog was opened during scan
page
:
warehouse-zone
module
:
spd-basic
url
:
http://spdtest.cmic.com.cn:8080/spd/basic/storehouse/platform/storehouse/area
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_e5ba93e58cbae8aebee7bdae
:
description
:
"
库区设置"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
库区设置"
playwright
:
"
page.getByRole('menuitem',
{
name:
'库区设置'
})"
menu_el_e68ea2e99288e7bb91e5ae9a
:
description
:
"
探针绑定"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
探针绑定"
playwright
:
"
page.getByRole('menuitem',
{
name:
'探针绑定'
})"
menu_el_e58d8ee6b885e9809ae98193
:
description
:
"
华清通道"
element_type
:
li
section
:
"
main::main"
strategy
:
role
role
:
menuitem
name
:
"
华清通道"
playwright
:
"
page.getByRole('menuitem',
{
name:
'华清通道'
})"
el_e5ba93e58cbae8aebee7bdae
:
description
:
"
库区设置"
element_type
:
tab
section
:
"
main::main"
strategy
:
text
value
:
"
库区设置"
playwright
:
"
page.getByText('库区设置')"
tab_el_e5ba93e58cbae8aebee7bdae
:
description
:
"
库区设置"
element_type
:
div
section
:
"
main::main"
strategy
:
id
value
:
"
rc-tabs-0-tab-/basic/storehouse/platform/storehouse/area"
playwright
:
"
page.locator('#rc-tabs-0-tab-/basic/storehouse/platform/storehouse/area')"
el_e5908ce6ada5Btn
:
description
:
"
同步"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
同步"
playwright
:
"
page.getByRole('button',
{
name:
'同步'
})"
el_e5ba93e688bfe4bfa1e681afInput
:
description
:
"
库房名称"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
库房名称"
playwright
:
"
page.getByPlaceholder('库房名称')"
tree_node_e58589e8b0b7
:
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_e6b4aae5b1b1
:
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_31323035e999
:
description
:
"
1205院区中心库房"
element_type
:
tree_title
section
:
"
main::main"
strategy
:
tree_node
value
:
"
1205院区中心库房"
tree
:
"
.ant-tree"
playwright
:
"
page.locator('.ant-tree
.ant-tree-title').filter({
hasText:
/^
\\
s*1205院区中心库房
\\
s*$/
})"
tree_node_e7bb93e7ae97
:
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_e59b9ee5bd92
:
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_e5a4a9e5bf83
:
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_e58d83e6b389
:
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_e9a9ace78e8b
:
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_e4b8bbe999a2
:
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_e5b2b3e9ba93
:
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_e695b0e68dae
:
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_e4b89ce59c9f
:
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_e699bae883bd
:
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_e887aae58aa8
:
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*$/
})"
addBtn
:
description
:
"
新
增"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
新
增"
playwright
:
"
page.getByRole('button',
{
name:
'新
增'
})"
addInput
:
description
:
"
库区编号/名称"
element_type
:
text
section
:
"
main::main"
strategy
:
placeholder
value
:
"
库区编号/名称"
playwright
:
"
page.getByPlaceholder('库区编号/名称')"
el_e5ba93e688bfe4bfa1e681af
:
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_e4babae59198e7aea1e79086Btn
:
description
:
"
人员管理"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
人员管理"
playwright
:
"
page.getByRole('button',
{
name:
'人员管理'
})"
el_e8b4a7e4bd8de7aea1e79086Btn
:
description
:
"
货位管理"
element_type
:
button
section
:
"
main::main"
strategy
:
role
role
:
button
name
:
"
货位管理"
playwright
:
"
page.getByRole('button',
{
name:
'货位管理'
})"
disableBtn
:
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_e5ba93e688bfe4bfa1e681af
:
description
:
"
共
5
条150
条/页"
element_type
:
ul
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
库房信息"
playwright
:
"
page.getByText('库房信息',
{
exact:
true
})"
pagination_prevPageBtn
:
description
:
"
上一页"
element_type
:
li
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
库房信息"
playwright
:
"
page.getByText('库房信息',
{
exact:
true
})"
pagination_el_e5ba93e688bfe4bfa1e681afBtn
:
description
:
"
库房信息"
element_type
:
button
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
库房信息"
playwright
:
"
page.getByText('库房信息',
{
exact:
true
})"
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
:
label_text
value
:
"
库房信息"
playwright
:
"
page.getByText('库房信息',
{
exact:
true
})"
pagination_pageSizeSelect
:
description
:
"
50
条/页"
element_type
:
select
section
:
"
main::pagination"
strategy
:
label_text
value
:
"
库房信息"
playwright
:
"
page.getByText('库房信息',
{
exact:
true
})"
# --- main::modal:新增库区 ---
el_e5ba93e58cbae7bc96e58fb7Input
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:新增库区"
strategy
:
id
value
:
"
basic_shelfNo"
playwright
:
"
page.locator('#basic_shelfNo')"
storageAreaInput
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:新增库区"
strategy
:
id
value
:
"
basic_shelfName"
playwright
:
"
page.locator('#basic_shelfName')"
el_e5ba93e58cbae59cb0e59d80Input
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:新增库区"
strategy
:
id
value
:
"
basic_address"
playwright
:
"
page.locator('#basic_address')"
el_e590a6
:
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_e88194e7b3bbe4babaSelect
:
description
:
"
联系人"
element_type
:
select
section
:
"
main::modal:新增库区"
strategy
:
label_text
value
:
"
联系人"
playwright
:
"
page.getByText('联系人',
{
exact:
true
})"
el_e88194e7b3bbe4babaInput
:
description
:
"
联系人"
element_type
:
search
section
:
"
main::modal:新增库区"
strategy
:
id
value
:
"
basic_linkman"
playwright
:
"
page.locator('#basic_linkman')"
el_e88194e7b3bbe696b9e5bc8fInput
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:新增库区"
strategy
:
id
value
:
"
basic_recPhone"
playwright
:
"
page.locator('#basic_recPhone')"
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:编辑库区信息 ---
el_e5ba93e58cbae7bc96e58fb7Input_2
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:编辑库区信息"
strategy
:
id
value
:
"
basic_shelfNo"
playwright
:
"
page.locator('#basic_shelfNo')"
storageAreaInput_2
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:编辑库区信息"
strategy
:
id
value
:
"
basic_shelfName"
playwright
:
"
page.locator('#basic_shelfName')"
el_e5ba93e58cbae59cb0e59d80Input_2
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:编辑库区信息"
strategy
:
id
value
:
"
basic_address"
playwright
:
"
page.locator('#basic_address')"
el_e590a6_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_e88194e7b3bbe4babaSelect_2
:
description
:
"
蒋中心库"
element_type
:
select
section
:
"
main::modal:编辑库区信息"
strategy
:
label_text
value
:
"
联系人"
playwright
:
"
page.getByText('联系人',
{
exact:
true
})"
el_e88194e7b3bbe4babaInput_2
:
description
:
"
联系人"
element_type
:
search
section
:
"
main::modal:编辑库区信息"
strategy
:
id
value
:
"
basic_linkman"
playwright
:
"
page.locator('#basic_linkman')"
el_e88194e7b3bbe696b9e5bc8fInput_2
:
description
:
"
请输入"
element_type
:
text
section
:
"
main::modal:编辑库区信息"
strategy
:
id
value
:
"
basic_recPhone"
playwright
:
"
page.locator('#basic_recPhone')"
locators/spd/wh-flow-shared.locator.ts
0 → 100644
View file @
6a181bea
import
type
{
Locator
,
Page
}
from
'
@playwright/test
'
;
/** 库房管理 / 流程设置共用。叶子菜单是 .ant-menu-item。 */
export
class
WhFlowSharedLocators
{
readonly
menuBasic
:
Locator
;
readonly
tableHeader
:
Locator
;
readonly
empty
:
Locator
;
readonly
paginationTotal
:
Locator
;
readonly
nextPage
:
Locator
;
readonly
prevPage
:
Locator
;
readonly
formError
:
Locator
;
constructor
(
protected
readonly
page
:
Page
)
{
this
.
menuBasic
=
page
.
getByRole
(
'
menuitem
'
,
{
name
:
'
基础设置
'
});
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
.
prevPage
=
page
.
locator
(
'
.ant-pagination-prev
'
).
first
();
this
.
formError
=
page
.
locator
(
'
.ant-form-item-explain-error, .ant-message-notice, .ant-notification-notice
'
);
}
groupSubmenuTitle
(
name
:
string
):
Locator
{
return
this
.
page
.
locator
(
'
.ant-menu-submenu-title
'
).
filter
({
hasText
:
new
RegExp
(
`^\\s*
${
name
}
\\s*$`
)
});
}
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
});
}
putPage
():
Locator
{
return
this
.
page
.
locator
(
'
.put-page
'
).
last
();
}
dialog
():
Locator
{
return
this
.
page
.
locator
(
'
.ant-modal-wrap .ant-modal:visible, .ant-drawer-open
'
).
last
();
}
}
package.json
View file @
6a181bea
...
...
@@ -24,6 +24,9 @@
"test:page"
:
"node scripts/run-page.mjs"
,
"suites"
:
"node scripts/run-ci.mjs --list"
,
"flake:report"
:
"node scripts/flake-report.mjs"
,
"failures:report"
:
"node scripts/failure-report.mjs"
,
"quarantine:sync"
:
"node scripts/sync-quarantine.mjs"
,
"quarantine:apply"
:
"node scripts/sync-quarantine.mjs --write"
,
"email:summary"
:
"node scripts/ci-email-summary.mjs"
,
"test:quarantine"
:
"node scripts/run-ci.mjs --suite=quarantine"
,
"test:smoke"
:
"playwright test tests/spd/login.spec.ts tests/spd/home.spec.ts --grep @smoke"
,
...
...
@@ -84,9 +87,78 @@
"discover:scan-invoice-trace"
:
"node scripts/scan-invoice-trace-batch.mjs"
,
"discover:scan-consume"
:
"node scripts/scan-consume-batch.mjs"
,
"discover:scan-extended"
:
"node scripts/scan-extended-report-batch.mjs"
,
"discover:scan-admit"
:
"node scripts/scan-admit-batch.mjs"
,
"discover:scan-basic"
:
"node scripts/scan-basic-batch.mjs"
,
"discover:scan-vendor"
:
"node scripts/scan-vendor-batch.mjs"
,
"discover:scan-surgery"
:
"node scripts/scan-surgery-batch.mjs"
,
"discover:scan-user"
:
"node scripts/scan-user-batch.mjs"
,
"discover:scan-warehouse"
:
"node scripts/scan-wh-flow-batch.mjs warehouse-zone warehouse-probe"
,
"discover:scan-flow"
:
"node scripts/scan-wh-flow-batch.mjs flow-def flow-inst"
,
"discover:scan-wh-flow"
:
"node scripts/scan-wh-flow-batch.mjs"
,
"discover:yaml-from-json-basic"
:
"node scripts/json-to-locator-yaml.mjs --all-new"
,
"generate:testpoints-vendor"
:
"python3 scripts/generate-vendor-testpoints.py"
,
"generate:testpoints-user"
:
"python3 scripts/generate-user-testpoints.py"
,
"generate:testpoints-warehouse"
:
"python3 scripts/generate-wh-flow-testpoints.py warehouse-zone warehouse-probe"
,
"generate:testpoints-flow"
:
"python3 scripts/generate-wh-flow-testpoints.py flow-def flow-inst"
,
"generate:testpoints-wh-flow"
:
"python3 scripts/generate-wh-flow-testpoints.py"
,
"generate:md-user"
:
"python3 scripts/generate-user-md.py"
,
"generate:md-wh-flow"
:
"python3 scripts/generate-wh-flow-md.py"
,
"generate:md-csv-wh-flow"
:
"python3 scripts/generate-wh-flow-md.py"
,
"test:warehouse-zone"
:
"playwright test tests/spd/warehouse-zone.spec.ts --project=chromium --grep @smoke"
,
"test:warehouse-zone:all"
:
"playwright test tests/spd/warehouse-zone.spec.ts --project=chromium --workers=1"
,
"test:warehouse-probe"
:
"playwright test tests/spd/warehouse-probe.spec.ts --project=chromium --grep @smoke"
,
"test:warehouse-probe:all"
:
"playwright test tests/spd/warehouse-probe.spec.ts --project=chromium --workers=1"
,
"test:flow-def"
:
"playwright test tests/spd/flow-def.spec.ts --project=chromium --grep @smoke"
,
"test:flow-def:all"
:
"playwright test tests/spd/flow-def.spec.ts --project=chromium --workers=1"
,
"test:flow-inst"
:
"playwright test tests/spd/flow-inst.spec.ts --project=chromium --grep @smoke"
,
"test:flow-inst:all"
:
"playwright test tests/spd/flow-inst.spec.ts --project=chromium --workers=1"
,
"test:wh-flow:smoke"
:
"playwright test tests/spd/warehouse-zone.spec.ts tests/spd/warehouse-probe.spec.ts tests/spd/flow-def.spec.ts tests/spd/flow-inst.spec.ts --project=chromium --grep @smoke --workers=1"
,
"test:wh-flow:all"
:
"playwright test tests/spd/warehouse-zone.spec.ts tests/spd/warehouse-probe.spec.ts tests/spd/flow-def.spec.ts tests/spd/flow-inst.spec.ts --project=chromium --workers=1"
,
"assert:wh-flow-csv-spec"
:
"node scripts/assert-wh-flow-csv-spec-sync.mjs"
,
"assert:wh-flow-isolation"
:
"node scripts/assert-vendor-no-reuse-open.mjs"
,
"generate:md-csv-user"
:
"python3 scripts/generate-user-md.py"
,
"test:basic-user"
:
"playwright test tests/spd/basic-user.spec.ts --project=chromium --grep @smoke"
,
"test:basic-user:all"
:
"playwright test tests/spd/basic-user.spec.ts --project=chromium --workers=1"
,
"test:basic-user-union"
:
"playwright test tests/spd/basic-user-union.spec.ts --project=chromium --grep @smoke"
,
"test:basic-user-union:all"
:
"playwright test tests/spd/basic-user-union.spec.ts --project=chromium --workers=1"
,
"test:basic-role"
:
"playwright test tests/spd/basic-role.spec.ts --project=chromium --grep @smoke"
,
"test:basic-role:all"
:
"playwright test tests/spd/basic-role.spec.ts --project=chromium --workers=1"
,
"test:user:smoke"
:
"playwright test tests/spd/basic-user.spec.ts tests/spd/basic-user-union.spec.ts tests/spd/basic-role.spec.ts --project=chromium --grep @smoke --workers=1"
,
"test:user:all"
:
"playwright test tests/spd/basic-user.spec.ts tests/spd/basic-user-union.spec.ts tests/spd/basic-role.spec.ts --project=chromium --workers=1"
,
"assert:user-csv-spec"
:
"node scripts/assert-user-csv-spec-sync.mjs"
,
"assert:basic-csv-spec"
:
"node scripts/assert-basic-csv-spec-sync.mjs"
,
"test:vendor-query"
:
"playwright test tests/spd/vendor-query.spec.ts --project=chromium --grep @smoke"
,
"test:vendor-query:all"
:
"playwright test tests/spd/vendor-query.spec.ts --project=chromium --workers=1"
,
"test:vendor-qual"
:
"playwright test tests/spd/vendor-qual.spec.ts --project=chromium --grep @smoke"
,
"test:vendor-qual:all"
:
"playwright test tests/spd/vendor-qual.spec.ts --project=chromium --workers=1"
,
"test:vendor:smoke"
:
"playwright test tests/spd/vendor-query.spec.ts tests/spd/vendor-qual.spec.ts tests/spd/vendor-audit.spec.ts tests/spd/vendor-cert-diff.spec.ts tests/spd/vendor-eval-scheme.spec.ts tests/spd/vendor-eval-indicator.spec.ts tests/spd/vendor-holiday.spec.ts --project=chromium --grep @smoke --workers=1"
,
"test:vendor-audit:smoke"
:
"playwright test tests/spd/vendor-audit.spec.ts --project=chromium --grep @smoke --workers=1"
,
"test:vendor-audit:all"
:
"playwright test tests/spd/vendor-audit.spec.ts --project=chromium --workers=1"
,
"test:vendor-cert-diff"
:
"playwright test tests/spd/vendor-cert-diff.spec.ts --project=chromium --grep @smoke"
,
"test:vendor-cert-diff:all"
:
"playwright test tests/spd/vendor-cert-diff.spec.ts --project=chromium --workers=1"
,
"test:vendor-eval-scheme"
:
"playwright test tests/spd/vendor-eval-scheme.spec.ts --project=chromium --grep @smoke"
,
"test:vendor-eval-scheme:all"
:
"playwright test tests/spd/vendor-eval-scheme.spec.ts --project=chromium --workers=1"
,
"test:vendor-eval-indicator"
:
"playwright test tests/spd/vendor-eval-indicator.spec.ts --project=chromium --grep @smoke"
,
"test:vendor-eval-indicator:all"
:
"playwright test tests/spd/vendor-eval-indicator.spec.ts --project=chromium --workers=1"
,
"test:vendor-holiday"
:
"playwright test tests/spd/vendor-holiday.spec.ts --project=chromium --grep @smoke"
,
"test:vendor-holiday:all"
:
"playwright test tests/spd/vendor-holiday.spec.ts --project=chromium --workers=1"
,
"generate:md-csv-vendor"
:
"python3 scripts/generate-vendor-md-csv.py"
,
"assert:vendor-csv-spec"
:
"node scripts/assert-vendor-csv-spec-sync.mjs"
,
"assert:vendor-isolation"
:
"node scripts/assert-vendor-no-reuse-open.mjs"
,
"test:surgery-base-pkg"
:
"playwright test tests/spd/surgery-base-pkg.spec.ts --project=chromium --grep @smoke"
,
"test:surgery-base-pkg:all"
:
"playwright test tests/spd/surgery-base-pkg.spec.ts --project=chromium --workers=1"
,
"test:surgery-oper-type"
:
"playwright test tests/spd/surgery-oper-type.spec.ts --project=chromium --grep @smoke"
,
"test:surgery-oper-type:all"
:
"playwright test tests/spd/surgery-oper-type.spec.ts --project=chromium --workers=1"
,
"test:surgery-std-pkg"
:
"playwright test tests/spd/surgery-std-pkg.spec.ts --project=chromium --grep @smoke"
,
"test:surgery-std-pkg:all"
:
"playwright test tests/spd/surgery-std-pkg.spec.ts --project=chromium --workers=1"
,
"test:surgery:smoke"
:
"playwright test tests/spd/surgery-base-pkg.spec.ts tests/spd/surgery-oper-type.spec.ts tests/spd/surgery-std-pkg.spec.ts --project=chromium --grep @smoke --workers=1"
,
"test:surgery:all"
:
"playwright test tests/spd/surgery-base-pkg.spec.ts tests/spd/surgery-oper-type.spec.ts tests/spd/surgery-std-pkg.spec.ts --project=chromium --workers=1"
,
"assert:surgery-csv-spec"
:
"node scripts/assert-surgery-csv-spec-sync.mjs"
,
"test:vendor:all"
:
"playwright test tests/spd/vendor-query.spec.ts tests/spd/vendor-qual.spec.ts tests/spd/vendor-audit.spec.ts tests/spd/vendor-cert-diff.spec.ts tests/spd/vendor-eval-scheme.spec.ts tests/spd/vendor-eval-indicator.spec.ts tests/spd/vendor-holiday.spec.ts --project=chromium --workers=1"
,
"discover:yaml-from-json"
:
"node scripts/json-to-locator-yaml.mjs --all-extended"
,
"update:ui-specs-extended"
:
"python3 scripts/update-extended-ui-specs.py"
,
"update:ui-specs-consume"
:
"python3 scripts/update-consume-ui-specs.py"
,
"sync:ui-specs-user"
:
"python3 scripts/sync-docs-ui-specs.py --only USER-001,USER-002,USER-003"
,
"generate:testpoints-invoice-trace"
:
"python3 scripts/generate-invoice-trace-testpoints.py"
,
"generate:testpoints-consume"
:
"python3 scripts/generate-consume-testpoints.py"
,
"generate:testpoints-extended"
:
"python3 scripts/generate-extended-testpoints.py"
,
...
...
pages/spd/admit-material-list.page.ts
0 → 100644
View file @
6a181bea
import
{
expect
,
type
Page
}
from
'
@playwright/test
'
;
import
{
admitData
}
from
'
../../data/admit.data
'
;
import
{
AdmitSharedPage
}
from
'
./admit-shared.page
'
;
/** 物料准入单列表。详情里的「通过」只取消,不确认审批。 */
export
class
AdmitMaterialListPage
extends
AdmitSharedPage
{
constructor
(
page
:
Page
)
{
super
(
page
,
{
path
:
admitData
.
materialListPath
,
pathPart
:
'
productOrder/zrlist
'
,
menu
:
admitData
.
menuMaterialList
,
forbidden
:
[
'
supplyApply/
'
,
'
accessKind/
'
,
'
productApply/
'
],
});
}
async
expectEntered
():
Promise
<
void
>
{
await
this
.
expectOnPage
();
expect
(
this
.
page
.
url
()).
toContain
(
'
zrlist
'
);
await
expect
(
this
.
tab
(
'
已通过
'
)).
toBeVisible
();
}
async
filterByOrderOrFallback
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
queryByFirstAvailable
([
{
column
:
'
准入单号
'
,
filter
:
'
准入单号
'
,
kind
:
'
input
'
},
{
column
:
'
注册证号
'
,
filter
:
'
注册证号
'
,
kind
:
'
input
'
},
{
column
:
'
产品名称
'
,
filter
:
'
产品名称
'
,
kind
:
'
input
'
},
{
column
:
'
器械注册人
'
,
filter
:
'
器械注册人
'
,
kind
:
'
input
'
},
]);
}
async
resetFilters
():
Promise
<
void
>
{
await
this
.
query
();
const
filled
=
await
this
.
fillFirstVisibleFilter
();
await
this
.
reset
();
if
(
filled
)
await
this
.
expectInputCleared
(
filled
);
await
this
.
expectListOrEmpty
();
}
async
mockEmpty
():
Promise
<
void
>
{
const
cert
=
this
.
textInput
(
'
注册证号
'
);
if
(
await
cert
.
isVisible
().
catch
(()
=>
false
))
{
await
this
.
fillFilter
(
'
注册证号
'
,
admitData
.
mockCert
);
}
else
{
await
this
.
fillFilter
(
'
产品名称
'
,
admitData
.
mockGoods
);
}
await
this
.
query
();
await
this
.
expectMockEmpty
();
}
async
expectCoreColumns
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
expectHeaders
([
'
准入类型
'
,
'
准入单号
'
,
'
进院供应商
'
,
'
产品名称
'
,
'
注册证号
'
,
'
耗材类型
'
,
'
产品条数
'
,
'
状态
'
,
'
操作
'
]);
await
expect
(
this
.
rowAction
(
await
this
.
firstRow
(),
'
详情
'
)).
toBeVisible
();
}
async
switchPassed
():
Promise
<
void
>
{
await
this
.
clickTabAndMatchCount
(
'
已通过
'
);
await
expect
(
this
.
tab
(
'
已通过
'
)).
toHaveClass
(
/ant-tabs-tab-active/
);
}
async
detailAndBack
():
Promise
<
void
>
{
await
this
.
query
();
const
row
=
await
this
.
firstRow
();
const
order
=
await
this
.
tryCell
(
row
,
'
准入单号
'
);
await
this
.
openPutFromRow
(
row
,
'
详情
'
);
if
(
order
)
await
expect
(
this
.
put
()).
toContainText
(
order
.
slice
(
0
,
8
));
await
expect
(
this
.
put
().
getByText
(
'
审批进程
'
).
first
()).
toBeVisible
();
await
this
.
leaveWithoutCommit
();
}
async
detailCountMatches
():
Promise
<
void
>
{
await
this
.
query
();
const
row
=
await
this
.
firstRow
();
const
countText
=
(
await
this
.
cellText
(
row
,
'
产品条数
'
)).
replace
(
/
\s
/g
,
''
);
await
this
.
openPutFromRow
(
row
,
'
详情
'
);
await
expect
(
this
.
put
()).
toContainText
(
countText
);
await
this
.
leaveWithoutCommit
();
}
async
openApproval
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
openPutFromRow
(
await
this
.
firstRow
(),
'
详情
'
);
await
this
.
openDetailSection
(
'
审批进程
'
);
await
this
.
leaveWithoutCommit
();
}
async
exportDetail
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
openPutFromRow
(
await
this
.
firstRow
(),
'
详情
'
);
const
exp
=
this
.
button
(
'
导出
'
,
this
.
put
()).
first
();
if
(
!
(
await
exp
.
isVisible
().
catch
(()
=>
false
)))
{
await
this
.
leaveWithoutCommit
();
await
this
.
skipWhenDataInsufficient
(
'
详情无导出
'
);
}
await
this
.
click
(
exp
,
'
导出
'
);
await
this
.
assertPageHealthy
(
'
详情导出
'
);
expect
(
this
.
page
.
url
()).
not
.
toMatch
(
/
\/
login/
);
await
expect
(
this
.
put
().
getByRole
(
'
button
'
,
{
name
:
/返
\s
*回/
}).
first
()).
toBeVisible
();
await
this
.
leaveWithoutCommit
();
}
async
detailSearchMock
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
openPutFromRow
(
await
this
.
firstRow
(),
'
详情
'
);
const
input
=
this
.
putInput
(
'
产品名称
'
);
const
target
=
(
await
input
.
isVisible
().
catch
(()
=>
false
))
?
input
:
this
.
put
().
locator
(
'
input
'
).
first
();
await
this
.
fill
(
target
,
admitData
.
mockGoods
,
'
详情搜索 mock
'
);
const
query
=
this
.
button
(
'
查询
'
,
this
.
put
()).
first
();
if
(
await
query
.
isVisible
().
catch
(()
=>
false
))
await
this
.
click
(
query
,
'
详情查询
'
);
await
this
.
waitForTableReady
();
const
empty
=
await
this
.
put
().
getByText
(
'
暂无数据
'
).
first
().
isVisible
().
catch
(()
=>
false
);
const
rows
=
await
this
.
put
().
locator
(
'
.ant-table-tbody > tr.ant-table-row
'
).
count
();
expect
(
empty
||
rows
===
0
,
'
详情无匹配应空态
'
).
toBeTruthy
();
await
this
.
leaveWithoutCommit
();
}
async
passedNotConfirm
():
Promise
<
void
>
{
await
this
.
skipIfTabEmpty
(
'
已通过
'
);
const
row
=
await
this
.
firstRow
();
const
order
=
await
this
.
tryCell
(
row
,
'
准入单号
'
);
await
this
.
openPutFromRow
(
row
,
'
详情
'
);
const
pass
=
this
.
button
(
'
通过
'
,
this
.
put
()).
first
();
const
visible
=
await
pass
.
isVisible
().
catch
(()
=>
false
);
const
disabled
=
visible
&&
((
await
pass
.
isDisabled
().
catch
(()
=>
false
))
||
((
await
pass
.
getAttribute
(
'
class
'
))
??
''
).
includes
(
'
disabled
'
));
if
(
!
visible
||
disabled
)
{
await
this
.
leaveWithoutCommit
();
}
else
{
await
this
.
click
(
pass
,
'
通过
'
);
const
confirm
=
this
.
page
.
locator
(
'
.ant-modal-confirm:visible, .ant-modal:visible
'
).
last
();
if
(
await
confirm
.
isVisible
().
catch
(()
=>
false
))
{
await
this
.
click
(
confirm
.
getByRole
(
'
button
'
,
{
name
:
/取
\s
*消/
}).
first
(),
'
取消通过
'
);
}
await
this
.
leaveWithoutCommit
();
}
await
this
.
clickTab
(
'
已通过
'
);
if
(
order
)
await
expect
(
this
.
page
.
getByText
(
order
.
slice
(
0
,
10
)).
first
()).
toBeVisible
();
}
private
async
fillFirstVisibleFilter
():
Promise
<
string
>
{
for
(
const
label
of
[
'
注册证号
'
,
'
产品名称
'
,
'
器械注册人
'
])
{
if
(
await
this
.
textInput
(
label
).
isVisible
().
catch
(()
=>
false
))
{
await
this
.
fillFilter
(
label
,
'
样
'
);
return
label
;
}
}
return
''
;
}
/** 组合查询:一次性填满筛选区全部字段后查询(字段以现网搜索条为准)。 */
async
filterCombination
():
Promise
<
void
>
{
const
scope
=
await
this
.
queryScope
();
await
this
.
applyFilterCombination
(
[
{
label
:
'
制单日期
'
,
kind
:
'
dateRange
'
,
value
:
'
样本
'
},
{
label
:
'
销售商
'
,
kind
:
'
text
'
,
value
:
'
样本
'
},
{
label
:
'
耗材类型
'
,
kind
:
'
select
'
,
value
:
'
样本
'
},
{
label
:
'
器械注册人
'
,
kind
:
'
text
'
,
value
:
'
样本
'
},
{
label
:
'
注册证号
'
,
kind
:
'
text
'
,
value
:
'
样本
'
},
{
label
:
'
供应商
'
,
kind
:
'
text
'
,
value
:
'
样本
'
},
],
{
scope
},
);
}
}
pages/spd/admit-material.page.ts
0 → 100644
View file @
6a181bea
import
{
expect
,
type
Page
}
from
'
@playwright/test
'
;
import
{
admitData
}
from
'
../../data/admit.data
'
;
import
{
AdmitSharedPage
}
from
'
./admit-shared.page
'
;
/** 物料准入管理。写操作只取消,不确认生成/作废/关联。 */
export
class
AdmitMaterialPage
extends
AdmitSharedPage
{
constructor
(
page
:
Page
)
{
super
(
page
,
{
path
:
admitData
.
materialPath
,
pathPart
:
'
productApply/ZRlist
'
,
menu
:
admitData
.
menuMaterial
,
forbidden
:
[
'
productOrder/
'
,
'
supplyApply/
'
,
'
accessKind/
'
],
});
}
async
expectEntered
():
Promise
<
void
>
{
await
this
.
expectOnPage
();
expect
(
this
.
page
.
url
()).
toContain
(
'
ZRlist
'
);
for
(
const
name
of
[
'
关联产品
'
,
'
生成申请单
'
,
'
一键生成
'
,
'
作废
'
])
{
await
expect
(
this
.
button
(
name
).
first
(),
name
).
toBeVisible
();
}
await
expect
(
this
.
tab
(
'
待申请
'
)).
toBeVisible
();
}
async
filterByProductName
():
Promise
<
void
>
{
await
this
.
query
();
const
name
=
await
this
.
sampleCell
(
'
产品名称
'
);
await
this
.
fillFilter
(
'
产品名称
'
,
name
.
slice
(
0
,
40
));
await
this
.
query
();
await
this
.
expectRowsContain
(
'
产品名称
'
,
name
);
}
async
filterByGoodsType
():
Promise
<
void
>
{
await
this
.
query
();
const
type
=
await
this
.
sampleCell
(
'
耗材类型
'
);
await
this
.
chooseSelect
(
'
耗材类型
'
,
type
);
await
this
.
query
();
await
this
.
expectRowsContain
(
'
耗材类型
'
,
type
);
}
async
filterByNameAndType
():
Promise
<
void
>
{
await
this
.
query
();
const
name
=
await
this
.
sampleCell
(
'
产品名称
'
);
const
type
=
await
this
.
sampleCell
(
'
耗材类型
'
);
await
this
.
fillFilter
(
'
产品名称
'
,
name
.
slice
(
0
,
40
));
await
this
.
chooseSelect
(
'
耗材类型
'
,
type
);
await
this
.
query
();
await
this
.
expectRowsContain
(
'
产品名称
'
,
name
);
await
this
.
expectRowsContain
(
'
耗材类型
'
,
type
);
}
async
resetFilters
():
Promise
<
void
>
{
await
this
.
query
();
const
name
=
await
this
.
sampleCell
(
'
产品名称
'
);
await
this
.
fillFilter
(
'
产品名称
'
,
name
.
slice
(
0
,
20
));
await
this
.
reset
();
await
this
.
expectInputCleared
(
'
产品名称
'
);
await
this
.
expectListOrEmpty
();
}
async
collapseKeepsName
():
Promise
<
void
>
{
await
this
.
query
();
const
name
=
await
this
.
sampleCell
(
'
产品名称
'
);
await
this
.
collapseKeeps
(
'
产品名称
'
,
name
.
slice
(
0
,
20
));
}
async
mockEmptyName
():
Promise
<
void
>
{
await
this
.
fillFilter
(
'
产品名称
'
,
admitData
.
mockGoods
);
await
this
.
query
();
await
this
.
expectMockEmpty
();
}
async
expectCoreColumns
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
expectHeaders
([
'
准入类型
'
,
'
产品编号
'
,
'
产品名称
'
,
'
规格型号
'
,
'
规格
'
,
'
型号
'
,
'
器械注册人
'
,
'
单位
'
,
'
耗材类型
'
,
'
默认进院供应商
'
,
'
操作
'
,
]);
const
row
=
await
this
.
firstRow
();
await
expect
(
this
.
rowAction
(
row
,
'
详情
'
)).
toBeVisible
();
}
async
switchPending
():
Promise
<
void
>
{
await
this
.
clickTab
(
'
待申请
'
);
await
expect
(
this
.
tab
(
'
待申请
'
)).
toHaveClass
(
/ant-tabs-tab-active/
);
await
this
.
expectListOrEmpty
();
}
async
pendingCountMatches
():
Promise
<
void
>
{
await
this
.
clickTabAndMatchCount
(
'
待申请
'
);
}
async
generateNeedsSelection
():
Promise
<
void
>
{
await
this
.
expectNeedsSelection
(
'
生成申请单
'
);
}
async
detailAndBack
():
Promise
<
void
>
{
await
this
.
query
();
const
row
=
await
this
.
firstRow
();
const
name
=
await
this
.
cellText
(
row
,
'
产品名称
'
);
await
this
.
openPutFromRow
(
row
,
'
详情
'
);
await
expect
(
this
.
put
()).
toContainText
(
name
.
slice
(
0
,
8
));
await
this
.
leaveWithoutCommit
();
await
expect
(
this
.
button
(
'
查询
'
).
first
()).
toBeVisible
();
}
async
detailReadonly
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
openPutFromRow
(
await
this
.
firstRow
(),
'
详情
'
);
const
save
=
this
.
button
(
'
保存
'
,
this
.
put
());
expect
(
await
save
.
count
(),
'
详情不应提供保存
'
).
toBe
(
0
);
const
nameInput
=
this
.
putInput
(
'
产品名称
'
);
if
(
await
nameInput
.
isVisible
().
catch
(()
=>
false
))
{
await
expect
(
nameInput
).
toBeDisabled
();
}
await
this
.
leaveWithoutCommit
();
}
async
editBackfill
():
Promise
<
void
>
{
await
this
.
clickTab
(
'
待申请
'
);
const
row
=
await
this
.
skipIfNoAction
(
'
编辑
'
,
'
待申请无编辑
'
);
const
name
=
await
this
.
cellText
(
row
,
'
产品名称
'
);
const
spec
=
await
this
.
tryCell
(
row
,
'
规格型号
'
);
await
this
.
openPutFromRow
(
row
,
'
编辑
'
);
await
expect
(
this
.
putInput
(
'
产品名称
'
)).
toHaveValue
(
name
);
if
(
spec
&&
(
await
this
.
putInput
(
'
规格型号
'
).
isVisible
().
catch
(()
=>
false
)))
{
await
expect
(
this
.
putInput
(
'
规格型号
'
)).
toHaveValue
(
spec
);
}
await
this
.
leaveWithoutCommit
();
}
async
editCancel
():
Promise
<
void
>
{
await
this
.
clickTab
(
'
待申请
'
);
const
row
=
await
this
.
skipIfNoAction
(
'
编辑
'
,
'
待申请无编辑
'
);
const
name
=
await
this
.
cellText
(
row
,
'
产品名称
'
);
await
this
.
openPutFromRow
(
row
,
'
编辑
'
);
const
input
=
this
.
putInput
(
'
产品名称
'
);
await
this
.
fill
(
input
,
`
${
name
}
-取消`
,
'
临时改名
'
);
await
this
.
leaveWithoutCommit
();
await
this
.
clickTab
(
'
待申请
'
);
const
again
=
await
this
.
skipIfNoAction
(
'
编辑
'
,
'
待申请无编辑
'
);
await
this
.
openPutFromRow
(
again
,
'
编辑
'
);
await
expect
(
this
.
putInput
(
'
产品名称
'
)).
toHaveValue
(
name
);
await
this
.
leaveWithoutCommit
();
}
async
editClearName
():
Promise
<
void
>
{
await
this
.
clickTab
(
'
待申请
'
);
const
row
=
await
this
.
skipIfNoAction
(
'
编辑
'
,
'
待申请无编辑
'
);
const
name
=
await
this
.
cellText
(
row
,
'
产品名称
'
);
await
this
.
openPutFromRow
(
row
,
'
编辑
'
);
await
this
.
fill
(
this
.
putInput
(
'
产品名称
'
),
''
,
'
清空产品名称
'
);
await
this
.
saveOnPut
();
await
this
.
expectBlockedAndStay
();
await
this
.
leaveWithoutCommit
();
await
this
.
clickTab
(
'
待申请
'
);
const
again
=
await
this
.
rowWithAction
(
'
编辑
'
);
expect
(
again
,
'
取消后原行仍应可编辑
'
).
toBeTruthy
();
await
this
.
openPutFromRow
(
again
as
NonNullable
<
typeof
again
>
,
'
编辑
'
);
await
expect
(
this
.
putInput
(
'
产品名称
'
)).
toHaveValue
(
name
);
await
this
.
leaveWithoutCommit
();
}
async
effectiveNoEdit
():
Promise
<
void
>
{
await
this
.
skipIfTabEmpty
(
'
已生效
'
);
const
edit
=
(
await
this
.
listRows
()).
getByRole
(
'
button
'
,
{
name
:
/编
\s
*辑/
});
expect
(
await
edit
.
count
(),
'
已生效行不应提供编辑
'
).
toBe
(
0
);
}
async
relateCancel
():
Promise
<
void
>
{
await
this
.
query
();
const
total
=
await
this
.
getTotalCount
();
const
supplier
=
await
this
.
cellText
(
await
this
.
firstRow
(),
'
默认进院供应商
'
);
await
this
.
clickToolbarThenCancel
(
'
关联产品
'
);
expect
(
await
this
.
getTotalCount
(),
'
取消关联后总数不变
'
).
toBe
(
total
);
expect
(
await
this
.
cellText
(
await
this
.
firstRow
(),
'
默认进院供应商
'
)).
toBe
(
supplier
);
}
async
voidCancel
():
Promise
<
void
>
{
await
this
.
query
();
const
voidBefore
=
await
this
.
readTabCount
(
'
已作废
'
);
const
row
=
await
this
.
checkFirstRow
();
const
name
=
await
this
.
cellText
(
row
,
'
产品名称
'
);
await
this
.
clickButton
(
'
作废
'
);
const
confirm
=
this
.
page
.
locator
(
'
.ant-modal-confirm:visible, .ant-modal:visible
'
).
last
();
await
expect
(
confirm
,
'
作废应出现确认框
'
).
toBeVisible
();
await
expect
(
confirm
.
getByRole
(
'
button
'
,
{
name
:
/取
\s
*消/
})).
toBeVisible
();
await
expect
(
confirm
.
getByRole
(
'
button
'
,
{
name
:
/确
\s
*定/
})).
toBeVisible
();
await
this
.
click
(
confirm
.
getByRole
(
'
button
'
,
{
name
:
/取
\s
*消/
}).
first
(),
'
取消作废
'
);
await
expect
(
this
.
page
.
getByText
(
name
.
slice
(
0
,
12
)).
first
(),
'
取消后该行仍在
'
).
toBeVisible
();
if
(
voidBefore
!==
null
)
{
expect
(
await
this
.
readTabCount
(
'
已作废
'
),
'
已作废计数不变
'
).
toBe
(
voidBefore
);
}
}
async
openLog
():
Promise
<
void
>
{
await
this
.
query
();
const
row
=
await
this
.
skipIfNoAction
(
'
日志
'
,
'
列表无日志入口
'
);
await
this
.
click
(
this
.
rowAction
(
row
,
'
日志
'
),
'
日志
'
);
const
layer
=
this
.
page
.
locator
(
'
.ant-modal:visible, .ant-drawer:visible, .put-page:visible
'
).
last
();
await
expect
(
layer
,
'
日志层应打开
'
).
toBeVisible
();
await
this
.
assertPageHealthy
(
'
日志
'
);
await
this
.
leaveWithoutCommit
();
}
}
pages/spd/admit-product-apply.page.ts
0 → 100644
View file @
6a181bea
import
{
expect
,
type
Page
}
from
'
@playwright/test
'
;
import
{
admitData
,
uniqProductName
}
from
'
../../data/admit.data
'
;
import
{
AdmitSharedPage
}
from
'
./admit-shared.page
'
;
/** 产品准入申请。新增与作废只取消,不确认保存、导入或作废。 */
export
class
AdmitProductApplyPage
extends
AdmitSharedPage
{
constructor
(
page
:
Page
)
{
super
(
page
,
{
path
:
admitData
.
productApplyPath
,
pathPart
:
'
productApply/list
'
,
menu
:
admitData
.
menuProductApply
,
forbidden
:
[
'
ZRlist
'
,
'
productOrder/
'
,
'
supplyApply/
'
,
'
accessKind/
'
],
});
}
async
expectEntered
():
Promise
<
void
>
{
await
this
.
expectOnPage
();
expect
(
this
.
page
.
url
()).
not
.
toContain
(
'
ZRlist
'
);
for
(
const
name
of
[
'
新增产品
'
,
'
Excel导入
'
,
'
生成申请单
'
])
{
await
expect
(
this
.
button
(
name
).
first
(),
name
).
toBeVisible
();
}
}
async
filterByProductName
():
Promise
<
void
>
{
await
this
.
query
();
const
name
=
await
this
.
sampleCell
(
'
产品名称
'
);
await
this
.
fillFilter
(
'
产品名称
'
,
name
.
slice
(
0
,
40
));
await
this
.
query
();
await
this
.
expectRowsContain
(
'
产品名称
'
,
name
);
}
async
filterByNameAndType
():
Promise
<
void
>
{
await
this
.
query
();
const
name
=
await
this
.
sampleCell
(
'
产品名称
'
);
const
type
=
await
this
.
sampleCell
(
'
耗材类型
'
);
await
this
.
fillFilter
(
'
产品名称
'
,
name
.
slice
(
0
,
40
));
await
this
.
chooseSelect
(
'
耗材类型
'
,
type
);
await
this
.
query
();
await
this
.
expectRowsContain
(
'
产品名称
'
,
name
);
}
async
resetFilters
():
Promise
<
void
>
{
await
this
.
query
();
const
name
=
await
this
.
sampleCell
(
'
产品名称
'
);
await
this
.
fillFilter
(
'
产品名称
'
,
name
.
slice
(
0
,
20
));
await
this
.
reset
();
await
this
.
expectInputCleared
(
'
产品名称
'
);
await
this
.
expectListOrEmpty
();
}
async
mockEmpty
():
Promise
<
void
>
{
await
this
.
fillFilter
(
'
产品名称
'
,
admitData
.
mockGoods
);
await
this
.
query
();
await
this
.
expectMockEmpty
();
}
async
expectCoreColumns
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
expectHeaders
([
'
准入单号
'
,
'
产品编号
'
,
'
产品名称
'
,
'
规格型号
'
,
'
器械注册人
'
,
'
单位
'
,
'
操作
'
]);
}
async
switchPending
():
Promise
<
void
>
{
await
this
.
clickTab
(
'
待申请
'
);
await
expect
(
this
.
tab
(
'
待申请
'
)).
toHaveClass
(
/ant-tabs-tab-active/
);
await
this
.
expectListOrEmpty
();
}
async
goPage2
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
goToPage2
(
'
产品名称
'
);
}
async
jumpPage2
():
Promise
<
void
>
{
await
this
.
query
();
await
this
.
jumpToPage
(
2
);
}
async
openAddAndBack
():
Promise
<
void
>
{
const
total
=
await
this
.
getTotalCount
();
await
this
.
clickButton
(
'
新增产品
'
);
await
expect
(
this
.
put
(),
'
新增产品页
'
).
toBeVisible
();
for
(
const
label
of
[
'
产品名称
'
,
'
器械注册人
'
,
'
规格型号
'
])
{
await
expect
(
this
.
put
().
getByText
(
label
).
first
(),
label
).
toBeVisible
();
}
await
this
.
leaveWithoutCommit
();
expect
(
await
this
.
getTotalCount
()).
toBe
(
total
);
}
async
addCancel
():
Promise
<
void
>
{
const
total
=
await
this
.
getTotalCount
();
const
name
=
uniqProductName
();
await
this
.
clickButton
(
'
新增产品
'
);
await
expect
(
this
.
put
()).
toBeVisible
();
await
this
.
fill
(
this
.
putInput
(
'
产品名称
'
),
name
,
'
填写新产品名称
'
);
await
this
.
leaveWithoutCommit
();
await
this
.
fillFilter
(
'
产品名称
'
,
name
);
await
this
.
query
();
await
this
.
expectMockEmpty
();
await
this
.
reset
();
expect
(
await
this
.
getTotalCount
(),
'
取消后总数不变
'
).
toBe
(
total
);
}
async
excelCancel
():
Promise
<
void
>
{
const
total
=
await
this
.
getTotalCount
();
await
this
.
clickButton
(
'
Excel导入
'
);
const
layer
=
this
.
page
.
locator
(
'
.ant-modal:visible, .put-page:visible, .ant-drawer:visible
'
).
last
();
await
expect
(
layer
,
'
Excel 导入层
'
).
toBeVisible
();
await
this
.
leaveWithoutCommit
();
expect
(
await
this
.
getTotalCount
()).
toBe
(
total
);
}
async
emptyNameBlocked
():
Promise
<
void
>
{
const
total
=
await
this
.
getTotalCount
();
await
this
.
clickButton
(
'
新增产品
'
);
await
expect
(
this
.
put
()).
toBeVisible
();
await
this
.
fill
(
this
.
putInput
(
'
产品名称
'
),
''
,
'
产品名称保持空
'
);
await
this
.
saveOnPut
();
await
this
.
expectBlockedAndStay
();
await
this
.
leaveWithoutCommit
();
expect
(
await
this
.
getTotalCount
(),
'
空名称不应落库
'
).
toBe
(
total
);
}
async
detailAndBack
():
Promise
<
void
>
{
await
this
.
query
();
const
row
=
await
this
.
firstRow
();
const
name
=
await
this
.
cellText
(
row
,
'
产品名称
'
);
await
this
.
openPutFromRow
(
row
,
'
详情
'
);
await
expect
(
this
.
put
()).
toContainText
(
name
.
slice
(
0
,
8
));
await
this
.
leaveWithoutCommit
();
}
async
editBackfill
():
Promise
<
void
>
{
await
this
.
clickTab
(
'
待申请
'
);
const
row
=
await
this
.
skipIfNoAction
(
'
编辑
'
,
'
待申请无编辑
'
);
const
name
=
await
this
.
cellText
(
row
,
'
产品名称
'
);
await
this
.
openPutFromRow
(
row
,
'
编辑
'
);
await
expect
(
this
.
putInput
(
'
产品名称
'
)).
toHaveValue
(
name
);
await
this
.
leaveWithoutCommit
();
}
async
editCancel
():
Promise
<
void
>
{
await
this
.
clickTab
(
'
待申请
'
);
const
row
=
await
this
.
skipIfNoAction
(
'
编辑
'
,
'
待申请无编辑
'
);
const
name
=
await
this
.
cellText
(
row
,
'
产品名称
'
);
await
this
.
openPutFromRow
(
row
,
'
编辑
'
);
await
this
.
fill
(
this
.
putInput
(
'
产品名称
'
),
`
${
name
}
-取消`
,
'
临时改名
'
);
await
this
.
leaveWithoutCommit
();
await
this
.
clickTab
(
'
待申请
'
);
const
again
=
await
this
.
skipIfNoAction
(
'
编辑
'
,
'
待申请无编辑
'
);
await
this
.
openPutFromRow
(
again
,
'
编辑
'
);
await
expect
(
this
.
putInput
(
'
产品名称
'
)).
toHaveValue
(
name
);
await
this
.
leaveWithoutCommit
();
}
async
voidCancel
():
Promise
<
void
>
{
await
this
.
query
();
const
voidBefore
=
await
this
.
readTabCount
(
'
已作废
'
);
await
this
.
checkFirstRow
();
const
name
=
await
this
.
cellText
(
await
this
.
firstRow
(),
'
产品名称
'
);
await
this
.
clickButton
(
'
作废
'
);
const
confirm
=
this
.
page
.
locator
(
'
.ant-modal-confirm:visible, .ant-modal:visible
'
).
last
();
await
expect
(
confirm
).
toBeVisible
();
await
this
.
click
(
confirm
.
getByRole
(
'
button
'
,
{
name
:
/取
\s
*消/
}).
first
(),
'
取消作废
'
);
await
expect
(
this
.
page
.
getByText
(
name
.
slice
(
0
,
12
)).
first
()).
toBeVisible
();
if
(
voidBefore
!==
null
)
expect
(
await
this
.
readTabCount
(
'
已作废
'
)).
toBe
(
voidBefore
);
}
async
passedNoEdit
():
Promise
<
void
>
{
await
this
.
skipIfTabEmpty
(
'
已通过
'
);
expect
(
await
(
await
this
.
listRows
()).
getByRole
(
'
button
'
,
{
name
:
/编
\s
*辑/
}).
count
(),
'
已通过不应提供编辑
'
).
toBe
(
0
);
}
}
Prev
1
2
3
4
5
6
7
8
…
11
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment