소스 검색

设备管理 增加循环调用

zhaojijng 2 년 전
부모
커밋
c11c8c4284
4개의 변경된 파일59개의 추가작업 그리고 44개의 파일을 삭제
  1. 2 1
      src/components/SearchInput/index.tsx
  2. 4 2
      src/components/map/index.tsx
  3. 23 28
      src/pages/Equipment/components/topNavRight/index.tsx
  4. 30 13
      src/pages/Equipment/index.tsx

+ 2 - 1
src/components/SearchInput/index.tsx

@@ -38,7 +38,7 @@ const SearchInput: React.FC<SearchInputProps> = () => {
           },
         },
       };
-
+      //搜索
       querySpace(paramsObj).then((res) => {
         var resContent = res.content || [];
         console.log('setMatch', 'data');
@@ -48,6 +48,7 @@ const SearchInput: React.FC<SearchInputProps> = () => {
     }
     // debugger;
     if (value) {
+      //防抖
       ref.current = setTimeout(fake, 600);
     } else {
       setMatchData([]);

+ 4 - 2
src/components/map/index.tsx

@@ -132,6 +132,7 @@ const Map: React.FC<MapProps> = ({ type, selFloorId, render, mapList, mapSize })
         return item.localName == (searchText && searchText.text);
       });
       if (filterItem.length == 0) return;
+      //找到搜索的空间
       changeSearchSpace(filterItem[0]);
       console.log('selectSpace2', filterItem[0]);
       left = -((filterItem[0] || {}).left || 0);
@@ -149,8 +150,8 @@ const Map: React.FC<MapProps> = ({ type, selFloorId, render, mapList, mapSize })
       setTranslateX(0);
       setTranslateY(0);
     }
-
     currentFloorId.current = selFloorId;
+    console.log('selectSpace2');
   }, [mapList]);
 
   //搜索信息改变时的搜索
@@ -163,9 +164,10 @@ const Map: React.FC<MapProps> = ({ type, selFloorId, render, mapList, mapSize })
         return item.localName == (searchText && searchText.text);
       });
       if (filterItem.length == 0) return;
+      //找到搜索的空间
       changeSearchSpace(filterItem[0]);
 
-      console.log('selectSpace2', filterItem[0]);
+      //console.log('selectSpace2', filterItem[0]);
       left = -((filterItem[0] || {}).left || 0);
       top = -((filterItem[0] || {}).top || 0);
       var mapWrapWidth = (mapRef.current || {}).clientWidth || 0;

+ 23 - 28
src/pages/Equipment/components/topNavRight/index.tsx

@@ -47,21 +47,22 @@ const TopNavRight: React.FC<topNavRightProps> = ({
         //   return item[selNavObj.id] !== 1;
         // });
         var filterSpaceArr2 = mapList.filter((item) => {
-          return item.localName == '火卫一' || item.localName == '火卫二';
+          return item.localName == '上格云3' || item.localName == '上格云休闲区';
         });
         console.log('开启filterSpaceArr', filterSpaceArr2);
         var flag = 1;
+        //现在加上循环调用 所以把查询关了
         function getDeviceStatus() {
-          flag = flag + 1;
-          queryDeviceManage().then((res) => {
-            if (flag < 13) {
-              setTimeout(() => {
-                getDeviceStatus();
-              }, 800);
-            } else {
-              flag = 1;
-            }
-          });
+          //   flag = flag + 1;
+          //   queryDeviceManage().then((res) => {
+          //     if (flag < 13) {
+          //       setTimeout(() => {
+          //         getDeviceStatus();
+          //       }, 800);
+          //     } else {
+          //       flag = 1;
+          //     }
+          //   });
         }
         //如果是空调
         //if (filterSpaceArr.length == 0) return;
@@ -95,28 +96,22 @@ const TopNavRight: React.FC<topNavRightProps> = ({
         //   return item[selNavObj.id] !== 0;
         // });
         var filterSpaceArr2 = mapList.filter((item) => {
-          return item.localName == '火卫一' || item.localName == '火卫二';
+          return item.localName == '上格云3' || item.localName == '上格云休闲区';
         });
         console.log('关闭filterSpaceArr', filterSpaceArr2);
-        //return;
         var flag = 1;
 
         function getDeviceStatus() {
-          flag = flag + 1;
-          queryDeviceManage().then((res) => {
-            if (flag < 13) {
-              setTimeout(() => {
-                getDeviceStatus();
-              }, 800);
-            } else {
-              flag = 1;
-            }
-          });
-
-          //   setTimeout(() => {
-          //     console.log('setTimeout');
-          //     clearInterval(interval);
-          //   }, 60000);
+          //   flag = flag + 1;
+          //   queryDeviceManage().then((res) => {
+          //     if (flag < 13) {
+          //       setTimeout(() => {
+          //         getDeviceStatus();
+          //       }, 800);
+          //     } else {
+          //       flag = 1;
+          //     }
+          //   });
         }
 
         //如果是空调

+ 30 - 13
src/pages/Equipment/index.tsx

@@ -1,4 +1,4 @@
-import React, { useState, useEffect, useCallback } from 'react';
+import React, { useState, useEffect, useRef, useCallback } from 'react';
 import { FormattedMessage, useModel } from 'umi';
 
 import SearchInput from '@/components/SearchInput';
@@ -177,27 +177,28 @@ const Environment: React.FC = () => {
         //     clearInterval(interval);
         //   }, 60000);
         // }
+        //现在加上循环调用 所以把手动关了
         function callback() {
           //这是在手动改变状态
-          var mapCopy = JSON.parse(JSON.stringify(mapCombineList));
-          mapCopy[index][selNav.id] = item[selNav.id] === 1 ? 0 : 1;
-          setMapCombineList(mapCopy);
+          //   var mapCopy = JSON.parse(JSON.stringify(mapCombineList));
+          //   mapCopy[index][selNav.id] = item[selNav.id] === 1 ? 0 : 1;
+          //   setMapCombineList(mapCopy);
         }
 
         //如果是空调
         if (selNav.id == 'airConditioner') {
-          function getDeviceStatus() {
-            //执行查询函数
-            getAirInfo(item, callback, 10, projectId);
-          }
+          //   function getDeviceStatus() {
+          //     //执行查询函数
+          //     getAirInfo(item, callback, 10, projectId);
+          //   }
           //changeAir(item, index, getDeviceStatus);
           changeAir(item, index, callback);
         }
         if (selNav.id == 'light') {
-          function getDeviceStatus() {
-            //请求状态 10是指循环调10次
-            getLamp(item, callback, 10);
-          }
+          //   function getDeviceStatus() {
+          //     //请求状态 10是指循环调10次
+          //     getLamp(item, callback, 10);
+          //   }
           //debugger;
           // changeLight('one', [item], getDeviceStatus, status);
           changeLight('one', [item], callback, status);
@@ -288,11 +289,27 @@ const Environment: React.FC = () => {
         // setLoading(false);
       });
   };
-
+  let setTimer = useRef({});
   //获取设备状态 设备种类
   useEffect(() => {
+    // function getDeviceStatus() {
+    //   queryDeviceManage().then((res) => {
+    //     setTimeout(() => {
+    //       getDeviceStatus();
+    //     }, 20000);
+    //   });
+    // }
+
     if (selFloorId) {
       queryDeviceManage();
+      if (setTimer.current) {
+        clearInterval(setTimer.current);
+        setTimer.current = null;
+      }
+      //加了循环调接口
+      setTimer.current = setInterval(() => {
+        queryDeviceManage();
+      }, 3000);
     }
   }, [selFloorId]);