浏览代码

fix:地暖调节

chenzhen2 1 年之前
父节点
当前提交
d67f28ac5e

+ 7 - 0
src/apis/envmonitor.ts

@@ -294,4 +294,11 @@ export const getSpaceEquipList = (params: any) => {
   return https().request<any>(`${customService}equipmentRun/queryEquipmentRunConfig?${params}`, Method.GET, undefined, ContentType.json)
 }
 
+// 查询地暖列表
+export const querySapceFloorHeating = (params: any) => {
+  // return https().request<any>(`${duoduoenvService}ctrl/querySapceFloorHeating?${params}`, Method.GET, undefined, ContentType.json)
+  return https().request<any>(`${testApi}ctrl/querySapceFloorHeating?${params}`, Method.GET, undefined, ContentType.json)
+}
+
+
 

+ 1 - 0
src/views/envmonitor/components/Air/manualIndex.vue

@@ -545,6 +545,7 @@ export default defineComponent({
           timerLong = 300000;
         }
         console.log("nowTime===", nowTime);
+      
         if (proxyData.airTimer) {
           clearTimeout(proxyData.airTimer);
           proxyData.airTimer = null;

+ 87 - 109
src/views/envmonitor/components/FloorHeating/index.vue

@@ -1,14 +1,24 @@
 <template>
-  <div class="light" v-if="showLight && lampList && lampList.length">
+  <div class="light" v-if="floorHeatingList && floorHeatingList.length">
     <!--如果有子设备-->
     <div class="floor-top">
       <div class="top-box">
-        <div class="top-left">
+        <div
+          class="top-left"
+          v-if="floorHeatingList && floorHeatingList.length > 1"
+        >
           <span>地暖</span>
-          <span>26<sup>℃</sup></span>
+          <span>{{ realTemp }} <sup>℃</sup></span>
         </div>
         <div class="top-right">
-          <img :src="parseImgUrl('page-officehome', 'heating.svg')" alt="" />
+          <img
+            :src="
+              floorHeatingData.runStatus
+                ? parseImgUrl('page-officehome', 'heating-active.svg')
+                : parseImgUrl('page-officehome', 'heating.svg')
+            "
+            alt=""
+          />
         </div>
       </div>
       <div class="top-switch">
@@ -38,11 +48,15 @@
       <div class="control-box">
         <div class="temp-slider" id="slideFloorId">
           <div class="slider-bar" id="barFloorId">
-            <div class="bar-temp">26℃</div>
+            <div class="bar-temp">{{ realTemp }}℃</div>
             <div class="bar-circle" id="handFloorId"></div>
           </div>
-          <div class="temp-left" style="width: 22px">23</div>
-          <div class="temp-right" style="width: 22px">28</div>
+          <div class="temp-left" style="width: 22px">
+            {{ floorHeatingData.minTempSet }}
+          </div>
+          <div class="temp-right" style="width: 22px">
+            {{ floorHeatingData.maxTempSet }}
+          </div>
         </div>
       </div>
     </div>
@@ -50,16 +64,16 @@
     <!--灯控制按钮-->
     <div class="line" v-if="navType == 'child'"></div>
     <div class="light-box" v-if="navType == 'child'">
-      <template v-for="(item, index) in lampList" :key="item.id">
+      <template v-for="(item, index) in floorHeatingList" :key="item.id">
         <div
           class="light-control"
           @click="showFloorHeating(item)"
-          v-if="loadMore ? index < lampList.length : index < 2"
+          v-if="loadMore ? index < floorHeatingList.length : index < 2"
         >
           <div class="control-top">
             <div class="control-temp">
-              <span>26<sup>℃</sup></span>
-              <span>已开启</span>
+              <span>{{ item.tempSet ? item.tempSet : "--" }}<sup>℃</sup></span>
+              <span>{{ item.runStatus ? "已开启" : "已关闭" }}</span>
             </div>
             <Switch
               active-color="$elActiveColor"
@@ -89,7 +103,7 @@
 
     <div
       class="show-all"
-      v-if="lampList && lampList.length > 2"
+      v-if="floorHeatingList && floorHeatingList.length > 2"
       @click.stop="showAll"
     >
       <van-icon :name="lightIcon" class="light-icon" />
@@ -112,8 +126,13 @@ import {
   onBeforeUnmount,
 } from "vue";
 import { Switch, Toast } from "vant";
-import { getLampHttp, getStatusHttp, setallLampHttp } from "@/apis/envmonitor";
-import { parseImgUrl } from "@/utils";
+import {
+  getLampHttp,
+  getStatusHttp,
+  querySapceFloorHeating,
+  setallLampHttp,
+} from "@/apis/envmonitor";
+import { parseImgUrl, setQueryConfig } from "@/utils";
 import { type } from "os";
 import { onDeactivated } from "vue";
 import { AnyMxRecord } from "dns";
@@ -154,7 +173,8 @@ export default defineComponent({
   },
   components: { Switch },
   setup(props, contx) {
-    const lampList: any = [];
+    const floorHeatingList: any = [];
+    let floorHeatingData: any = {};
     let lightsStatusTimer: any = null;
     const timeOut: any = null;
     const initData: any = [];
@@ -163,7 +183,7 @@ export default defineComponent({
       minTempSet: 16,
       maxTempSet: 35,
     };
-    const proxyData: any = reactive({
+    const proxyData = reactive({
       seviceEquipmentList: props.seviceEquipmentList,
       showLight: props.showLight,
       spaceId: props.spaceId,
@@ -182,7 +202,8 @@ export default defineComponent({
       loadingLight: false,
       loading: false,
       initData: initData,
-      lampList: lampList,
+      floorHeatingList: floorHeatingList,
+      floorHeatingData: floorHeatingData,
       lightsStatusTimer: lightsStatusTimer,
       startCheckLightsTime: 0,
       lightColorImg: parseImgUrl("page-officehome", "lightColorControl.svg"),
@@ -293,30 +314,34 @@ export default defineComponent({
       },
       // 设置温度条的位置
       setBarNowPerstion() {
-        proxyData.realTemp = proxyData.heatingTemp;
+        proxyData.realTemp =
+          proxyData.heatingData && proxyData.heatingData.tempSet
+            ? proxyData.heatingData.tempSet
+            : 0;
         let barBox: any = document.querySelector("#barFloorId");
         if (!barBox) {
           return;
         }
         let sliderBox: any = document.querySelector("#slideFloorId");
         if (
+          proxyData.realTemp !== 0 &&
           proxyData.heatingTemp >= proxyData.heatingData.minTempSet &&
           proxyData.heatingTemp <= proxyData.heatingData.maxTempSet
         ) {
           // 正常温度范围
           let left: any =
-            (proxyData.heatingTemp - proxyData.heatingData.minTempSet) /
+            (proxyData.realTemp - proxyData.heatingData.minTempSet) /
             proxyData.part;
           left = Math.floor(left) + 24;
           if (barBox) {
             barBox.style.left = left + "px";
           }
         } else {
-          if (!proxyData.heatingTemp) {
+          if (!proxyData.realTemp) {
             barBox.style.left = 24 + "px";
-          } else if (proxyData.heatingTemp < proxyData.heatingData.minTempSet) {
+          } else if (proxyData.realTemp < proxyData.heatingData.minTempSet) {
             barBox.style.left = 24 + "px";
-          } else if (proxyData.heatingTemp > proxyData.heatingData.maxTempSet) {
+          } else if (proxyData.realTemp > proxyData.heatingData.maxTempSet) {
             let sliderWidth: any = sliderBox.offsetWidth;
             let barWidth: any = barBox.offsetWidth;
             barBox.style.left = sliderWidth - barWidth + "px";
@@ -365,62 +390,23 @@ export default defineComponent({
         return flag;
       },
       // 获取灯的状态
-      getLampList() {
-        getLampHttp({ spaceId: proxyData.spaceId })
+      getFloorHeatingList() {
+        // let str: any = setQueryConfig({ spaceId: proxyData.spaceId });
+        let str: any = setQueryConfig({
+          spaceId: "Sp1101080259308f5ed92e964bc1b029038dea962de4",
+        });
+        querySapceFloorHeating(str)
           .then((res) => {
             const resData: any = res;
-            if (!proxyData.setStatus) {
-              if (resData && resData.result == "success") {
-                let content = resData?.content ?? [];
-                let lampOpen = false; // 如果有一个开 则总灯开
-                for (let i = 0; i < content.length; i++) {
-                  content[i].type = "lamp";
-                  if (content[i].lightType == 1) {
-                    content[i].imgOpen = parseImgUrl(
-                      "page-officehome",
-                      "lamp_open.png"
-                    );
-                    content[i].imgClose = parseImgUrl(
-                      "page-officehome",
-                      "lamp_close.png"
-                    );
-                  } else {
-                    content[i].imgOpen = parseImgUrl(
-                      "page-officehome",
-                      "atmLamp_small_open.png"
-                    );
-                    content[i].imgClose = parseImgUrl(
-                      "page-officehome",
-                      "atmLamp_small_close.png"
-                    );
-                  }
-
-                  content[i].switch = content[i].runStatus ? true : false;
-                  if (content[i].runStatus) {
-                    lampOpen = true;
-                  }
-                  content[i].loading = false;
-                }
-                proxyData.initData = JSON.parse(JSON.stringify(content)); //  灯的数据
-                proxyData.lampSw = lampOpen; // 主灯开关
-                proxyData.lampList = content;
-
-                proxyData.lightImg = proxyData.lampSw
-                  ? parseImgUrl("page-officehome", "lamp_open.png")
-                  : parseImgUrl("page-officehome", "lamp_close.png");
-                if (content[0]) {
-                  if (content[0].lightType !== 1) {
-                    proxyData.lightImg = proxyData.lampSw
-                      ? parseImgUrl("page-officehome", "atmLamp_small_open.png")
-                      : parseImgUrl(
-                          "page-officehome",
-                          "atmLamp_small_close.png"
-                        );
-                  }
-                }
-              }
+            const data: any = res?.data ?? {};
+            proxyData.floorHeatingData = data;
+            if (data.equipList && data.equipList.length) {
+              proxyData.floorHeatingList = data.equipList;
             }
-            // console.log("执行了----====");
+            nextTick(() => {
+              proxyData.endBoxSwiper();
+              proxyData.setBarNowPerstion();
+            });
             proxyData.startLightsStatusTimer();
           })
           .catch(() => {
@@ -433,7 +419,7 @@ export default defineComponent({
           // debugger
           if (type === "allLamp") {
             let isExeSpaceTime: Boolean = proxyData.checkDeviceIsExeSpaceTime(
-              proxyData.lampList
+              proxyData.floorHeatingList
             );
             if (item !== "") {
               proxyData.lampSw = item; // 点击全开和全关的时候item动态传值true或者false
@@ -538,16 +524,16 @@ export default defineComponent({
       // 报错后关闭灯的loading
       initLampLoading() {
         proxyData.loadingLight = false;
-        proxyData.lampList.map((item: any) => {
+        proxyData.floorHeatingList.map((item: any) => {
           item.loading = false;
         });
       },
       //手动修改灯的状态
       updateAllLampStatus(statusFlag: any) {
         proxyData.lampSw = statusFlag;
-        for (let i = 0; i < proxyData.lampList.length; i++) {
-          proxyData.lampList[i].switch = statusFlag;
-          // if (proxyData.lampList[i].type == 'lamp') {
+        for (let i = 0; i < proxyData.floorHeatingList.length; i++) {
+          proxyData.floorHeatingList[i].switch = statusFlag;
+          // if (proxyData.floorHeatingList[i].type == 'lamp') {
           // }
         }
       },
@@ -555,9 +541,9 @@ 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) {
+        // for (let i = 0; i < proxyData.floorHeatingList.length; i++) {
+        //   if (proxyData.floorHeatingList[i].type == 'lamp') {
+        //     if (proxyData.floorHeatingList[i].switch !== statusFlag) {
         //       flag = false
         //       break
         //     }
@@ -580,7 +566,7 @@ export default defineComponent({
             // 当个的时候修改loading的状态
             proxyData.updateLampLoading(index);
           }
-          proxyData.getLampList();
+          proxyData.getFloorHeatingList();
         }
         if (checkData["processing"] && checkData["processing"].length) {
           let checkParams: any = proxyData.lightParams;
@@ -649,16 +635,16 @@ export default defineComponent({
       },
       // 操作成功后更新所有灯的真实状态
       updateAllLampLoading(arr: any) {
-        for (let i = 0; i < proxyData.lampList.length; i++) {
-          if (proxyData.lampList[i].type == "lamp") {
+        for (let i = 0; i < proxyData.floorHeatingList.length; i++) {
+          if (proxyData.floorHeatingList[i].type == "lamp") {
             arr.map((item: any) => {
-              if (proxyData.lampList[i].id === item.id) {
-                proxyData.lampList[i].loading = false;
+              if (proxyData.floorHeatingList[i].id === item.id) {
+                proxyData.floorHeatingList[i].loading = false;
               }
             });
           }
         }
-        let loadingLen = proxyData.lampList.filter((item: any) => {
+        let loadingLen = proxyData.floorHeatingList.filter((item: any) => {
           return item.loading;
         });
         if (loadingLen.length === 0) {
@@ -667,7 +653,7 @@ export default defineComponent({
       },
       // 动态切换主灯的状态
       updateLampLoading(index: any) {
-        proxyData.lampList[index].loading = false;
+        proxyData.floorHeatingList[index].loading = false;
       },
       // 灯的指令完成后更新状态
       checkChangeLightStatusSuccess(
@@ -690,16 +676,19 @@ export default defineComponent({
         proxyData.lightsStatusTimer = null;
       },
       // 定时刷新接口
-      startLightsStatusTimer(timerLen: any = 2000) {
+      startLightsStatusTimer(timerLen: any = 15000) {
         proxyData.clearLightStatusTimer();
         proxyData.lightsStatusTimer = setTimeout(() => {
           proxyData.clearLightStatusTimer();
-          proxyData.getLampList();
+          proxyData.getFloorHeatingList();
         }, timerLen);
       },
     });
     const isShowChildLight: any = computed(() => {
-      return proxyData.lampList.length && proxyData.lampList.length > 1;
+      return (
+        proxyData.floorHeatingList.length &&
+        proxyData.floorHeatingList.length > 1
+      );
     });
     // onDeactivated(()=>{
     //   destroyWatch()
@@ -722,9 +711,9 @@ export default defineComponent({
           // 清除原始数据
           proxyData.clearLightStatusTimer();
           proxyData.loadMore = false;
-          proxyData.lampList = [];
+          proxyData.floorHeatingList = [];
           proxyData.spaceId = newProps[1];
-          proxyData.getLampList();
+          proxyData.getFloorHeatingList();
         }
       },
       {
@@ -739,13 +728,7 @@ export default defineComponent({
 
     onMounted(() => {
       // proxyData.clearLightStatusTimer();
-      proxyData.getLampList();
-      nextTick(() => {
-        setTimeout(() => {
-          proxyData.endBoxSwiper();
-          proxyData.setBarNowPerstion();
-        }, 3000);
-      });
+      proxyData.getFloorHeatingList();
     });
     return {
       isShowChildLight,
@@ -835,16 +818,11 @@ export default defineComponent({
         height: 28px;
         line-height: 14px;
         color: #424c59;
-        &:nth-child(1) {
-          border: 1px solid #e1e5eb;
-          border-radius: 21px;
-        }
-        &:nth-child(2) {
-          // padding-left: 0px;
-        }
       }
       .nav-active {
         background: #fff;
+        border: 1px solid #e1e5eb;
+        border-radius: 21px;
       }
     }
     .switch-btn {

+ 1 - 1
vue.config.js

@@ -116,7 +116,7 @@ module.exports = {
       },
       '/sgipad/test/': {
         // target: 'https://duoduoenv.sagacloud.cn',
-        target: 'http://192.168.88.6:52009',    // 永琪
+        target: 'http://192.168.88.9:52009',    // 永琪
         // target: 'http://192.168.4.54:52009', // 小静
         // target: 'http://192.168.16.168:52015',
         changeOrigin: true,