Pārlūkot izejas kodu

规则条件select全选功能filter完善

祁鹏飞 1 nedēļu atpakaļ
vecāks
revīzija
4da343f794

+ 16 - 2
src/components/ruleConditionContainer/index.vue

@@ -69,7 +69,7 @@
             </el-row>
           </template>
           <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"
               >
               <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) => {
 
   item.indeterminate = false
   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) {
     item.minArray = [...new Set([...(item.minArray ?? []), ...arr.map((_) => _.code)])]
   } else {

+ 0 - 2
src/views/quoteConfig/agreement/agreementAdd.vue

@@ -442,7 +442,6 @@ const submitForm = async (formEl: FormInstance | undefined) => {
             })
             emitEvent('sendData',);
             router.back()
-          } else {
           }
         });
       } else {
@@ -455,7 +454,6 @@ const submitForm = async (formEl: FormInstance | undefined) => {
             })
             emitEvent('sendData',);
             router.back()
-          } else {
           }
         });
       }