Переглянути джерело

运行时间的 定时刷新

zhaojijng 2 роки тому
батько
коміт
32535f3f35
2 змінених файлів з 62 додано та 47 видалено
  1. 3 2
      src/pages/Equipment/index.tsx
  2. 59 45
      src/pages/Runtime/index.tsx

+ 3 - 2
src/pages/Equipment/index.tsx

@@ -301,12 +301,13 @@ const Environment: React.FC = () => {
     // }
 
     if (selFloorId) {
-      queryDeviceManage();
+      queryDeviceManage(); //第一次执行
+
       if (setTimer.current) {
         clearInterval(setTimer.current);
         setTimer.current = null;
       }
-      //加了循环调接口
+      //循环调接口
       setTimer.current = setInterval(() => {
         queryDeviceManage();
       }, 3000);

+ 59 - 45
src/pages/Runtime/index.tsx

@@ -1,4 +1,4 @@
-import React, { useState, useEffect, useCallback } from 'react';
+import React, { useState, useEffect, useCallback, useRef } from 'react';
 import PageHeader from '@/components/PageHeader';
 import Map from '@/components/map';
 import TopNavigator from '@/components/topNavigator';
@@ -75,59 +75,72 @@ const Runtime: React.FC = () => {
     }
   }, [selFloorId]);
 
+  const getDeviceTime = () => {
+    queryDeviceTimeManage({
+      floorId: selFloorId,
+      //floorId: 'Fl11010802593241ec348ecb4148806b9034c8957454',
+      date: selTime,
+    })
+      .then(function (res) {
+        //setLoading(false);
+        var resdata = res || {};
+        setRuntimeNav({
+          normalRun: resdata.workTimeNum,
+          overtimeWork: resdata.overTimeNum,
+          meetingBook: resdata.meetTimeNum,
+        });
+        var resList = res.content || [];
+        resList.forEach((ritem) => {
+          ritem.runTimeStatus = 'normalRun'; //正常工作
+          var timeList = [];
+          if (ritem.hasOwnProperty('workTimeStartTime')) {
+            var timeStrArr = [ritem.workTimeStartTime, ritem.workTimeEndTime];
+            timeList.push(timeStrArr);
+          }
+          if (ritem.hasOwnProperty('meetTime')) {
+            ritem.runTimeStatus = 'meetingBook'; //会议预约
+            ritem.meetTime.forEach((meetitem) => {
+              var timeStrArr = [meetitem.meetTimeStartTime, meetitem.meetTimeEndTime];
+              timeList.push(timeStrArr);
+            });
+          }
+          if (ritem.hasOwnProperty('overTimeStartTime')) {
+            var timeStrArr = [ritem.overTimeStartTime, ritem.overTimeEndTime];
+            timeList.push(timeStrArr);
+            ritem.runTimeStatus = 'overtimeWork'; //加班
+          }
+          ritem.showTimeList = timeList;
+          ritem.showTimeStr =
+            timeList.length > 0 ? timeList[0][0] + '-' + timeList[timeList.length - 1][1] : '';
+        });
+        setSpaceTimeList(resList);
+      })
+      .catch(() => {
+        //setLoading(false);
+      });
+  };
+  let setTimer = useRef({});
   //获取时间列表 spaceTimeList
   useEffect(() => {
     if (selFloorId && selTime) {
       //setLoading(true);
-      queryDeviceTimeManage({
-        floorId: selFloorId,
-        //floorId: 'Fl11010802593241ec348ecb4148806b9034c8957454',
-        date: selTime,
-        //date: 20220212,
-      })
-        .then(function (res) {
-          //setLoading(false);
-          var resdata = res || {};
-          setRuntimeNav({
-            normalRun: resdata.workTimeNum,
-            overtimeWork: resdata.overTimeNum,
-            meetingBook: resdata.meetTimeNum,
-          });
-          var resList = res.content || [];
-          resList.forEach((ritem) => {
-            ritem.runTimeStatus = 'normalRun'; //正常工作
-            var timeList = [];
-            if (ritem.hasOwnProperty('workTimeStartTime')) {
-              var timeStrArr = [ritem.workTimeStartTime, ritem.workTimeEndTime];
-              timeList.push(timeStrArr);
-            }
-            if (ritem.hasOwnProperty('meetTime')) {
-              ritem.runTimeStatus = 'meetingBook'; //会议预约
-              ritem.meetTime.forEach((meetitem) => {
-                var timeStrArr = [meetitem.meetTimeStartTime, meetitem.meetTimeEndTime];
-                timeList.push(timeStrArr);
-              });
-            }
-            if (ritem.hasOwnProperty('overTimeStartTime')) {
-              var timeStrArr = [ritem.overTimeStartTime, ritem.overTimeEndTime];
-              timeList.push(timeStrArr);
-              ritem.runTimeStatus = 'overtimeWork'; //加班
-            }
-            ritem.showTimeList = timeList;
-            ritem.showTimeStr =
-              timeList.length > 0 ? timeList[0][0] + '-' + timeList[timeList.length - 1][1] : '';
-          });
-          setSpaceTimeList(resList);
-        })
-        .catch(() => {
-          //setLoading(false);
-        });
+
+      getDeviceTime(); //第一次执行
+
+      if (setTimer.current) {
+        clearInterval(setTimer.current);
+        setTimer.current = null;
+      }
+      //循环调接口
+      setTimer.current = setInterval(() => {
+        getDeviceTime();
+      }, 10000);
     }
   }, [selFloorId, selTime]);
 
   useEffect(() => {
     //mapList,spaceTimeList 这两个数据的结合
-    console.log('dfsd-------', mapList, spaceTimeList);
+    console.log('dfsd-------');
     // if (mapList && mapList.length > 0 && spaceTimeList && spaceTimeList.length > 0) {
 
     var combineList: any = [];
@@ -140,6 +153,7 @@ const Runtime: React.FC = () => {
       var combine = Object.assign({}, mitem, filterSpace[0]);
       combineList.push(combine);
     });
+
     setMapCombineList(combineList);
     //  }
   }, [mapList, spaceTimeList]);