|
@@ -69,7 +69,7 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</template>
|
|
</template>
|
|
|
<template v-if="item.attrType == 'select'">
|
|
<template v-if="item.attrType == 'select'">
|
|
|
- <el-select v-model="item.minArray" placeholder="选择值" clearable filterable multiple :disabled="disabled"
|
|
|
|
|
|
|
+ <el-select :ref="(el) => setItemRef(el, item.attrCode)" v-model="item.minArray" placeholder="选择值" clearable filterable multiple :disabled="disabled"
|
|
|
@change="change($event, index, item)" @visible-change="item.checkAll = false" @blur="item.checkAll = false"
|
|
@change="change($event, index, item)" @visible-change="item.checkAll = false" @blur="item.checkAll = false"
|
|
|
>
|
|
>
|
|
|
<template #header>
|
|
<template #header>
|
|
@@ -193,11 +193,25 @@ const licenseNoSelect = (e, item) => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+const selectRefs = ref(new Map())
|
|
|
|
|
+
|
|
|
|
|
+// 设置 ref 的回调函数
|
|
|
|
|
+const setItemRef = (el, attrCode) => {
|
|
|
|
|
+ if (el) {
|
|
|
|
|
+ selectRefs.value.set(attrCode, el)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 元素被卸载时,el 为 null,需要清理
|
|
|
|
|
+ selectRefs.value.delete(attrCode)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const handleCheckAll = (item, index: number, val: boolean) => {
|
|
const handleCheckAll = (item, index: number, val: boolean) => {
|
|
|
|
|
|
|
|
item.indeterminate = false
|
|
item.indeterminate = false
|
|
|
let arr = item.dictLabal
|
|
let arr = item.dictLabal
|
|
|
- if (item.dictLabalFilter) arr = item.dictLabalFilter
|
|
|
|
|
|
|
+ const el = selectRefs.value.get(item.attrCode)
|
|
|
|
|
+ const filterStr=el?.inputRef?.value
|
|
|
|
|
+ if (filterStr) arr = arr.filter(v=>v.name.includes(filterStr))
|
|
|
if (val) {
|
|
if (val) {
|
|
|
item.minArray = [...new Set([...(item.minArray ?? []), ...arr.map((_) => _.code)])]
|
|
item.minArray = [...new Set([...(item.minArray ?? []), ...arr.map((_) => _.code)])]
|
|
|
} else {
|
|
} else {
|