Parcourir la source

fix:空调状态模块更新时间修改

chenzhen2 il y a 1 an
Parent
commit
7aa4513dae

+ 78 - 35
src/views/envmonitor/components/Air/manualIndex.vue

@@ -18,14 +18,21 @@
         </div>
       </div>
       <div class="air-right">
-        <img v-if="airData.airImg" :src="airData.airImg" alt="" />
-        <van-loading style="padding-top: 20px" v-else />
+        <img
+          v-if="airData.isOpen"
+          :src="parseImgUrl('page-officehome', 'openair.png')"
+          alt=""
+        />
+        <img
+          v-else
+          :src="parseImgUrl('page-officehome', 'air_close.png')"
+          alt=""
+        />
+        <!-- <van-loading style="padding-top: 20px" v-else /> -->
         <Switch
           class="switch-btn"
           v-if="!showChild"
           :size="23"
-          :loading="loadingAir || firstLoadingAir"
-          :disabled="loadingAir || firstLoadingAir"
           inactive-color="rgba(196, 196, 196, 0.4)"
           @click="airChange"
           :model-value="airData.isOpen"
@@ -33,10 +40,8 @@
       </div>
     </div>
     <!--温度调节-->
-    <div
-      v-if="!showChild && airData.runStatus"
-      :style="{ opacity: loadingAir || !airData.runStatus ? '0.4' : '1' }"
-    >
+    <!-- :style="{ opacity: loadingAir || !airData.runStatus ? '0.4' : '1' }" -->
+    <div v-if="!showChild && airData.isOpen">
       <div class="air-control air-control-padding">
         <div class="control-box">
           <div class="temp-text">{{ airData.minTempSet }}℃</div>
@@ -386,13 +391,14 @@ export default defineComponent({
     const feedbackTimer: any = null;
     const airTimer: any = null;
     const domAirOpeen: any = false;
+    const switchTimer: any = null;
     let realTemp: any = 16;
     let windGearArr: any = [0, 1, 2, 3];
     let equipList: any = [];
     let valueDom: any = null;
     let valueHeight: any = null;
     let spaceId: any = "";
-    const proxyData = reactive({
+    const proxyData: any = reactive({
       seviceEquipmentList: props.seviceEquipmentList,
       valueDom: valueDom,
       spaceId: props.spaceId,
@@ -551,19 +557,42 @@ export default defineComponent({
           proxyData.airTimer = null;
         }
         proxyData.airTimer = setTimeout(function () {
-          proxyData.getAirInfo();
+          if (!proxyData.loadingTimer) {
+            proxyData.getAirInfo();
+          }
         }, timerLong);
       },
+      // 获取操作时长
+      getTimerLen() {
+        // debugger;
+        let equipmentCategory: any = "";
+        if (proxyData.equipList && proxyData.equipList.length) {
+          equipmentCategory = proxyData.equipList[0].equipmentCategory;
+        }
+        let timerLen: any = 15;
+        if (equipmentCategory && equipmentCategory == "ACATVI") {
+          timerLen = 120;
+        }
+        return timerLen;
+      },
+      switchTimer: switchTimer,
       // 计算loading时间
       setLoadingNumber() {
-        let timer: any = setInterval(() => {
+        let timerLen: any = proxyData.getTimerLen();
+        proxyData.switchTimer = setInterval(() => {
           proxyData.loadingTimer++;
-          console.log(proxyData.loadingTimer);
-          if (proxyData.loadingTimer >= 15) {
-            clearInterval(timer);
+          if (proxyData.loadingTimer >= timerLen) {
+            clearInterval(proxyData.switchTimer);
+            proxyData.switchTimer = null;
             proxyData.loadingAir = false;
+            proxyData.loadingTimer = 0;
             proxyData.getAirInfoToTimer(0);
           }
+          console.log(
+            "proxyData.loadingTimer==",
+            proxyData.loadingTimer,
+            timerLen
+          );
         }, 1000);
       },
       // 格式化空调数据
@@ -621,11 +650,13 @@ export default defineComponent({
       },
       // 计算loading时间
       setChildLoadingNumber(childItem: any) {
+        let timerLen: any = proxyData.getTimerLen();
         childItem.loadingTimer = 1;
-        let timer: any = setInterval(() => {
+        childItem.timer = setInterval(() => {
           childItem.loadingTimer++;
-          if (childItem.loadingTimer >= 15) {
-            clearInterval(timer);
+          if (childItem.loadingTimer >= timerLen) {
+            clearInterval(childItem.timer);
+            childItem.timer = null;
             childItem.loadingTimer = 0;
             proxyData.getAirInfoToTimer(0);
           }
@@ -670,13 +701,14 @@ export default defineComponent({
             return;
           }
           childItem.isOpen = !childItem.isOpen;
-          proxyData.setChildLoadingNumber(childItem);
           let obj: any = {
             id: childItem.id, //类型:String  必有字段  备注:设备id
             code: childItem.switchCode, //类型:String  必有字段  备注:编码 EquipSwtichSet
             value: childItem.isOpen ? "1" : "0", //类型:String  必有字段  备注:值 0
           };
           arr.push(obj);
+          // clearTimeout(proxyData.airTimer);
+          // proxyData.setChildLoadingNumber(childItem);
           // loadig的状态
         } else if (btnType === "temp") {
           childItem.num = 2;
@@ -745,6 +777,8 @@ export default defineComponent({
           };
           arr.push(obj);
         }
+        // 空调调节后先不刷新,等2分钟后更新状态
+        proxyData.updateAirStatus();
         // 修改单个设备的状态
         if (btnType !== "temp") {
           proxyData.setSpaceCondtioners(arr);
@@ -766,7 +800,7 @@ export default defineComponent({
       },
       // 改变空调状态
       changeZongAir(btnType: any, text: any) {
-        if (!airData.runStatus) return;
+        if (!proxyData.airData.isOpen) return;
         let equpObj: any = proxyData.formatAirData(btnType, text);
         let data: any = [];
         proxyData.equipList.map((item: any) => {
@@ -782,6 +816,7 @@ export default defineComponent({
         if (!proxyData.cotrolLoading) {
           proxyData.loadingStart();
           // 调整设备状态
+          proxyData.updateAirStatus();
           proxyData.setSpaceCondtioners(data);
         }
       },
@@ -806,6 +841,15 @@ export default defineComponent({
         }
         return flag;
       },
+      // 刷新空调状态的接口
+      updateAirStatus() {
+        clearTimeout(proxyData.airTimer);
+        proxyData.airTimer = null;
+        proxyData.loadingTimer = 1;
+        if (!proxyData.switchTimer) {
+          proxyData.setLoadingNumber();
+        }
+      },
       // 总控制改变空调状态
       airChange() {
         // 先不更新状态等确认框弹出后再更新状
@@ -822,9 +866,8 @@ export default defineComponent({
 
         proxyData.airData.isOpen = !proxyData.airData.isOpen;
         proxyData.loadingAir = true;
-        proxyData.loadingTimer = 0;
-        clearTimeout(proxyData.airTimer);
-        proxyData.setLoadingNumber();
+        // 操作空调后,先关闭定时刷新接口,等固定时间再更新空调状态
+        proxyData.updateAirStatus();
         let data: any = [];
         proxyData.equipList.map((item: any) => {
           let obj: any = {
@@ -939,25 +982,25 @@ export default defineComponent({
             proxyData.airData.isOpen = data.runStatus ? true : false;
             proxyData.airData.runStatus = data.runStatus;
             proxyData.airData.isAutoGear = data.isAutoGear;
-            proxyData.airData.gear = data.gear;
+            proxyData.airData.gear = data.gear || 0;
             proxyData.airData.workMode = data.workMode;
             proxyData.equipList = data.equipList;
             // 设置子设备的状态
             proxyData.setChildSelectList();
             proxyData.formateSetChildStatus();
 
-            // 设置当前温度的位置
-            if (proxyData.airData.isOpen) {
-              proxyData.airData.airImg = parseImgUrl(
-                "page-officehome",
-                "openair.png"
-              );
-            } else {
-              proxyData.airData.airImg = parseImgUrl(
-                "page-officehome",
-                "air_close.png"
-              );
-            }
+            // // 设置当前空调等图片
+            // if (proxyData.airData.isOpen) {
+            //   proxyData.airData.airImg = parseImgUrl(
+            //     "page-officehome",
+            //     "openair.png"
+            //   );
+            // } else {
+            //   proxyData.airData.airImg = parseImgUrl(
+            //     "page-officehome",
+            //     "air_close.png"
+            //   );
+            // }
 
             nextTick(() => {
               proxyData.barSwiperInit();

+ 1 - 1
src/views/envmonitor/components/Light/index.vue

@@ -193,7 +193,7 @@ export default defineComponent({
       },
       // 检查设备是否执行空间服务时间
       checkDeviceIsExeSpaceTime(deviceAll: any = []) {
-        debugger
+        // debugger
         if (proxyData.controlMode !== 1) {
           return true;
         }

+ 1 - 1
src/views/envmonitor/index.vue

@@ -679,7 +679,7 @@ export default defineComponent({
     let nowDate: any = formatDate("YYYY.MM.DD HH:mm");
     let nowWeek: any = getNowWeek();
     let padImgData: any = [];
-    let controlMode: any = 0;
+    let controlMode: any = null;
     let deviceItem: any = null;
     let allDevice: any = [];
     let spaceEquipList: any = [];