Browse Source

删除popover的ref 重复。某种原因,状态没有被正确重置

bingqishi 3 tuần trước cách đây
mục cha
commit
88bb0f1a7c
1 tập tin đã thay đổi với 7 bổ sung1 xóa
  1. 7 1
      src/views/iot/scene/manage/component/condition.vue

+ 7 - 1
src/views/iot/scene/manage/component/condition.vue

@@ -16,7 +16,7 @@
             <div class="items">
               <el-button style="background: #fff; color: #000;border: 1px solid #d9cde3;margin-left: 10px;margin-right: 10px;" v-if="(i as number) > 0">并且</el-button>
 
-              <el-popover placement="bottom" trigger="click" ref="popoverRef" v-model:visible="vo.isPopoverVisible">
+              <el-popover placement="bottom" trigger="click"  v-model:visible="vo.isPopoverVisible">
                 <template #reference>
                   <el-button style="background: #9adbff4d; color: #00a4fe;border: 1px solid #00a4fe4d;">{{
                     vo.parameter_text ||
@@ -112,11 +112,17 @@ const props = defineProps({
 })
 
 const setParameter = (vo: IConditionItem, item: any) => {
+   // 先强制设置为 true,再设置为 false,确保状态变化被检测
+  vo.isPopoverVisible = true;
   vo.parameter_text = item.name;
   vo.parameter = item.column;
   // operatorList.value=item.termTypes
   vo.operatorList = item.termTypes;
   vo.isPopoverVisible = false; // 关闭弹窗
+    // 使用 setTimeout 确保异步更新
+  setTimeout(() => {
+    vo.isPopoverVisible = false;
+  }, 0);
 
   saveData();
 }