Forráskód Böngészése

fix:空调手动控制的页面调整

chenzhen2 1 éve
szülő
commit
046543443f

+ 45 - 477
src/views/envmonitor/components/Air/ChildAirControl.vue

@@ -1,19 +1,19 @@
 <template>
   <div class="air">
-    <div class="child-title">空调名称</div>
+    <div class="child-title">{{ airData.localName }}</div>
     <div class="child-box">
       <div class="air-control">
         <div class="air-title">
           <div>温度设定</div>
           <div></div>
-          <div>20℃</div>
+          <div>{{ realTemp }}℃</div>
         </div>
         <div class="control-box">
-          <div class="temp-slider" id="sliderId">
-            <div class="slider-bar" id="barId">
-              <div class="bar-circle" id="handId"></div>
+          <div class="temp-slider" id="chlidAirSliderId">
+            <div class="slider-bar" id="chlidAirBarId">
+              <div class="bar-circle" id="chlidAirBarId"></div>
             </div>
-            <div class="temp-left" id="tempLeftId">
+            <div class="temp-left">
               {{ airData.minTempSet }}
             </div>
             <div class="temp-right">
@@ -78,22 +78,24 @@
       </div>
       <div class="air-control">
         <div class="air-title">
-          <div>风速</div>
+          <div>模式</div>
           <div></div>
-          <div>制冷</div>
+          <div v-if="airData.workMode === 1">制热</div>
+          <div v-else-if="airData.workMode === 2">制冷</div>
+          <div v-else>通风</div>
         </div>
         <div class="control-box control-box-padding">
           <div class="icon-box">
             <div
               class="icon-item"
-              :class="airData.workMode === 2 ? 'active-color' : ''"
-              @click="changeZongAir('mode', 2)"
+              :class="airData.workMode === 1 ? 'active-color' : ''"
+              @click="changeZongAir('mode', 1)"
             >
               <img
                 :src="
                   airData.workMode === 2
-                    ? parseImgUrl('ipdImages', 'airsunred.svg')
-                    : parseImgUrl('ipdImages', 'airsunblack.svg')
+                    ? parseImgUrl('ipdImages', 'aircoldblue.svg')
+                    : parseImgUrl('ipdImages', 'aircoldblack.svg')
                 "
               />
             </div>
@@ -102,14 +104,14 @@
           <div class="icon-box">
             <div
               class="icon-item"
-              :class="airData.workMode === 1 ? 'active-color' : ''"
-              @click="changeZongAir('mode', 1)"
+              :class="airData.workMode === 2 ? 'active-color' : ''"
+              @click="changeZongAir('mode', 2)"
             >
               <img
                 :src="
                   airData.workMode === 1
-                    ? parseImgUrl('ipdImages', 'aircoldblue.svg')
-                    : parseImgUrl('ipdImages', 'aircoldblack.svg')
+                    ? parseImgUrl('ipdImages', 'airsunred.svg')
+                    : parseImgUrl('ipdImages', 'airsunblack.svg')
                 "
               />
             </div>
@@ -163,6 +165,10 @@ export default defineComponent({
       type: Number,
       default: () => 0,
     },
+    airData: {
+      type: Object,
+      default: () => {},
+    },
     // hasAir: {
     //   // 有无空调
     //   type: Boolean,
@@ -241,6 +247,7 @@ export default defineComponent({
       windGearArr: windGearArr, // 风量3/5个档位
       lightIcon: "arrow-down",
       showChild: false,
+      airData: props.airData,
       realTemp: realTemp,
       temperature: props.temperature,
       userIsControl: props.userIsControl,
@@ -250,7 +257,6 @@ export default defineComponent({
       swiperIinit: false,
       parseImgUrl: parseImgUrl,
       part: 1,
-      airData: airData,
       modeName: "",
       showAirVolumeBtn: false, // 是否展示风量调节按钮
       showDialog: false,
@@ -263,57 +269,16 @@ export default defineComponent({
         toWhere: "",
         designTemperature: 0,
       },
-      checkNav(type: any = "all") {
-        proxyData.navType = type;
-        proxyData.swiperIinit = false;
-        if (proxyData.navType == "child") {
-          proxyData.updateChildSatus();
-        } else {
-          proxyData.updateParentSatus();
-        }
-
-        // isAddTimer==0(需要定时再调) isAddTimer==1(不需要定时调)
-        proxyData.getAirInfo(1);
-      },
-      // 点击展示所有的登录
-      async showAll() {
-        proxyData.showChild = !proxyData.showChild;
-        if (proxyData.lightIcon === "arrow-up") {
-          proxyData.lightIcon = "arrow-down";
-        } else {
-          proxyData.lightIcon = "arrow-up";
-        }
-
-        // if (proxyData.showChild) {
-        //   await nextTick(() => {
-        //     proxyData.setChildSelectList();
-        //   });
-        // } else {
-        //   await nextTick(() => {
-        //     proxyData.barSwiperInit();
-        //   });
-        // }
-        if (proxyData.showChild) {
-          proxyData.updateChildSatus();
-        } else {
-          proxyData.updateParentSatus();
-        }
-
-        // isAddTimer==0(需要定时再调) isAddTimer==1(不需要定时调)
-        proxyData.getAirInfo(1);
-
-        // proxyData.getAirInfoToTimer(0);
-      },
       // 设置温度条的位置
       setBarNowPerstion() {
         proxyData.realTemp = proxyData.airTemp;
-        let barBox: any = document.querySelector("#barId");
+        let barBox: any = document.querySelector("#chlidAirBarId");
         // console.log("设置温度位置---");
         // console.log(barBox)
         if (!barBox) {
           return;
         }
-        let sliderBox: any = document.querySelector("#sliderId");
+        let sliderBox: any = document.querySelector("#chlidAirSliderId");
         if (
           proxyData.airTemp >= proxyData.airData.minTempSet &&
           proxyData.airTemp <= proxyData.airData.maxTempSet
@@ -341,9 +306,9 @@ export default defineComponent({
       // 滑动
       endBoxSwiper() {
         proxyData.swiperIinit = true;
-        let handBox: any = document.querySelector("#handId");
-        let barBox: any = document.querySelector("#barId");
-        let sliderBox: any = document.querySelector("#sliderId");
+        let handBox: any = document.querySelector("#chlidAirBarId");
+        let barBox: any = document.querySelector("#chlidAirBarId");
+        let sliderBox: any = document.querySelector("#chlidAirSliderId");
         let isMove: any = false;
         let barLeft: any = 0;
         let sliderWidth: any = sliderBox ? sliderBox.offsetWidth : 1;
@@ -394,24 +359,6 @@ export default defineComponent({
           },
         });
       },
-      // 定时获取空调状态
-      getAirInfoToTimer(timerLong: any = 15000) {
-        let nowTime: any = getRelNowTime();
-        if (timerLong == 15000 && nowTime < "070000" && nowTime > "200000") {
-          timerLong = 300000;
-        }
-        console.log("nowTime===", nowTime);
-
-        if (proxyData.airTimer) {
-          clearTimeout(proxyData.airTimer);
-          proxyData.airTimer = null;
-        }
-        proxyData.airTimer = setTimeout(function () {
-          if (!proxyData.loadingTimer) {
-            proxyData.getAirInfo();
-          }
-        }, timerLong);
-      },
       // 获取操作时长
       getTimerLen() {
         // debugger;
@@ -427,25 +374,6 @@ export default defineComponent({
         return timerLen;
       },
       switchTimer: switchTimer,
-      // 计算loading时间
-      setLoadingNumber() {
-        let timerLen: any = proxyData.getTimerLen();
-        proxyData.switchTimer = setInterval(() => {
-          proxyData.loadingTimer++;
-          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);
-      },
       // 格式化空调数据
       formatAirData(btnType: any, text: any) {
         let obj: any = {};
@@ -499,410 +427,50 @@ export default defineComponent({
       loadinngEnd() {
         proxyData.cotrolLoading = false;
       },
-      // 计算loading时间
-      setChildLoadingNumber(childItem: any) {
-        let timerLen: any = proxyData.getTimerLen();
-        childItem.loadingTimer = 1;
-        childItem.timer = setInterval(() => {
-          childItem.loadingTimer++;
-          if (childItem.loadingTimer >= timerLen) {
-            clearInterval(childItem.timer);
-            childItem.timer = null;
-            childItem.loadingTimer = 0;
-            proxyData.getAirInfoToTimer(0);
-          }
-          console.log("===");
-          console.log(childItem.loadingTimer);
-        }, 1000);
-      },
-      // 连续点击2秒内未点击才发指令
-      childDisabled(childItem: any, data: any) {
-        clearTimeout(childItem.timeOuter);
-        childItem.timeOuter = setInterval(() => {
-          childItem.num--;
-          if (childItem.num == 0) {
-            proxyData.setSpaceCondtioners(data);
-            clearTimeout(childItem.timeOuter);
-          }
-        }, 1000);
-      },
-      // 子设备降低温度
-      changeChildItemAir(btnType: any, childItem: any, symbol: any) {
-        const domAirOpen = !childItem.isOpen;
-        let isExeSpaceTime: Boolean = proxyData.checkDeviceIsExeSpaceTime([
-          childItem,
-        ]);
-        if (
-          proxyData.forceOverTimeFlag &&
-          domAirOpen &&
-          isExeSpaceTime &&
-          btnType == "switch"
-        ) {
-          //需要强制加班
-          contx.emit("triggerWork", 2, childItem);
-          return;
-        }
-        // 空调没有开的时候不让调温度和风量
-        if (!childItem.isOpen && btnType !== "switch") {
-          return;
-        }
-        let arr: any = [];
-        if (btnType === "switch") {
-          if (childItem.loadingTimer >= 1 && childItem.loadingTimer <= 15) {
-            return;
-          }
-          childItem.isOpen = !childItem.isOpen;
-          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;
-          if (symbol === "up") {
-            if (childItem.tempSet >= proxyData.airData.maxTempSet) {
-              return;
-            }
-            childItem.tempSet = childItem.tempSet + 0.5;
-          } else if (symbol === "down") {
-            if (childItem.tempSet <= proxyData.airData.minTempSet) {
-              return;
-            }
-            childItem.tempSet = childItem.tempSet - 0.5;
-          }
-          let obj: any = {
-            id: childItem.id, //类型:String  必有字段  备注:设备id
-            code: childItem.tempSetCode, //类型:String  必有字段  备注:编码 EquipSwtichSet
-            value: childItem.tempSet, //类型:String  必有字段  备注:值 0
-          };
-          arr.push(obj);
-          proxyData.childDisabled(childItem, arr);
-        } else if (btnType === "gear") {
-          if (symbol === "up") {
-            if (childItem.isAutoGear) {
-              return;
-            }
-            if (childItem.gear >= 3) {
-              childItem.isAutoGear = 1;
-            } else {
-              childItem.gear++;
-              childItem.isAutoGear = 0;
-            }
-          } else if (symbol === "down") {
-            if (!childItem.isAutoGear && childItem.gear <= 1) {
-              return;
-            }
-            if (childItem.isAutoGear) {
-              childItem.isAutoGear = 0;
-              childItem.gear = 3;
-            } else {
-              childItem.gear--;
-            }
-          }
-          let obj: any = {
-            id: childItem.id, //类型:String  必有字段  备注:设备id
-            code: childItem.gearCode, //类型:String  必有字段  备注:编码 EquipSwtichSet
-            value: childItem.isAutoGear ? 4 : childItem.gear, //类型:String  必有字段  备注:值 0
-          };
-          arr.push(obj);
-        } else if (btnType === "model") {
-          if (symbol === "up") {
-            if (childItem.workMode >= 3) {
-              return;
-            }
-            childItem.workMode++;
-          } else if (symbol === "down") {
-            if (childItem.workMode <= 1) {
-              return;
-            }
-            childItem.workMode--;
-          }
-          let obj: any = {
-            id: childItem.id, //类型:String  必有字段  备注:设备id
-            code: childItem.modeSetCode, //类型:String  必有字段  备注:编码 EquipSwtichSet
-            value: childItem.workMode, //类型:String  必有字段  备注:值 0
-          };
-          arr.push(obj);
-        }
-        // 空调调节后先不刷新,等2分钟后更新状态
-        proxyData.updateAirStatus();
-        // 修改单个设备的状态
-        if (btnType !== "temp") {
-          proxyData.setSpaceCondtioners(arr);
-        }
-        proxyData.updateChildPerstion();
-      },
       // 改变设备状态
       setSpaceCondtioners(data: any) {
         setSpaceCondtioners(data)
           .then((res) => {
-            // proxyData.setLoadingNumber();
             proxyData.loadinngEnd();
           })
           .catch(() => {
-            // proxyData.setLoadingNumber();
             proxyData.loadinngEnd();
             Toast("连接异常,请检查网络!");
           });
       },
       // 改变空调状态
       changeZongAir(btnType: any, text: any) {
-        if (!proxyData.airData.isOpen) return;
         let equpObj: any = proxyData.formatAirData(btnType, text);
+        if (!(equpObj && equpObj.codeKey)) {
+          return;
+        }
         let data: any = [];
-        proxyData.equipList.map((item: any) => {
-          let obj: any = {
-            id: item.id, //类型:String  必有字段  备注:设备id
-            code: item[equpObj.codeKey], //类型:String  必有字段  备注:编码 EquipSwtichSet
-            value: equpObj.value, //类型:String  必有字段  备注:值 0
-          };
-          data.push(obj);
-        });
+        let obj: any = {
+          id: proxyData.airData.id, //类型:String  必有字段  备注:设备id
+          code: proxyData.airData[equpObj.codeKey], //类型:String  必有字段  备注:编码 EquipSwtichSet
+          value: equpObj.value, //类型:String  必有字段  备注:值 0
+        };
+        data.push(obj);
         console.log("设备数据处理---");
         console.log(data);
         if (!proxyData.cotrolLoading) {
           proxyData.loadingStart();
-          // 调整设备状态
-          proxyData.updateAirStatus();
           proxyData.setSpaceCondtioners(data);
         }
       },
-      // 检查设备是否执行空间服务时间
-      checkDeviceIsExeSpaceTime(deviceAll: any = []) {
-        let seviceEquipmentList: any = proxyData.seviceEquipmentList;
-        let flag: any = false;
-        // debugger
-        for (let i = 0; i < seviceEquipmentList.length; i++) {
-          for (let j = 0; j < deviceAll.length; j++) {
-            if (
-              seviceEquipmentList[i].id == deviceAll[j].id &&
-              seviceEquipmentList[i].isExeSpaceTime
-            ) {
-              flag = true;
-              break;
-            }
-          }
-          if (flag) {
-            break;
-          }
-        }
-        return flag;
-      },
-      // 刷新空调状态的接口
-      updateAirStatus() {
-        clearTimeout(proxyData.airTimer);
-        proxyData.airTimer = null;
-        proxyData.loadingTimer = 1;
-        if (!proxyData.switchTimer) {
-          proxyData.setLoadingNumber();
-        }
-      },
-      // 点击总开关,前端更新子设备的状态
-      updateChildSatus() {
-        proxyData.equipList.map((item: any) => {
-          item.isOpen = proxyData.airData.isOpen;
-        });
-      },
-      // 更新总开关的开关状态
-      updateParentSatus() {
-        let flag: any = false;
-        proxyData.equipList.map((item: any) => {
-          if (item.isOpen) {
-            flag = true;
-          }
-        });
-        proxyData.airData.isOpen = flag;
-      },
-      // 总控制改变空调状态
-      airChange() {
-        // 先不更新状态等确认框弹出后再更新状
-        // 操作空调
-        const domAirOpen = !proxyData.airData.isOpen;
-        let isExeSpaceTime: Boolean = proxyData.checkDeviceIsExeSpaceTime(
-          proxyData.equipList
-        );
-        if (proxyData.forceOverTimeFlag && domAirOpen && isExeSpaceTime) {
-          //需要强制加班
-          contx.emit("triggerWork", 2);
-          return;
-        }
-
-        proxyData.airData.isOpen = !proxyData.airData.isOpen;
-        proxyData.loadingAir = true;
-        // 操作空调后,先关闭定时刷新接口,等固定时间再更新空调状态
-        proxyData.updateAirStatus();
-
-        if (proxyData.airData.isOpen) {
-          nextTick(() => {
-            proxyData.barSwiperInit();
-          });
-        }
-        let data: any = [];
-        proxyData.equipList.map((item: any) => {
-          let obj: any = {
-            id: item.id, //类型:String  必有字段  备注:设备id
-            code: item.switchCode, //类型:String  必有字段  备注:编码 EquipSwtichSet
-            value: proxyData.airData.isOpen ? "1" : "0", //类型:String  必有字段  备注:值 0
-          };
-          data.push(obj);
-        });
-        // 设备状态处理
-        proxyData.setSpaceCondtioners(data);
-      },
-      // 设置子设备的状态
-      formateSetChildStatus() {
-        proxyData.equipList.map((item: any) => {
-          item.isOpen = item.runStatus === 1 ? true : false;
-        });
-      },
       // 初始化滚动
       async barSwiperInit() {
-        if (proxyData.airData.isOpen && !proxyData.showChild) {
-          proxyData.endBoxSwiper();
-          // debugger
-          proxyData.setBarNowPerstion();
-        }
-      },
-      // 设置子设备的可调范围
-      setChildSelectList() {
-        proxyData.equipList.map((item: any) => {
-          let tempArr: any = [];
-          for (
-            let i = proxyData.airData.minTempSet;
-            i <= proxyData.airData.maxTempSet;
-            i = i + 0.5
-          ) {
-            tempArr.push(i);
-          }
-          item.tempArr = tempArr;
-          let index: any = item.tempArr.findIndex((ele: any) => {
-            return ele == item.tempSet;
-          });
-          item.sel = index == -1 ? 0 : index;
-
-          let modelArr: any = ["制冷", "制热", "通风"];
-          item.modelArr = modelArr;
-          if (item.workMode > 3) {
-            item.workMode = 1;
-          }
-          let mIndex: any = item.workMode ? item.workMode - 1 : 2;
-          item.mIndex = mIndex;
-
-          let gearArr: any = [0, 1, 2, 3, "AUTO"];
-          item.gearArr = gearArr;
-          let gIndex: any = item.gearArr.findIndex((ele: any) => {
-            if (item.isAutoGear == 1) {
-              return ele == "AUTO";
-            } else {
-              return ele == item.gear;
-            }
-          });
-          item.gIndex = gIndex == -1 ? 0 : gIndex;
-        });
-        proxyData.setValueHeight();
-      },
-      setValueHeight() {
-        if (!proxyData.valueHeight) {
-          proxyData.valueDom = proxyData.valueDom
-            ? proxyData.valueDom
-            : document.querySelectorAll(".value")[0];
-          proxyData.valueHeight = proxyData.valueDom
-            ? proxyData.valueDom.offsetHeight
-            : 0;
-        }
-        console.log("proxyData.valueHeight==", proxyData.valueHeight);
-      },
-      // 改变子设备选中的位置
-      updateChildPerstion() {
-        proxyData.equipList.map((item: any) => {
-          let index: any = item.tempArr.findIndex((ele: any) => {
-            return ele == item.tempSet;
-          });
-          item.sel = index == -1 ? 0 : index;
-
-          let mIndex: any = item.workMode ? item.workMode - 1 : 2;
-          item.mIndex = mIndex;
-
-          let gIndex: any = item.gearArr.findIndex((ele: any) => {
-            if (item.isAutoGear == 1) {
-              return ele == "AUTO";
-            } else {
-              return ele == item.gear;
-            }
-          });
-          item.gIndex = gIndex == -1 ? 0 : gIndex;
-        });
-      },
-      // 空调信息airTemp的修改
-      getAirInfo(isAddTimer: any = 0) {
-        const paramObj = {
-          spaceId: proxyData.spaceId,
-          // spaceId: props.spaceId,//'Sp110108025564f438d7fef64eea8202a6462f1bbcce' 空间id
-        };
-        //wx.showLoading();
-        let str: any = setQueryConfig(paramObj);
-        querySpaceConditioners(str)
-          .then((res) => {
-            let data: any = res.data || {};
-            proxyData.firstLoadingAir = false;
-            proxyData.loadingAir = false;
-            proxyData.airTemp = data.tempSet;
-            proxyData.airData.maxTempSet = data.maxTempSet;
-            proxyData.airData.minTempSet = data.minTempSet;
-            proxyData.airData.isOpen = data.runStatus ? true : false;
-            proxyData.airData.runStatus = data.runStatus;
-            proxyData.airData.isAutoGear = data.isAutoGear;
-            proxyData.airData.gear = data.gear || 0;
-            proxyData.airData.workMode = data.workMode;
-            proxyData.equipList = data.equipList;
-            proxyData.equipList.push(data.equipList[0]);
-            // 设置子设备的状态
-            proxyData.setChildSelectList();
-            proxyData.formateSetChildStatus();
-            nextTick(() => {
-              proxyData.barSwiperInit();
-            });
-            if (isAddTimer == 0) {
-              proxyData.getAirInfoToTimer();
-            }
-          })
-          .catch(() => {});
-      },
-    });
-    watch(
-      [() => props, () => props.spaceId],
-      (newProps: any, oldProps: any) => {
-        if (newProps[0]) {
-          proxyData.temperature = newProps[0].temperature;
-          proxyData.userIsControl = newProps[0].userIsControl;
-          proxyData.forceOverTimeFlag = newProps[0].forceOverTimeFlag;
-          proxyData.seviceEquipmentList = newProps[0].seviceEquipmentList;
-        }
-        if (newProps[1] && newProps[1] != oldProps[1]) {
-          proxyData.spaceId = newProps[1];
-          proxyData.swiperIinit = false;
-          proxyData.getAirInfoToTimer(0);
-        }
-      },
-      {
-        deep: true,
-        immediate: true,
-      }
-    );
-    onBeforeUnmount(() => {
-      if (proxyData.airTimer) {
-        clearTimeout(proxyData.airTimer);
-        proxyData.airTimer = null;
+        proxyData.endBoxSwiper();
+        // debugger
+        proxyData.setBarNowPerstion();
       }
     });
+    onBeforeUnmount(() => {});
     onMounted(() => {
-      proxyData.spaceId = props.spaceId;
-      proxyData.getAirInfoToTimer(0);
-      // 获取空调信息
+      proxyData.airTemp = props.airData.tempSet;
+      nextTick(() => {
+        proxyData.barSwiperInit();
+      });
     });
     return {
       ...toRefs(proxyData),

+ 48 - 30
src/views/envmonitor/components/Air/manualIndex.vue

@@ -123,30 +123,31 @@
           <div class="volume-icon">
             <div
               class="icon-item"
-              :class="airData.workMode === 2 ? 'active-color' : ''"
-              @click="changeZongAir('mode', 2)"
+              :class="airData.workMode === 1 ? 'active-color' : ''"
+              @click="changeZongAir('mode', 1)"
             >
               <img
                 :src="
-                  airData.workMode === 2
-                    ? parseImgUrl('ipdImages', 'airsunred.svg')
-                    : parseImgUrl('ipdImages', 'airsunblack.svg')
+                  airData.workMode === 1
+                    ? parseImgUrl('ipdImages', 'aircoldblue.svg')
+                    : parseImgUrl('ipdImages', 'aircoldblack.svg')
                 "
               />
             </div>
             <div
               class="icon-item"
-              :class="airData.workMode === 1 ? 'active-color' : ''"
-              @click="changeZongAir('mode', 1)"
+              :class="airData.workMode === 2 ? 'active-color' : ''"
+              @click="changeZongAir('mode', 2)"
             >
               <img
                 :src="
-                  airData.workMode === 1
-                    ? parseImgUrl('ipdImages', 'aircoldblue.svg')
-                    : parseImgUrl('ipdImages', 'aircoldblack.svg')
+                  airData.workMode === 2
+                    ? parseImgUrl('ipdImages', 'airsunred.svg')
+                    : parseImgUrl('ipdImages', 'airsunblack.svg')
                 "
               />
             </div>
+
             <div
               class="icon-item"
               :class="airData.workMode === 3 ? 'active-color' : ''"
@@ -169,30 +170,28 @@
     <div class="air-child" v-if="navType == 'child'">
       <div
         class="child-control-box"
-        @click="showAirColorCtrol(item)"
+        @click="showAirColorCtrol(childItem)"
         :key="'child' + index"
         v-for="(childItem, index) in equipList"
       >
         <div class="open-title">
           <div class="open-temp-box">
             <span>{{ childItem.tempSet }}<sup>°C</sup></span>
-            <div class="text-box">
+            <div class="text-box" v-if="childItem.workMode == 2">
               <img :src="parseImgUrl('ipdImages', 'hot-small.svg')" alt="" />
               <span>制热模式</span>
             </div>
+            <div class="text-box" v-else-if="childItem.workMode == 1">
+              <img :src="parseImgUrl('ipdImages', 'cold-small.svg')" alt="" />
+              <span>制冷模式</span>
+            </div>
+            <div class="text-box" v-else>
+              <img :src="parseImgUrl('ipdImages', 'wind_small.svg')" alt="" />
+              <span>通风模式</span>
+            </div>
           </div>
           <Switch
             @click.stop="changeChildItemAir('switch', childItem, 'switch')"
-            :loading="
-              childItem.loadingTimer > 0 && childItem.loadingTimer <= 15
-                ? true
-                : false
-            "
-            :disabled="
-              childItem.loadingTimer > 0 && childItem.loadingTimer <= 15
-                ? true
-                : false
-            "
             :model-value="childItem.isOpen"
             class="child-switch"
             inactive-color="rgba(196, 196, 196, 0.4)"
@@ -353,9 +352,15 @@ export default defineComponent({
         // isAddTimer==0(需要定时再调) isAddTimer==1(不需要定时调)
         proxyData.getAirInfo(1);
       },
-      // 展示灯的控制
+      // 展示空调子设备的控制页面
       showAirColorCtrol(item: any) {
-        contx.emit("showChildAirControl", item);
+        // 只要空调开着的时候才可以调档位和风量
+        console.log(item);
+        if (item.isOpen) {
+          item.maxTempSet = proxyData.airData.maxTempSet;
+          item.minTempSet = proxyData.airData.minTempSet;
+          contx.emit("showChildAirControl", item);
+        }
       },
       // 点击展示所有的登录
       async showAll() {
@@ -608,7 +613,7 @@ export default defineComponent({
           }
         }, 1000);
       },
-      // 子设备降低温度
+      // 子设备开关控制
       changeChildItemAir(btnType: any, childItem: any, symbol: any) {
         const domAirOpen = !childItem.isOpen;
         let isExeSpaceTime: Boolean = proxyData.checkDeviceIsExeSpaceTime([
@@ -640,9 +645,6 @@ export default defineComponent({
             value: childItem.isOpen ? "1" : "0", //类型:String  必有字段  备注:值 0
           };
           arr.push(obj);
-          // clearTimeout(proxyData.airTimer);
-          // proxyData.setChildLoadingNumber(childItem);
-          // loadig的状态
         } else if (btnType === "temp") {
           childItem.num = 2;
           if (symbol === "up") {
@@ -716,7 +718,6 @@ export default defineComponent({
         if (btnType !== "temp") {
           proxyData.setSpaceCondtioners(arr);
         }
-        proxyData.updateChildPerstion();
       },
       // 改变设备状态
       setSpaceCondtioners(data: any) {
@@ -735,6 +736,7 @@ export default defineComponent({
       changeZongAir(btnType: any, text: any) {
         if (!proxyData.airData.isOpen) return;
         let equpObj: any = proxyData.formatAirData(btnType, text);
+        if (!(equpObj && equpObj.codeKey)) return;
         let data: any = [];
         proxyData.equipList.map((item: any) => {
           let obj: any = {
@@ -774,6 +776,22 @@ export default defineComponent({
         }
         return flag;
       },
+      // 加班更新按钮的状态
+      updateSwitchFromWork(deviceItem: any) {
+        if (deviceItem) {
+          proxyData.equipList.map((item: any) => {
+            if (item.id === deviceItem.id) {
+              item.isOpen = true;
+              proxyData.airData.isOpen = true;
+            }
+          });
+        } else {
+          proxyData.airData.isOpen = true;
+        }
+        nextTick(() => {
+          proxyData.barSwiperInit();
+        });
+      },
       // 刷新空调状态的接口
       updateAirStatus() {
         clearTimeout(proxyData.airTimer);
@@ -1174,7 +1192,7 @@ export default defineComponent({
         .open-temp-box {
           position: relative;
           display: inline-block;
-          width: calc(100% - 50px);
+          // width: calc(100% - 50px);
           overflow: hidden;
           span {
             text-overflow: ellipsis;

+ 2 - 2
src/views/envmonitor/components/ManualWork/index.vue

@@ -1408,7 +1408,7 @@ export default defineComponent({
       // 关闭加班弹窗
       closeWorkTimer() {
         proxyData.formBtn = false;
-        context.emit("closeWork");
+        context.emit("closeWork", "cancel");
       },
       // 数组去除重复
       removeDuplicateObj(arr: any) {
@@ -1556,7 +1556,7 @@ export default defineComponent({
           })
           .catch(() => {
             // proxyGlobal.proxy.$loadinngEnd();
-            context.emit("closeWork");
+            context.emit("closeWork", "cancel");
             proxyData.showLoading = false;
             proxyData.formBtn = false;
           });

+ 2 - 2
src/views/envmonitor/components/workOvertime/index.vue

@@ -1035,7 +1035,7 @@ export default defineComponent({
       // 关闭加班弹窗
       closeWorkTimer() {
         proxyData.formBtn = false;
-        context.emit("closeWork");
+        context.emit("closeWork", "cancel");
       },
       // 提交申请
       addWorkTimer() {
@@ -1054,7 +1054,7 @@ export default defineComponent({
             proxyData.formBtn = false;
           })
           .catch(() => {
-            context.emit("closeWork");
+            context.emit("closeWork", "cancel");
             proxyData.showLoading = false;
             proxyData.formBtn = false;
           });

+ 24 - 8
src/views/envmonitor/index.vue

@@ -176,6 +176,7 @@
       <manual-index
         v-if="controlMode == 1 && spaceExistenceDevice.airConditioner"
         key="manualKey"
+        ref="manualAirRef"
         @triggerWork="triggerWork"
         :seviceEquipmentList="seviceEquipmentList"
         :forceOverTimeFlag="forceOverTimeFlag"
@@ -261,6 +262,7 @@
     <van-popup
       v-model:show="isShowWork"
       position="right"
+      :close-on-click-overlay="false"
       class="popup-content"
       teleport="#app"
     >
@@ -386,13 +388,15 @@
     <van-popup
       v-model:show="isChildAirControl"
       position="right"
-      :close-on-click-overlay="true"
-      @click-overlay="closeCurtainOpening"
+      @click-overlay="closeChildAirControl"
       class="popup-content-small"
       teleport="#app"
     >
       <div v-if="isChildAirControl">
-        <ChildAirControl v-if="isChildAirControl"></ChildAirControl>
+        <ChildAirControl
+          :airData="airData"
+          v-if="isChildAirControl"
+        ></ChildAirControl>
       </div>
     </van-popup>
   </div>
@@ -554,6 +558,7 @@ export default defineComponent({
       bodySensor: false,
     };
     let curtainRef: any = {};
+    let manualAirRef: any = {};
     // let mapRef: any = {}
     let intervalTimer: any = null;
     const workInfo: any = {};
@@ -701,6 +706,7 @@ export default defineComponent({
     let allDevice: any = [];
     let spaceEquipList: any = [];
     let equipTimer: any = null;
+    let airData: any = {};
     const proxyData = reactive({
       equipTimer: equipTimer,
       seviceEquipmentList: allDevice, // 所有的设备
@@ -727,6 +733,7 @@ export default defineComponent({
       mapOpacity: 0,
       opacityV: 1,
       curtainRef: curtainRef,
+      manualAirRef: manualAirRef,
       hideTopImg: false,
       isBottom: false,
       isScrool: false,
@@ -920,12 +927,16 @@ export default defineComponent({
         proxyData.isCurtainOpening = true;
       },
       // 展开子设备控制
+      airData: airData,
       isChildAirControl: false,
-      showChildAirControl() {
+      showChildAirControl(item: any) {
+        proxyData.airData = item;
         proxyData.isChildAirControl = true;
       },
       // 关闭空调控制弹窗
-      closeChildAirControl() {},
+      closeChildAirControl() {
+        proxyData.manualAirRef.getAirInfo(1);
+      },
       closeCurtainOpening() {
         console.log("被点击了");
         proxyData.curtainRef.updateGroupPeing();
@@ -1015,11 +1026,16 @@ export default defineComponent({
       /**
        * 关闭加班
        */
-      closeWork() {
+      closeWork(type: any = "confirm") {
         proxyData.isShowWork = false;
-        // console.log("关闭加班功能---");
-        // proxyData.queryCustomAndScenceTimer(0);
         proxyData.queryCustomAndScence(2); // 关闭弹窗立即调用刷新加班数据
+        if (proxyData.enterType == 2 && type == "confirm") {
+          //  空调
+          if (proxyData.controlMode == 1) {
+            // 手动控制
+            proxyData.manualAirRef.updateSwitchFromWork(proxyData.deviceItem);
+          }
+        }
       },
       forceOverTimeFlag: false,
       setForceOverTimeFlag(flag: any) {