修改 冀北 现场问题

This commit is contained in:
GGJ
2024-08-21 16:05:06 +08:00
parent a6ab528220
commit ed4d982cbe
10 changed files with 193 additions and 101 deletions

View File

@@ -7,6 +7,7 @@
v-model="form.deviceId"
:data="data"
filterable
:filter-node-method="filterNode"
style="width: 100%"
@change="changeDevStatus"
clearable
@@ -101,6 +102,40 @@ const resetForm = () => {
formRef.value.resetFields()
}
}
const filterNode = (value: string, data: any, node: any) => {
if (!value) return true
if (data.label) {
return chooseNode(value, data, node)
}
}
// 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配则返回该节点以及其下的所有子节点如果参数是子节点则返回该节点的父节点。label是中文字符enlabel是英文字符.
const chooseNode = (value: string, data: any, node: any) => {
if (data.label.indexOf(value) !== -1) {
return true
}
const level = node.level
// 如果传入的节点本身就是一级节点就不用校验了
if (level === 1) {
return false
}
// 先取当前节点的父节点
let parentData = node.parent
// 遍历当前节点的父节点
let index = 0
while (index < level - 1) {
// 如果匹配到直接返回此处label值是中文字符enlabel是英文字符。判断匹配中英文过滤
if (parentData.data.label.indexOf(value) !== -1) {
return true
}
// 否则的话再往上一层做匹配
parentData = parentData.parent
index++
}
// 没匹配到返回false
return false
}
const open = async (text: string, tempData?: any) => {
title.value = text
@@ -212,4 +247,7 @@ defineExpose({ open })
::v-deep .el-tree-node__children > div {
display: block !important;
}
:deep(.el-select__input) {
width: 100% !important;
}
</style>