Browse Source

fix: 空调灯接口优化,结果回来再请求

zhaojing 2 years ago
parent
commit
b91e431220

+ 4 - 3
src/pages/Equipment/components/deviceModal/airEq/index.jsx

@@ -27,6 +27,7 @@ export default ({ spaceId, projectId }) => {
   const [imgSrc, setImgSrc] = useState(null);
   let timer = useRef(null);
   let airLoadingTimer = useRef(null);
+  let divBox = useRef(null);
   const [spaceStatus, setStatusText] = useState('null');
   let [changeLoading, setChangeLoading] = useState({ 4: false, 2: false, 5: false, 6: false });
   let [modeName, setModeName] = useState('');
@@ -70,7 +71,7 @@ export default ({ spaceId, projectId }) => {
   function timerGetAirInfo(timeLong) {
     clearTimeout(timer.current);
     timer.current = setTimeout(() => {
-      getAirInfo(); // 获取空调状态
+      divBox.current && getAirInfo(); // 获取空调状态
     }, timeLong);
   }
 
@@ -179,13 +180,13 @@ export default ({ spaceId, projectId }) => {
     getAirInfo(); // 获取空调状态
     //timerGetAirInfo(2000);
     return () => {
-      console.log('useEffect[]spaceId', spaceId);
+      //console.log('useEffect[]spaceId', divBox.current);
       clearTimeout(timer.current);
     };
   }, []);
 
   return (
-    <div className={styles.box}>
+    <div className={styles.box} ref={divBox}>
       <div className={styles.content}>
         <div className={styles.env}>
           {isOpen && (

+ 16 - 5
src/pages/Equipment/components/deviceModal/index.jsx

@@ -86,6 +86,7 @@ export default ({ onClose, showSpace }) => {
   const [spaceName, setSpaceName] = useState('');
   const [paramList, setParamList] = useState([]);
   const [timeArr, setTimeArr] = useState([]);
+
   let timer = useRef(null);
   function showEqCard(type) {
     let flag = false;
@@ -96,6 +97,14 @@ export default ({ onClose, showSpace }) => {
     return flag;
   }
 
+  let divBox = useRef(null);
+  const getDataTime = () => {
+    clearTimeout(timer.current);
+    timer.current = setTimeout(() => {
+      divBox.current && getData(); //
+    }, 120000);
+  };
+
   const getData = () => {
     const paramsObj = {
       criteria: {
@@ -125,8 +134,11 @@ export default ({ onClose, showSpace }) => {
             });
             setParamList(envArr);
           });
+        getDataTime();
       })
-      .catch((err) => {});
+      .catch((err) => {
+        getDataTime();
+      });
   };
 
   const operateTime = useMemo(() => {
@@ -217,11 +229,9 @@ export default ({ onClose, showSpace }) => {
 
   useEffect(() => {
     getData();
-    timer = setInterval(() => {
-      getData();
-    }, 1000 * 60 * 5);
     return () => {
-      clearInterval(timer);
+      //console.log('divBox.current22', divBox.current);
+      clearTimeout(timer.current);
     };
   }, []);
   //   拖拽
@@ -274,6 +284,7 @@ export default ({ onClose, showSpace }) => {
           onMouseDown={(e) => {
             e.preventDefault();
           }}
+          ref={divBox}
         >
           <div className={styles.header}>
             <div className={styles.show}>

+ 12 - 10
src/pages/Equipment/components/deviceModal/lampEq/index.jsx

@@ -12,6 +12,7 @@ export default ({ spaceId }) => {
   const [isOpen, setIsOpen] = useState(false); // 12 开, 10关
   const [lampArr, setLampArr] = useState([]);
   let startLightsStatusTimer = useRef(null);
+  let divBox = useRef(null);
   //   let waitSetResultFlag = useRef(false); // 等待开关接口
   const getLamp = useCallback(() => {
     getLampHttp(spaceId).then(
@@ -37,23 +38,25 @@ export default ({ spaceId }) => {
           });
         }
         setLampArr(arr);
+        getLampTimer();
+      },
+      (e) => {
+        getLampTimer();
       },
-      (e) => {},
     );
   }, []);
 
   function getLampTimer() {
-    clearInterval(startLightsStatusTimer.current);
-    startLightsStatusTimer.current = setInterval(() => {
-      getLamp(); // 灯设备状态
+    clearTimeout(startLightsStatusTimer.current);
+    startLightsStatusTimer.current = setTimeout(() => {
+      divBox.current && getLamp(); // 灯设备状态
     }, 3000);
   }
 
   useEffect(() => {
     getLamp();
-    getLampTimer();
     return () => {
-      clearInterval(startLightsStatusTimer.current);
+      clearTimeout(startLightsStatusTimer.current);
     };
   }, []);
 
@@ -63,7 +66,7 @@ export default ({ spaceId }) => {
   }
   const changeSwitch = (val, type, id) => {
     //  开关操作
-    clearInterval(startLightsStatusTimer.current);
+    clearTimeout(startLightsStatusTimer.current);
     let paramsArr = [];
     if (type == 'total') {
       lampArr.forEach((item) => {
@@ -89,12 +92,11 @@ export default ({ spaceId }) => {
       setLampArr([...lampArr]);
     }, 500);
     setallLampHttp(paramsArr).then((res) => {
-      getLampTimer();
+      getLamp();
     });
-    // setallLamps(paramsArr, getLamp, waitSetResultFlag);
   };
   return (
-    <div className={commonStyles.box}>
+    <div className={commonStyles.box} ref={divBox}>
       <div className={commonStyles.content}>
         <div className={commonStyles.env}>
           <div className={commonStyles.envLeft}>