瀏覽代碼

fix:灯的状态问题

chenzhen2 1 年之前
父節點
當前提交
bdc3ad9921
共有 1 個文件被更改,包括 21 次插入23 次删除
  1. 21 23
      src/views/envmonitor/components/Light/index.vue

+ 21 - 23
src/views/envmonitor/components/Light/index.vue

@@ -151,6 +151,7 @@ export default defineComponent({
     const timeOut: any = null;
     const initData: any = [];
     let lightParams: any = [];
+    let statusInterval: any = null;
     const proxyData = reactive({
       seviceEquipmentList: props.seviceEquipmentList,
       showLight: props.showLight,
@@ -158,7 +159,7 @@ export default defineComponent({
       controlMode: props.controlMode,
       userIsControl: props.userIsControl,
       forceOverTimeFlag: props.forceOverTimeFlag,
-      setStatus: false,
+      setStatus: 0,
       lightParams: lightParams,
       allowSvg: "down_Arrow.svg",
       timeOut: timeOut,
@@ -220,6 +221,7 @@ export default defineComponent({
           .then((res) => {
             const resData: any = res;
             if (!proxyData.setStatus) {
+              console.log("灯的状态修改--");
               if (resData && resData.result == "success") {
                 let content = resData?.content ?? [];
                 let lampOpen = false; // 如果有一个开 则总灯开
@@ -288,7 +290,6 @@ export default defineComponent({
             if (item !== "") {
               proxyData.lampSw = item; // 点击全开和全关的时候item动态传值true或者false
             }
-
             if (
               proxyData.forceOverTimeFlag &&
               proxyData.lampSw &&
@@ -307,7 +308,7 @@ export default defineComponent({
               : parseImgUrl("page-officehome", "lamp_close.png");
             const statusFlag = proxyData.lampSw;
             // 瞬间修改状态
-            proxyData.setStatus = true;
+            proxyData.setStatus = 15; // 点击后状态重新计算
             proxyData.updateAllLampStatus(statusFlag);
             proxyData.setLamp(type, "", statusFlag, 0); // 调接口
           } else {
@@ -324,7 +325,7 @@ export default defineComponent({
             item.loading = true;
             const statusFlag: any = item.switch;
             let id = item.id;
-            proxyData.setStatus = true;
+            proxyData.setStatus = 15;
             proxyData.updateLampStatus(item, statusFlag);
             proxyData.setLamp(type, id, statusFlag, index, item); // 调接口
           }
@@ -332,6 +333,18 @@ export default defineComponent({
           Toast("您没有当前空间的控制权限!");
         }
       },
+      // 定时查看灯的状态是否需要更新
+      statusInterval: statusInterval,
+      setStatusNum() {
+        clearInterval(proxyData.statusInterval);
+        proxyData.statusInterval = setInterval(() => {
+          proxyData.setStatus--;
+          if (proxyData.setStatus == 1) {
+            proxyData.setStatus = 0;
+            clearInterval(proxyData.statusInterval);
+          }
+        }, 1000);
+      },
       //  控制灯的接口
       setLamp(
         type: string,
@@ -359,11 +372,8 @@ export default defineComponent({
         setallLampHttp(params)
           .then((res) => {
             const resData: any = res;
-            // set成功后1s关闭定时器
-            setTimeout(() => {
-              proxyData.setStatus = false;
-            }, 1000);
-
+            // set成功后15s更新灯的状态
+            proxyData.setStatusNum();
             if (item) {
               item.loading = false;
             }
@@ -375,9 +385,8 @@ export default defineComponent({
             }
           })
           .catch((error: any) => {
-            setTimeout(() => {
-              proxyData.setStatus = false;
-            }, 1000);
+            // set成功后15s更新灯的状态
+            proxyData.setStatusNum();
             if (item) {
               item.loading = false;
             }
@@ -404,15 +413,6 @@ export default defineComponent({
       // 单个灯的状态修改
       updateLampStatus(item: any, statusFlag: any) {
         item.switch = statusFlag;
-        // let flag: any = true
-        // for (let i = 0; i < proxyData.lampList.length; i++) {
-        //   if (proxyData.lampList[i].type == 'lamp') {
-        //     if (proxyData.lampList[i].switch !== statusFlag) {
-        //       flag = false
-        //       break
-        //     }
-        //   }
-        // }
       },
       // 轮询查看状态
       getTimeLampStatus(
@@ -572,8 +572,6 @@ export default defineComponent({
 
         if (newProps[1] && oldProps[1] && newProps[1] != oldProps[1]) {
           // 空间id改变的重新获取值调用接口
-          console.log("灯模块的spaceId变化了");
-          // 清除原始数据
           proxyData.clearLightStatusTimer();
           proxyData.showFlag = false;
           proxyData.lampList = [];