Просмотр исходного кода

全选后切换筛选条件置空全选按钮

祁鹏飞 2 недель назад
Родитель
Сommit
8e73c166fa
1 измененных файлов с 10 добавлено и 7 удалено
  1. 10 7
      src/components/ruleConditionContainer/index.vue

+ 10 - 7
src/components/ruleConditionContainer/index.vue

@@ -69,17 +69,17 @@
             </el-row>
           </template>
           <template v-if="item.attrType == 'select'">
-            <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"
-              >
+            <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">
               <template #header>
                 <el-checkbox v-model="item.checkAll" :indeterminate="item.indeterminate" :disabled="disabled"
                   @change="(val) => handleCheckAll(item, index, val)">
                   全选
                 </el-checkbox>
               </template>
-              <el-option v-for="dictLabalitem in item.dictLabal" :key="dictLabalitem.id"
-                :label="dictLabalitem.name" :value="dictLabalitem.code" />
+              <el-option v-for="dictLabalitem in item.dictLabal" :key="dictLabalitem.id" :label="dictLabalitem.name"
+                :value="dictLabalitem.code" />
             </el-select>
           </template>
           <template v-if="item.attrType == 'inputTag'">
@@ -210,13 +210,16 @@ const handleCheckAll = (item, index: number, val: boolean) => {
   item.indeterminate = false
   let arr = item.dictLabal
   const el = selectRefs.value.get(item.attrCode)
-  const filterStr=el?.inputRef?.value
-  if (filterStr) arr = arr.filter(v=>v.name.includes(filterStr))
+  const filterStr = el?.inputRef?.value
+  if (filterStr) arr = arr.filter(v => v.name.includes(filterStr))
   if (val) {
     item.minArray = [...new Set([...(item.minArray ?? []), ...arr.map((_) => _.code)])]
   } else {
     item.minArray = item.minArray.filter(v => !arr.find(a => a.code === v))
   }
+  nextTick(() => {
+    el.blur()
+  })
 }
 onMounted(() => {
   console.log('规则数据', props.rulesAttrList)