ソースを参照

708工具单选

tangjunhao 2 ヶ月 前
コミット
eaf418ae4f
1 ファイル変更32 行追加11 行削除
  1. 32 11
      src/view/components/tool.vue

+ 32 - 11
src/view/components/tool.vue

@@ -101,26 +101,26 @@ const checkeclear = () => {
 
 
 const changecheckbox = (val) => {
-  vtkmodel.delpump();//清除风机风门
   if (checked1.value) {
+    uncheckOthers(checked1);
     vtkmodel.showPname();
   } else {
     vtkmodel.removePname();
   }
 }
 const changecheckbox2 = (val) => {
-  vtkmodel.delpump();//清除风机风门
   if (checked2.value) {
+    uncheckOthers(checked2);
     vtkmodel.showSoure();
   } else {
     vtkmodel.removeSoure();
   }
   console.log(checked2.value);
 }
-const changecheckbox3 = (val) => {
-  vtkmodel.delpump();//清除风机风门
+const changecheckbox3 = async (val) => {
   if (checked3.value) {
-    console.log("调用监测")
+    uncheckOthers(checked3);
+    await delay(10); // 等待 500ms
     vtkmodel.showjc();
     // 选中出弹窗
     dialogtrue1.value.dialoglog = true;
@@ -132,12 +132,13 @@ const changecheckbox3 = (val) => {
     dialogtrue1.value.closeDialog();
   }
 }
-const changecheckbox4 = (val) => {
-  vtkmodel.delpump();//清除风机风门
+const changecheckbox4 = async (val) => {
   if (checked4.value) {
-    console.log("调用传感")
-    vtkmodel.showSensor();
-    // 选中出弹窗
+    uncheckOthers(checked4);
+    await delay(10); // 等待 500ms
+    vtkmodel.showSensor(); // 延时后执行
+    
+    // 其他逻辑
     dialogtrue.value.dialoglog = true;
     vtkmodel.selectSensors();
     dialogtrue.value.jgSelect();
@@ -146,7 +147,27 @@ const changecheckbox4 = (val) => {
     dialogtrue.value.dialoglog = false;
     dialogtrue.value.closeDialog();
   }
-}
+};
+
+const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
+
+const uncheckOthers = (currentCheckbox) => {
+  const checkboxes = [
+    { ref: checked1, changeFn: changecheckbox },
+    { ref: checked2, changeFn: changecheckbox2 },
+    { ref: checked3, changeFn: changecheckbox3 },
+    { ref: checked4, changeFn: changecheckbox4 },
+  ];
+
+  checkboxes.forEach(({ ref, changeFn }) => {
+    if (ref !== currentCheckbox) {
+      ref.value = false;
+      changeFn(false); // 手动触发 change 事件
+    }
+  });
+};
+
+
 emitter.on('myaddsg', (data) => {
   changecheckbox4(data);
 })