Bläddra i källkod

fix:设备的bug修改

chenzhen2 1 år sedan
förälder
incheckning
44f8d9c707

+ 2 - 2
src/apis/envmonitor.ts

@@ -278,8 +278,8 @@ export const querySpaceConditioners = (params: any) => {
  * 设备手动控制
  */
 export const setSpaceCondtioners = (data: any) => {
-  return post(`${duoduoenvService}ctrl/set`, data)
-  // return post(`${testApi}ctrl/set`, data)
+  // return post(`${duoduoenvService}ctrl/set`, data)
+  return post(`${testApi}ctrl/set`, data)
 }
 
 // 地图数据保存

+ 17 - 13
src/views/envmonitor/components/FloorHeating/ChildTempSet.vue

@@ -14,10 +14,10 @@
             <!-- <div class="bar-temp">{{ realTemp }}℃</div> -->
             <div class="bar-circle" id="handFloorId2"></div>
           </div>
-          <div class="temp-left" style="width: 22px">
+          <div class="temp-left" id="tempLeftId">
             {{ floorData.minTempSet }}
           </div>
-          <div class="temp-right" style="width: 22px">
+          <div class="temp-right">
             {{ floorData.maxTempSet }}
           </div>
         </div>
@@ -79,11 +79,11 @@ export default defineComponent({
       // 改变设备状态
       setSpaceCondtioners(data: any) {
         console.log("调节数据", data);
-        // setSpaceCondtioners(data)
-        //   .then((res) => {})
-        //   .catch(() => {
-        //     Toast("连接异常,请检查网络!");
-        //   });
+        setSpaceCondtioners(data)
+          .then((res) => {})
+          .catch(() => {
+            Toast("连接异常,请检查网络!");
+          });
       },
       getEleWidth(ele: any) {
         // debugger;
@@ -93,14 +93,17 @@ export default defineComponent({
           return 1;
         }
       },
+      sliderPading:0,
       // 滑动
       endBoxSwiper() {
         proxyData.swiperIinit = true;
         let handBox: any = document.querySelector("#handFloorId2");
         let barBox: any = document.querySelector("#barFloorId2");
         let sliderBox: any = document.querySelector("#slideFloorId2");
-        let sliderPadingL: any = 24;
-        let sliderPadingR: any = 24;
+        let tempLeftBox: any = document.querySelector("#tempLeftId");
+        let sliderPadingL: any = proxyData.getEleWidth(tempLeftBox);
+        let sliderPadingR: any = sliderPadingL;
+        proxyData.sliderPading = sliderPadingL;
         let isMove: any = false;
         let barLeft: any = 0;
         let sliderWidth: any = proxyData.getEleWidth(sliderBox);
@@ -177,15 +180,15 @@ export default defineComponent({
           let left: any =
             (proxyData.realTemp - proxyData.floorData.minTempSet) /
             proxyData.part;
-          left = Math.floor(left) + 24;
+          left = Math.floor(left) + proxyData.sliderPading ;
           if (barBox) {
             barBox.style.left = left + "px";
           }
         } else {
           if (!proxyData.realTemp) {
-            barBox.style.left = 24 + "px";
+            barBox.style.left = proxyData.sliderPading  + "px";
           } else if (proxyData.realTemp < proxyData.floorData.minTempSet) {
-            barBox.style.left = 24 + "px";
+            barBox.style.left = proxyData.sliderPading  + "px";
           } else if (proxyData.realTemp > proxyData.floorData.maxTempSet) {
             let sliderWidth: any = sliderBox.offsetWidth;
             let barWidth: any = barBox.offsetWidth;
@@ -207,7 +210,6 @@ export default defineComponent({
     onBeforeUnmount(() => {});
     onMounted(() => {
       proxyData.barSwiperInit();
-      console.log("proxyData.floorData===", proxyData.floorData);
     });
     return {
       ...toRefs(proxyData),
@@ -281,6 +283,7 @@ export default defineComponent({
           font-style: normal;
           font-weight: 400;
           font-size: 12px;
+          width: 32px;
           line-height: 22px;
           text-align: right;
           color: #626c78;
@@ -292,6 +295,7 @@ export default defineComponent({
         .temp-right {
           right: 0px;
           padding-right: 8px;
+          text-align: left;
         }
 
         .slider-bar {

+ 86 - 163
src/views/envmonitor/components/FloorHeating/index.vue

@@ -49,18 +49,18 @@
       </div>
     </div>
 
-    <div class="air-control air-control-padding" v-if="navType == 'all'">
+    <div class="floor-control floor-control-padding" v-if="navType == 'all'">
       <div class="control-box">
         <div class="temp-slider" id="slideFloorId">
           <div class="slider-bar" id="barFloorId">
             <div class="bar-temp">{{ realTemp ? realTemp + "℃" : "--" }}</div>
             <div class="bar-circle" id="handFloorId"></div>
           </div>
-          <div class="temp-left" style="width: 22px">
-            {{ floorHeatingData.minTempSet }}
+          <div class="temp-left" id="tempLeftId">
+            {{ heatingData.minTempSet }}
           </div>
-          <div class="temp-right" style="width: 22px">
-            {{ floorHeatingData.maxTempSet }}
+          <div class="temp-right">
+            {{ heatingData.maxTempSet }}
           </div>
         </div>
       </div>
@@ -78,7 +78,6 @@
             </div>
             <Switch
               active-color="$elActiveColor"
-              :disabled="!userIsControl"
               v-model="item.switch"
               :loading="item.loading"
               size="14px"
@@ -138,10 +137,6 @@ export default defineComponent({
       type: String,
       default: () => "",
     },
-    controlMode: {
-      type: Number,
-      default: () => 0,
-    },
     spaceId: {
       type: String,
       default: () => "",
@@ -154,10 +149,6 @@ export default defineComponent({
       type: Boolean,
       default: () => false,
     },
-    showLight: {
-      type: Boolean,
-      default: () => false,
-    },
     seviceEquipmentList: {
       // 是否走服务定制的设备
       type: Array,
@@ -167,68 +158,46 @@ export default defineComponent({
   components: { Switch },
   setup(props, contx) {
     const floorHeatingList: any = [];
-    let floorHeatingData: any = {};
-    let lightsStatusTimer: any = null;
+    let heatingData: any = {};
+    let floorHeathingStatus: any = null;
     const timeOut: any = null;
-    const initData: any = [];
-    let lightParams: any = [];
-    let heatingData: any = {
-      minTempSet: 16,
-      maxTempSet: 35,
-    };
     const proxyData = reactive({
       seviceEquipmentList: props.seviceEquipmentList,
-      showLight: props.showLight,
-      spaceId: props.spaceId,
-      controlMode: props.controlMode,
-      userIsControl: props.userIsControl,
       forceOverTimeFlag: props.forceOverTimeFlag,
-      setStatus: false,
-      lightParams: lightParams,
+      spaceId: props.spaceId,
       heatingData: heatingData,
-      heatingTemp: 35,
       isOpen: false,
       parseImgUrl: parseImgUrl,
-      allowSvg: "down_Arrow.svg",
       timeOut: timeOut,
-      lightIcon: "arrow-down",
-      loadMore: false,
-      loadingLight: false,
       loadingFlag: false,
-      initData: initData,
       floorHeatingList: floorHeatingList,
-      floorHeatingData: floorHeatingData,
-      lightsStatusTimer: lightsStatusTimer,
-      startCheckLightsTime: 0,
-      lightColorImg: parseImgUrl("page-officehome", "lightColorControl.svg"),
-      lightImg: parseImgUrl("page-officehome", "lamp_close.png"),
-      lampSw: false, // 主灯开关
+      floorHeathingStatus: floorHeathingStatus,
       swiperIinit: false,
       part: 1,
       realTemp: 0,
       navType: "all",
       runStatus: 0,
+      lightColorImg: parseImgUrl("page-officehome", "lightColorControl.svg"),
       showFloorHeating(floorHeatingItem: any) {
         let item: any = floorHeatingItem;
         if (!item.switch) {
           Toast("请先开启地暖,才可温度调节!");
           return;
         }
-        item.minTempSet = proxyData.floorHeatingData.minTempSet;
-        item.maxTempSet = proxyData.floorHeatingData.maxTempSet;
+        item.minTempSet = proxyData.heatingData.minTempSet;
+        item.maxTempSet = proxyData.heatingData.maxTempSet;
         contx.emit("showFloorHeating", item);
       },
-      // 改变空调状态(main)
+      // 改变地暖态(main)
       changeZongAir(text: any) {
-        if (text == "temp" && !proxyData.runStatus) {
+        if (text == "temp" && !proxyData.heatingData.runStatus) {
           return;
         }
-        proxyData.runStatus = proxyData.isOpen ? 1 : 0;
         let data: any = [];
         proxyData.floorHeatingList.map((item: any) => {
           let code: any = text == "temp" ? item.tempSetCode : item.switchCode;
           let value: any =
-            text == "temp" ? proxyData.realTemp : proxyData.runStatus;
+            text == "temp" ? proxyData.realTemp : proxyData.isOpen ? 1 : 0;
           let obj: any = {
             id: item.id, //类型:String  必有字段  备注:设备id
             code: code, //类型:String  必有字段  备注:编码 EquipSwtichSet
@@ -239,10 +208,10 @@ export default defineComponent({
         if (!proxyData.loadingFlag) {
           // 调整设备状态
           proxyData.loadingFlag = false;
-          // proxyData.setSpaceCondtioners(data);
+          proxyData.setSpaceCondtioners(data);
         }
       },
-      // 改变空调状态(child)
+      // 改变地暖态(child)
       changeChildZongAir(text: any, item: any) {
         let runStatus: any = item.switch ? 1 : 0;
         let data: any = [];
@@ -260,7 +229,7 @@ export default defineComponent({
         if (!item.loading) {
           // 调整设备状态
           item.loading = false;
-          // proxyData.setSpaceCondtioners(data, item);
+          proxyData.setSpaceCondtioners(data, item);
         }
       },
       // 改变设备状态
@@ -297,35 +266,48 @@ export default defineComponent({
       // 子设备导航切换
       checkNav(type: any = "all") {
         proxyData.navType = type;
+        proxyData.swiperIinit = false;
+        proxyData.sliderInit();
       },
       getEleWidth(ele: any) {
-        // debugger;
         if (ele) {
           return ele.getBoundingClientRect().width;
         } else {
           return 1;
         }
       },
+      sliderPading: 32,
+      // 初始化滑动
+      sliderInit() {
+        nextTick(() => {
+          if (proxyData.navType == "all" && !proxyData.swiperIinit) {
+            proxyData.endBoxSwiper();
+          }
+          if (proxyData.navType == "all") {
+            proxyData.setBarNowPerstion();
+          }
+        });
+      },
       // 滑动
       endBoxSwiper() {
         proxyData.swiperIinit = true;
         let handBox: any = document.querySelector("#handFloorId");
         let barBox: any = document.querySelector("#barFloorId");
         let sliderBox: any = document.querySelector("#slideFloorId");
-        let sliderPadingL: any = 24;
-        let sliderPadingR: any = 24;
         let isMove: any = false;
         let barLeft: any = 0;
         let sliderWidth: any = proxyData.getEleWidth(sliderBox);
         let barWidth: any = proxyData.getEleWidth(barBox);
+        let tempLeftBox: any = document.querySelector("#tempLeftId");
+        let sliderPadingL: any = proxyData.getEleWidth(tempLeftBox);
+        let sliderPadingR: any = sliderPadingL;
         if (sliderWidth > 1) {
           sliderWidth = sliderWidth - sliderPadingR - sliderPadingL - barWidth;
         }
         let tempPart =
-          (proxyData.floorHeatingData.maxTempSet -
-            proxyData.floorHeatingData.minTempSet) /
+          (proxyData.heatingData.maxTempSet -
+            proxyData.heatingData.minTempSet) /
           sliderWidth;
-        console.log("tempPart==", tempPart);
         let part: any = tempPart;
         proxyData.part = part;
         if (!handBox) {
@@ -351,7 +333,7 @@ export default defineComponent({
               barBox.style.left = left + "px";
               proxyData.realTemp =
                 (left - sliderPadingL) * part +
-                proxyData.floorHeatingData.minTempSet;
+                proxyData.heatingData.minTempSet;
               proxyData.realTemp = Math.round(proxyData.realTemp);
             }
           },
@@ -367,7 +349,7 @@ export default defineComponent({
               barBox.style.left = left + "px";
               proxyData.realTemp =
                 (left - sliderPadingL) * part +
-                proxyData.floorHeatingData.minTempSet;
+                proxyData.heatingData.minTempSet;
               proxyData.realTemp = Math.round(proxyData.realTemp);
             }
           },
@@ -375,33 +357,35 @@ export default defineComponent({
       },
       // 设置温度条的位置
       setBarNowPerstion() {
-        proxyData.realTemp =
-          proxyData.heatingData && proxyData.heatingData.tempSet
-            ? proxyData.heatingData.tempSet
-            : 0;
+        proxyData.realTemp = proxyData.heatingData.tempSet
+          ? proxyData.heatingData.tempSet
+          : 0;
+
         let barBox: any = document.querySelector("#barFloorId");
         if (!barBox) {
           return;
         }
         let sliderBox: any = document.querySelector("#slideFloorId");
+        let tempLeftBox: any = document.querySelector("#tempLeftId");
+        let sliderPading: any = proxyData.getEleWidth(tempLeftBox);
         if (
-          proxyData.realTemp !== 0 &&
-          proxyData.heatingTemp >= proxyData.heatingData.minTempSet &&
-          proxyData.heatingTemp <= proxyData.heatingData.maxTempSet
+          proxyData.realTemp >= proxyData.heatingData.minTempSet &&
+          proxyData.realTemp <= proxyData.heatingData.maxTempSet
         ) {
           // 正常温度范围
           let left: any =
             (proxyData.realTemp - proxyData.heatingData.minTempSet) /
             proxyData.part;
-          left = Math.floor(left) + 24;
+          left = Math.floor(left) + sliderPading;
+
           if (barBox) {
             barBox.style.left = left + "px";
           }
         } else {
           if (!proxyData.realTemp) {
-            barBox.style.left = 24 + "px";
+            barBox.style.left = sliderPading + "px";
           } else if (proxyData.realTemp < proxyData.heatingData.minTempSet) {
-            barBox.style.left = 24 + "px";
+            barBox.style.left = sliderPading + "px";
           } else if (proxyData.realTemp > proxyData.heatingData.maxTempSet) {
             let sliderWidth: any = sliderBox.offsetWidth;
             let barWidth: any = barBox.offsetWidth;
@@ -409,74 +393,36 @@ export default defineComponent({
           }
         }
       },
-      // 点击展示所有的登录
-      showAll() {
-        proxyData.loadMore = !proxyData.loadMore;
-        console.log("proxyData.loadMore==", proxyData.loadMore);
-        if (proxyData.loadMore) {
-          proxyData.lightIcon = "arrow-up";
+      // 格式化地暖数据状态
+      formateDataStatus() {
+        if (proxyData.heatingData.runStatus) {
+          proxyData.isOpen = true;
         } else {
-          proxyData.lightIcon = "arrow-down";
-        }
-      },
-      // 点击展示调色和调温弹窗
-      showLightColorCtrol(item: any, e: any = null) {
-        console.log(item);
-        if (item.switch) {
-          contx.emit("showLightColorCtrol", item);
-        }
-      },
-      // 检查设备是否执行空间服务时间
-      checkDeviceIsExeSpaceTime(deviceAll: any = []) {
-        // debugger
-        if (proxyData.controlMode !== 1) {
-          return true;
-        }
-        let seviceEquipmentList: any = proxyData.seviceEquipmentList;
-        let flag: any = false;
-        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;
-          }
+          proxyData.isOpen = false;
         }
-        return flag;
+        proxyData.floorHeatingList.map((item: any) => {
+          item.switch = item.runStatus ? true : false;
+        });
       },
-      // 获取灯的状态
+      // 获取地暖的状态
       getFloorHeatingList() {
         let str: any = setQueryConfig({ spaceId: proxyData.spaceId });
-        // let str: any = setQueryConfig({
-        //   spaceId: "Sp1101080259308f5ed92e964bc1b029038dea962de4",
-        // });
         querySapceFloorHeating(str)
           .then((res) => {
             const resData: any = res;
-            const data: any = res?.data ?? {};
-            proxyData.floorHeatingData = data;
-            if (proxyData.floorHeatingData.runStatus) {
-              proxyData.isOpen = true;
-            } else {
-              proxyData.isOpen = false;
-            }
+            const data: any = resData ? resData.data : {};
+            proxyData.heatingData = data;
             if (data.equipList && data.equipList.length) {
-              proxyData.floorHeatingList = data.equipList;
+              proxyData.floorHeatingList = data.equipList || [];
             }
-            proxyData.startLightsStatusTimer();
-            nextTick(() => {
-              proxyData.endBoxSwiper();
-              proxyData.setBarNowPerstion();
-            });
+            proxyData.formateDataStatus();
+            setTimeout(() => {
+              proxyData.sliderInit();
+            }, 500);
+            proxyData.startfloorHeathingStatus();
           })
           .catch(() => {
-            proxyData.startLightsStatusTimer();
+            proxyData.startfloorHeathingStatus();
           });
       },
       loadingTimer: 0,
@@ -494,48 +440,35 @@ export default defineComponent({
         }, 1000);
       },
       // 灯灯接口清除定时器
-      clearLightStatusTimer() {
-        clearTimeout(proxyData.lightsStatusTimer);
-        proxyData.lightsStatusTimer = null;
+      clearFloorHeathingTimer() {
+        clearTimeout(proxyData.floorHeathingStatus);
+        proxyData.floorHeathingStatus = null;
       },
       // 定时刷新接口
-      startLightsStatusTimer(timerLen: any = 15000) {
-        proxyData.clearLightStatusTimer();
-        proxyData.lightsStatusTimer = setTimeout(() => {
-          proxyData.clearLightStatusTimer();
+      startfloorHeathingStatus(timerLen: any = 15000) {
+        proxyData.clearFloorHeathingTimer();
+        proxyData.floorHeathingStatus = setTimeout(() => {
+          proxyData.clearFloorHeathingTimer();
           proxyData.getFloorHeatingList();
         }, timerLen);
       },
     });
-    const isShowChildLight: any = computed(() => {
-      return (
-        proxyData.floorHeatingList.length &&
-        proxyData.floorHeatingList.length > 1
-      );
-    });
-    // onDeactivated(()=>{
-    //   destroyWatch()
-    // })
     watch(
       [() => props, () => props.spaceId],
       (newProps: any, oldProps: any) => {
-        // debugger
         if (newProps[0]) {
-          proxyData.showLight = newProps[0].showLight;
-          proxyData.userIsControl = newProps[0].userIsControl;
-          proxyData.controlMode = newProps[0].controlMode;
           proxyData.forceOverTimeFlag = newProps[0].forceOverTimeFlag;
           proxyData.seviceEquipmentList = newProps[0].seviceEquipmentList;
         }
 
         if (newProps[1] && oldProps[1] && newProps[1] != oldProps[1]) {
           // 空间id改变的重新获取值调用接口
-          console.log("灯模块的spaceId变化了");
+          console.log("地暖的spaceId变化了");
           // 清除原始数据
-          proxyData.clearLightStatusTimer();
-          proxyData.loadMore = false;
+          proxyData.clearFloorHeathingTimer();
           proxyData.floorHeatingList = [];
           proxyData.spaceId = newProps[1];
+          proxyData.clearFloorHeathingTimer();
           proxyData.getFloorHeatingList();
         }
       },
@@ -546,15 +479,14 @@ export default defineComponent({
     );
     onBeforeUnmount(() => {
       console.log("灯的组件销毁了--");
-      proxyData.clearLightStatusTimer();
+      proxyData.clearFloorHeathingTimer();
     });
 
     onMounted(() => {
-      // proxyData.clearLightStatusTimer();
+      // proxyData.clearFloorHeathingTimer();
       proxyData.getFloorHeatingList();
     });
     return {
-      isShowChildLight,
       ...toRefs(proxyData),
     };
   },
@@ -654,7 +586,7 @@ export default defineComponent({
   }
 }
 
-.air-control {
+.floor-control {
   padding: 10px;
   border-top: 1px solid #e8ecf0;
   .control-box {
@@ -722,20 +654,10 @@ export default defineComponent({
       }
     }
   }
-  .temp-text {
-    height: 20px;
-    line-height: 20px;
-    font-family: "Montserrat";
-    font-style: normal;
-    font-weight: 500;
-    font-size: 11px;
-    color: #c4c4c4;
-    padding: 0 5px;
-  }
   .temp-slider {
     position: relative;
     display: flex;
-    height: 22px;
+    height: 28px;
     flex: 1;
     padding: 0 32px;
     background: linear-gradient(
@@ -750,13 +672,13 @@ export default defineComponent({
     .temp-left,
     .temp-right {
       position: absolute;
+      width: 32px;
       top: 50%;
       transform: translateY(-50%);
       font-family: "Persagy";
       font-style: normal;
       font-weight: 400;
       font-size: 12px;
-      line-height: 22px;
       text-align: right;
       color: #626c78;
     }
@@ -767,6 +689,7 @@ export default defineComponent({
     .temp-right {
       right: 0px;
       padding-right: 8px;
+      text-align: left;
     }
 
     .slider-bar {
@@ -809,7 +732,7 @@ export default defineComponent({
   }
 }
 
-.air-control-padding {
+.floor-control-padding {
   padding: 30px 20px;
   // padding-top: 40px;
 }

+ 0 - 2
src/views/envmonitor/index.vue

@@ -209,9 +209,7 @@
       <!--地暖 start-->
       <floor-heating
         v-if="spaceInfo.spaceId"
-        :showLight="spaceExistenceDevice.light"
         :forceOverTimeFlag="forceOverTimeFlag"
-        :controlMode="controlMode"
         :seviceEquipmentList="seviceEquipmentList"
         @triggerWork="triggerWork"
         @showFloorHeating="showFloorHeating"