|
@@ -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}>
|