Bläddra i källkod

fix:手动控制问题修改

chenzhen2 1 år sedan
förälder
incheckning
b5a9e3d7af

+ 1 - 4
src/utils/index.ts

@@ -689,7 +689,7 @@ export const formateTimeContinuous: any = function (index: any = 1,
 }
 
 export const fix: any = function (d: any) {
-  if (parseInt(d) == d) return d;
+  if (parseInt(d) == d) return parseFloat(d);
 
   // 小数变整数.
   let len: any = 1;
@@ -708,8 +708,5 @@ export const fix: any = function (d: any) {
   }
 
   d1 = d1 / len;
-  // if (d1) {
-  //   d1 = d1.replace(/\.?0+$/, "");
-  // }
   return d1;
 }

+ 14 - 9
src/views/envmonitor/components/Air/manualIndex.vue

@@ -246,6 +246,7 @@ import { querySpaceConditioners, setSpaceCondtioners } from "@/apis/envmonitor";
 import { fix, getRelNowTime, parseImgUrl, setQueryConfig } from "@/utils";
 import any = jasmine.any;
 import { parse } from "url";
+import { number } from "echarts";
 
 export default defineComponent({
   props: {
@@ -487,12 +488,12 @@ export default defineComponent({
               let left: any = barLeft - moveRealX;
               left = left < 0 ? 0 : left;
               barBox.style.left = left + "px";
-              proxyData.realTemp = left * part + proxyData.airData.minTempSet;
-              // proxyData.realTemp = Math.round(proxyData.realTemp);
-              if (proxyData.realTemp) {
-                proxyData.realTemp = proxyData.realTemp.toFixed(1);
+              let realTemp: any = left * part + proxyData.airData.minTempSet;
+              if (realTemp) {
+                proxyData.realTemp = realTemp.toFixed(1);
                 proxyData.realTemp = fix(proxyData.realTemp);
               }
+              // console.log(proxyData.realTemp);
             }
           },
           swipeRight: function(e: any) {
@@ -501,13 +502,12 @@ export default defineComponent({
               let moveRealX: any = Math.abs(e.mation.moveX - e.mation.startX);
               let left: any = barLeft + moveRealX;
               left = left > sliderWidth ? sliderWidth : left;
-              proxyData.realTemp = left * part + proxyData.airData.minTempSet;
-              // proxyData.realTemp = Math.round(proxyData.realTemp);
-              if (proxyData.realTemp) {
-                proxyData.realTemp = proxyData.realTemp.toFixed(1);
+              let realTemp: any = left * part + proxyData.airData.minTempSet;
+              if (realTemp) {
+                proxyData.realTemp = realTemp.toFixed(1);
                 proxyData.realTemp = fix(proxyData.realTemp);
               }
-              console.log(proxyData.realTemp);
+              // console.log(proxyData.realTemp);
               barBox.style.left = left + proxyData.sliderPading + "px";
             }
           }
@@ -808,6 +808,11 @@ export default defineComponent({
         return flag;
       },
       // 加班更新按钮的状态
+      updateCloseSwitchFromWork() {
+        // isAddTimer==0(需要定时再调) isAddTimer==1(不需要定时调)
+        proxyData.getAirInfo(1);
+      },
+      // 加班更新按钮的状态
       updateSwitchFromWork(deviceItem: any) {
         if (deviceItem) {
           proxyData.equipList.map((item: any) => {

+ 14 - 4
src/views/envmonitor/components/Light/index.vue

@@ -218,8 +218,12 @@ export default defineComponent({
         }
         return flag;
       },
+      updateSwitchFromWork() {
+        // isAddTimer==0(需要定时再调) isAddTimer==1(不需要定时调)
+        proxyData.getLampList(1);
+      },
       // 获取灯的状态
-      getLampList() {
+      getLampList(isAddTimer: any = 0) {
         getLampHttp({ spaceId: proxyData.spaceId })
           .then((res) => {
             const resData: any = res;
@@ -229,7 +233,6 @@ export default defineComponent({
             }else {
               lampFlag=true
             }
-            console.log("proxyData.setStatus===",proxyData.setStatus);
             if (!proxyData.setStatus || lampFlag) {
               // console.log("灯的状态修改--");
               if (resData && resData.result == "success") {
@@ -283,10 +286,15 @@ export default defineComponent({
               }
             }
             // console.log("执行了----====");
-            proxyData.startLightsStatusTimer();
+            if(isAddTimer==0){
+              proxyData.startLightsStatusTimer();
+            }
+           
           })
           .catch(() => {
-            proxyData.startLightsStatusTimer();
+            if(isAddTimer==0){
+              proxyData.startLightsStatusTimer();
+            }
           });
       },
       // 调整灯
@@ -307,6 +315,7 @@ export default defineComponent({
               isExeSpaceTime
             ) {
               // 强制加班开灯
+              proxyData.lampSw=!proxyData.lampSw
               contx.emit("triggerWork", 3);
               return;
             }
@@ -329,6 +338,7 @@ export default defineComponent({
             // debugger;
             if (proxyData.forceOverTimeFlag && item.switch && isExeSpaceTime) {
               // 强制加班开灯
+              item.switch=!item.switch
               contx.emit("triggerWork", 3, item);
               return;
             }

+ 6 - 0
src/views/envmonitor/components/ManualWork/WorkConfig.vue

@@ -59,6 +59,7 @@ import { useStore } from "@/store";
 import { saveBatchCustomScene } from "@/apis/envmonitor";
 // import { Dialog } from "vant";
 import LeaveDailog from "@/views/envmonitor/components/ManualWork/LeaveDailog.vue";
+import { setTimeout, clearTimeout } from 'timers';
 
 export default defineComponent({
   props: {
@@ -540,6 +541,11 @@ export default defineComponent({
           .then((res) => {
             proxyData.leaveBtnFlag = false;
             contx.emit("closeWork");
+            let time:any=setTimeout(()=>{
+              contx.emit('leaveWork')
+              clearTimeout(time)
+              time=null;
+            },2000)
             // console.log(res);
             // proxyGlobal.proxy.$loadinngEnd();
           })

+ 17 - 5
src/views/envmonitor/components/ManualWork/index.vue

@@ -137,13 +137,14 @@
       </template>
 
       <div class="device-tip" v-if="isAir">
-        <span>* 设备加时提示:</span>
+        <span><i>*</i> 设备加时提示:</span>
         <ul>
           <li>
-            工作日大厦提供固定时段空调,其余时间可通过“预约加时”功能额外申请空调使用时间;</li>
-          <li>空调加时采用后付费方式,系统将依据真实使用时长,空间面积和加时单价据实计算加时费用,空调加时单价为0.4元/㎡·h;</li>
-          <li>提交完申请,待您所在公司<b>行政人员审批通过后</b>,预约时段内您可自由开关空间下的设备;</li>
-          <li>如您提前结束使用,请点击“我要离开”按钮,系统会自动调整设备关闭时间我们期待与您共创可持续的办公空间。</li>
+            工作日大厦提供固定时段空调,其余时间可通过“预约加时”功能额外申请空调使用时间</li>
+          <li>空调加时采用后付费方式,系统将依据真实使用时长,空间面积和加时单价据实计算加时费用,空调加时单价为0.4元/㎡·h</li>
+          <li>提交完申请,待您所在公司<b>行政人员审批通过后</b>,预约时段内您可自由开关空间下的设备</li>
+          <li>如您提前结束使用,请点击“我要离开”按钮,系统会自动调整设备关闭时间</li>
+          <li>我们期待与您共创可持续的办公空间。</li>
         </ul>
       </div>
     </div>
@@ -1898,6 +1899,9 @@ export default defineComponent({
     span {
       display: inline-block;
       padding-bottom: 10px;
+      i {
+        color: red;
+      }
     }
     ul {
       list-style-position: inside;
@@ -1912,8 +1916,14 @@ export default defineComponent({
         font-weight: 400;
         line-height: 26px;
         padding-bottom: 5px;
+        &:last-child {
+          list-style: none !important;
+          padding: 0px !important;
+          margin-left: -20px !important;
+        }
         b {
           color: #000;
+          border-bottom: 1px solid #000;
         }
       }
     }
@@ -1950,6 +1960,8 @@ export default defineComponent({
       font-style: normal;
       font-weight: 400;
       font-size: 12px;
+      padding-top: 4px;
+      // line-height: 25px;
     }
     img {
       width: 25px;

+ 33 - 25
src/views/envmonitor/index.vue

@@ -158,6 +158,7 @@
             key="manualckey"
             :workkArr="workkArr"
             @closeWork="closeWork"
+            @leaveWork="leaveWork"
             @triggerWork="triggerWork"
             @setForceOverTimeFlag="setForceOverTimeFlag"
           ></ManualConfig>
@@ -228,6 +229,7 @@
       <!--出于性能的灯的显示和隐藏最好放在子组件里面判断,减少组件频繁重新加载的问题-->
       <Light
         v-if="spaceInfo.spaceId"
+        ref="lightRef"
         :showLight="spaceExistenceDevice.light"
         :forceOverTimeFlag="forceOverTimeFlag"
         :controlMode="controlMode"
@@ -572,6 +574,7 @@ export default defineComponent({
     };
     let curtainRef: any = {};
     let manualAirRef: any = {};
+    let lightRef:any={};
     // let mapRef: any = {}
     let intervalTimer: any = null;
     const workInfo: any = {};
@@ -747,6 +750,7 @@ export default defineComponent({
       opacityV: 1,
       curtainRef: curtainRef,
       manualAirRef: manualAirRef,
+      lightRef:lightRef,
       hideTopImg: false,
       isBottom: false,
       isScrool: false,
@@ -1036,18 +1040,23 @@ export default defineComponent({
         });
         proxyData.seviceEquipmentList = proxyData.spaceEquipList;
       },
+      leaveWork(){
+        proxyData.manualAirRef && proxyData.manualAirRef.updateCloseSwitchFromWork()
+        proxyData.lightRef && proxyData.lightRef.updateSwitchFromWork();
+      },
       /**
        * 关闭加班
        */
       closeWork(type: any = "confirm") {
         proxyData.isShowWork = false;
         proxyData.queryCustomAndScence(2); // 关闭弹窗立即调用刷新加班数据
-        if (proxyData.enterType == 2 && type == "confirm") {
-          //  空调
-          if (proxyData.controlMode == 1) {
-            // 手动控制
-            proxyData.manualAirRef.updateSwitchFromWork(proxyData.deviceItem);
-          }
+        if(type == "confirm"){
+          let lightRefTimer:any=setTimeout(()=>{
+          proxyData.manualAirRef && proxyData.manualAirRef.updateCloseSwitchFromWork()
+          proxyData.lightRef && proxyData.lightRef.updateSwitchFromWork();
+            clearTimeout(lightRefTimer);
+            lightRefTimer=null;
+          },2000)
         }
       },
       forceOverTimeFlag: false,
@@ -1580,16 +1589,17 @@ export default defineComponent({
         proxyData.headerInfo.tipText = "选择工作结束时间";
         proxyData.headerInfo.tipTextSwatch = true;
       },
-      clearInterValEquiment() {
-        clearInterval(proxyData.equimentsTimer);
+      clearTimeoutValEquiment() {
+        clearTimeout(proxyData.equimentsTimer);
         proxyData.equimentsTimer = null;
       },
       equimentsTimer: equimentsTimer,
       // 定时查空间下面的展示设备
-      setEquimentsTimer() {
-        proxyData.equimentsTimer = setInterval(() => {
+      setEquimentsTimer(len:any=3600000) {
+        proxyData.equimentsTimer = setTimeout(()=>{
           proxyData.getEquipments();
-        }, 3600000);
+          proxyData.clearTimeoutValEquiment();
+        },len)
       },
       // 获取空间下的设备信息
       getEquipments() {
@@ -1624,15 +1634,13 @@ export default defineComponent({
                 proxyData.navList[2].noShow = false;
               }
             }
-            if (!proxyData.equimentsTimer) {
-              proxyData.setEquimentsTimer();
-            }
+            proxyData.setEquimentsTimer();
           })
           .catch(() => {
             // if (!proxyData.equimentsTimer) {
             //   proxyData.setEquimentsTimer();
             // }
-            proxyData.getEquipments()
+            proxyData.setEquimentsTimer(1000);
           });
       },
       // 时间格式转换
@@ -1711,8 +1719,8 @@ export default defineComponent({
       // 定时调空间
       timerSpaceInfo(timer: any = 15000) {
         proxyData.spaceTimer = setTimeout(() => {
-          proxyData.getSpaceInfo();
           proxyData.clearTimerSpaceInfo();
+          proxyData.getSpaceInfo();
         }, timer);
       },
       isWork: false,
@@ -1790,7 +1798,7 @@ export default defineComponent({
         proxyData.equipTimer = null;
       },
       // 定时器
-      getSpaceEquipListTimer(timerLen: any = 5000) {
+      getSpaceEquipListTimer(timerLen: any = 15000) {
         proxyData.clearEquipTimer();
         proxyData.equipTimer = setTimeout(() => {
           proxyData.getSpaceEquipList();
@@ -1811,7 +1819,7 @@ export default defineComponent({
             proxyData.getSpaceEquipListTimer();
           })
           .catch((error: any) => {
-            proxyData.getSpaceEquipListTimer();
+            proxyData.getSpaceEquipListTimer(1000);
           });
       },
       // 定时查空间的加班记录
@@ -1931,13 +1939,13 @@ export default defineComponent({
         proxyData.padNumber = 0;
         // proxyData.roomType = "";
         // 获取场景配置
-        proxyData.getSpaceInfo();
-        // 动态获取场景配置
-        proxyData.querySpaceSceneConfig();
         // 获取空间下展示的那些设备类(窗帘,灯,空调))
         proxyData.getEquipments();
+        // 动态获取场景配置
+        proxyData.querySpaceSceneConfig();
         // 获取空间下受控设备
         proxyData.getSpaceEquipList();
+        proxyData.getSpaceInfo();
         // 查询加班记录
         proxyData.queryCustomAndScenceTimer(0);
       },
@@ -1973,8 +1981,9 @@ export default defineComponent({
           ],
         };
         queryWorkSpace(params).then((res) => {
+          // debugger
           let resData: any = res;
-          if (resData.result === "success") {
+          if (resData.result == "success") {
             proxyData.spaceData = resData?.content ?? [];
             // proxyData.copySpaceData = resData?.content ?? [];
           } else {
@@ -1990,8 +1999,6 @@ export default defineComponent({
             // if (item.isMajorSpace) {
             //   item.active = true;
             //   proxyData.spaceInfo = item;
-            // } else {
-            //   item.active = false;
             // }
           });
           proxyData.copySpaceData = JSON.parse(
@@ -2127,6 +2134,7 @@ export default defineComponent({
         proxyData.clearSceneConfigTimer();
         proxyData.clearSecenTimer();
         proxyData.clearEquipTimer();
+        proxyData.clearTimeoutValEquiment();
       },
       contantDetail: contantDetail,
       cusServiceTimer: cusServiceTimer,
@@ -2162,7 +2170,6 @@ export default defineComponent({
     });
     onBeforeUnmount(() => {
       proxyData.clearAll();
-      proxyData.clearInterValEquiment();
       clearInterval(proxyData.dateInter);
       clearTimeout(proxyData.cusServiceTimer);
       clearTimeout(proxyData.weatherTimer);
@@ -2212,6 +2219,7 @@ export default defineComponent({
 
     .left-top {
       width: 90%;
+      // margin-top: 10px;
       overflow: hidden;
       white-space: nowrap;
       text-overflow: ellipsis;