duy 2 maanden geleden
bovenliggende
commit
88dbb88940
1 gewijzigde bestanden met toevoegingen van 50 en 17 verwijderingen
  1. 50 17
      src/views/digital/signer.vue

+ 50 - 17
src/views/digital/signer.vue

@@ -222,7 +222,24 @@
                                     :value="item.value">
                                 </el-option>
                             </el-select>
-                            <el-select v-model="elementTableNameSelect" placeholder="请输入元素表名称进行模糊检索" style="flex: 1;" filterable clearable >
+                            <el-select 
+                                v-model="elementTableNameSelect" 
+                                placeholder="请输入元素表名称进行模糊检索" 
+                                style="flex: 1;" 
+                                filterable clearable multiple
+                                :popper-options="{ 
+                                        modifiers: { 
+                                            computeStyle: { 
+                                                enabled: true, 
+                                                fn(data) { 
+                                                    data.styles.maxHeight = '30px'; // 设置最大高度为一行
+                                                    data.styles.overflowY = 'auto'; // 启用垂直滚动
+                                                    return data; 
+                                                } 
+                                            } 
+                                        } 
+                                    }"
+                                 >
                                 <el-option
                                     v-for="item in elementTableOptions"
                                     :key="item.value"
@@ -232,10 +249,10 @@
                             </el-select>
                         </div>
                         <div v-if="selectedSourceOption === 2" class="element-list-container">
-                            <el-scrollbar> <!-- 18行 * 每行30px = 540px -->
+                            <el-scrollbar>
                                 <ul class="element-checkbox-list">
                                     <li v-for="(item, index) in elementList" :key="index" class="element-item">
-                                        <el-checkbox v-model="item.checked">{{ item.name }}</el-checkbox>
+                                        <el-checkbox v-model="item.checked">{{ item.label }}</el-checkbox>
                                     </li>
                                 </ul>
                             </el-scrollbar>
@@ -320,17 +337,14 @@
                 eleCheckRow: {},
                 selectedSourceOption: 1, // 默认选中 "适配所有元素表"
                 elementCategorySelect: '', // 元素分类表分类选中值
-                elementTableNameSelect: '', // 元素表名称筛选选中值
+                elementTableNameSelect: [], // 元素表名称筛选选中值
                 elementCategoryOptions: [
                    
                 ],
                 elementTableOptions: [
                
                 ],
-                elementList: Array.from({ length: 30 }, (_, i) => ({
-                    name: `元素表名称 ${i + 1}`,
-                    checked: false
-                })),
+                elementList:[],
                 bindPostDialogVisible: false,
                 partyCategorySelect: '', // 参建方分类选中值
                 positionNameSelect: '', // 岗位名称选中值
@@ -350,6 +364,26 @@
                 })),
             }
         },
+        watch: {
+            elementTableNameSelect(newVal) {
+                if (newVal) {
+                 
+                    let arr=[];
+                 
+                    
+                    this.elementTableOptions.forEach(item => {
+                        newVal.forEach(tableName => {
+                            if (item.value === tableName) {
+                              arr.push(item)
+                            }
+                        });
+                    });
+            
+                    this.elementList = arr;
+                    // this.fetchElementList(newVal);
+                }
+            }
+        },
         methods: {
             clearInput() {
                 this.postText = ''
@@ -451,17 +485,11 @@
                 // 删除操作的逻辑
             },
             changeEleType(value,row) {
-               
-                
                 const selectedItem = this.eleOptions.find(item => item.value === value);
-      
-                
                     if (selectedItem && selectedItem.etype != null) {
                         row.elementType = selectedItem.etype; // 假设接口返回的 eleOptions 中有 etype 字段
-                    }
-                
-                            
-              
+                    }        
+
               
             },
             //选择元素来源
@@ -481,7 +509,8 @@
                     if (res.data.code == 200) {
                         this.elementCategoryOptions = res.data.data.map(item => ({
                             value: item.dictKey,
-                            label: item.dictValue
+                            label: item.dictValue,
+                            id:item.id
                         }));
                     }else{  this.elementCategoryOptions = [];}
                 });
@@ -706,4 +735,8 @@ margin-top: -20px;
     line-height: 30px;
     padding-left: 10px;
 }
+.limit-height-select .el-select-dropdown__wrap {
+    max-height: 30px !important;
+    overflow-y: auto !important;
+}
 </style>