Parcourir la source

数据获取回显元素修改

duy il y a 4 jours
Parent
commit
40e666b6ad
1 fichiers modifiés avec 44 ajouts et 0 suppressions
  1. 44 0
      src/views/formula/component/funComponent/ifelse.vue

+ 44 - 0
src/views/formula/component/funComponent/ifelse.vue

@@ -299,6 +299,8 @@
                       placeholder="输入/参数" 
                       @before-adding-tag="beforeAddingTag" 
                       @keyup.native="btKeyUp"
+                      @tag-clicked="handleDataTagClick($event, index, 'tagWhenLeft')"
+                      :ref="`dataTag_${index}_tagWhenLeft`"
 
                     />
                   </div>
@@ -329,6 +331,8 @@
                       placeholder="输入/参数" 
                       @before-adding-tag="beforeAddingTag" 
                       @keyup.native="btKeyUp"
+                       @tag-clicked="handleDataTagClick($event, index, 'tagWhenRight')"
+                       :ref="`dataTag_${index}_tagWhenRight`"
                     />
                   </div>
                   
@@ -341,6 +345,8 @@
                       placeholder="输入/参数" 
                       @before-adding-tag="beforeAddingTag" 
                       @keyup.native="btKeyUp"
+                      @tag-clicked="handleDataTagClick($event, index, 'tagThenLeft')"
+                      :ref="`dataTag_${index}_tagThenLeft`"
                     />
                     <span  class="mg-r-10 mg-l-10">=</span>
                     <div class="mg-r-10">
@@ -352,6 +358,8 @@
                           placeholder="输入/参数" 
                           @before-adding-tag="beforeAddingTag" 
                           @keyup.native="btKeyUp"
+                          @tag-clicked="handleDataTagClick($event, index, 'tagThenRight')"
+                          :ref="`dataTag_${index}_tagThenRight`"
                         />
                     </div>
                       <i class="el-icon-circle-plus-outline mg-l-20" style="color: #409EFF;cursor: pointer;" @click="addDataItem(index)"></i>
@@ -371,6 +379,8 @@
                       @before-adding-tag="beforeAddingTag" 
                       @keyup.native="btKeyUp"
                       class="mg-r-10"
+                      @tag-clicked="handleElseTagClick($event, 'left')"
+                      ref="elseTagLeft"
                     />
                     <span class="mg-r-10">=</span>
                     <vue-tags-input 
@@ -381,6 +391,8 @@
                       placeholder="请选择/输入参数" 
                       @before-adding-tag="beforeAddingTag" 
                       @keyup.native="btKeyUp"
+                       @tag-clicked="handleElseTagClick($event, 'left')"
+                      ref="elseTagLeft"
                     />
                   </div>
                 </div>
@@ -1934,6 +1946,38 @@ export default {
       // 向父组件传递点击的标签信息
       this.$emit('clickTag', tag);
     },
+     // 处理数据获取部分(循环项)的标签点击
+  handleDataTagClick(info, index, field) {
+    const { tag } = info;
+    // 1. 设置当前焦点
+    this.setDataFocus(index, field);
+    // 2. 聚焦到当前输入框
+    const refName = `dataTag_${index}_${field}`;
+    const tagInput = this.$refs[refName];
+    if (tagInput) {
+      const instance = Array.isArray(tagInput) ? tagInput[0] : tagInput;
+      if (instance && typeof instance.focus === 'function') {
+        instance.focus();
+      }
+    }
+    // 3. 向父组件传递选中的tag
+    this.$emit('clickTag', tag);
+  },
+
+  // 处理“否则”部分的标签点击
+  handleElseTagClick(info, position) {
+    const { tag } = info;
+    // 1. 设置当前焦点
+    this.setElseFocus(position);
+    // 2. 聚焦到当前输入框
+    const refName = `elseTag${position.charAt(0).toUpperCase() + position.slice(1)}`;
+    const instance = this.$refs[refName];
+    if (instance && typeof instance.focus === 'function') {
+      instance.focus();
+    }
+    // 3. 向父组件传递选中的tag
+    this.$emit('clickTag', tag);
+  },
 
   }
 }