|
@@ -12,15 +12,11 @@ export default ({ spaceId }) => {
|
|
const [isOpen, setIsOpen] = useState(false); // 12 开, 10关
|
|
const [isOpen, setIsOpen] = useState(false); // 12 开, 10关
|
|
const [lampArr, setLampArr] = useState([]);
|
|
const [lampArr, setLampArr] = useState([]);
|
|
let startLightsStatusTimer = useRef(null);
|
|
let startLightsStatusTimer = useRef(null);
|
|
- let waitSetResultFlag = useRef(false); // 等待开关接口
|
|
|
|
|
|
+ // let waitSetResultFlag = useRef(false); // 等待开关接口
|
|
const getLamp = useCallback(() => {
|
|
const getLamp = useCallback(() => {
|
|
getLampHttp(spaceId).then(
|
|
getLampHttp(spaceId).then(
|
|
(res) => {
|
|
(res) => {
|
|
- clearTimeout(startLightsStatusTimer);
|
|
|
|
- startLightsStatusTimer = setTimeout(() => {
|
|
|
|
- getLamp(); // 灯设备状态
|
|
|
|
- }, 3000);
|
|
|
|
- if (res.result != 'success' && waitSetResultFlag.current) return;
|
|
|
|
|
|
+ // if (res.result != 'success' && waitSetResultFlag.current) return;
|
|
const arr = res.content;
|
|
const arr = res.content;
|
|
if (arr.length > 1) {
|
|
if (arr.length > 1) {
|
|
setIsMore(true);
|
|
setIsMore(true);
|
|
@@ -40,17 +36,24 @@ export default ({ spaceId }) => {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
-
|
|
|
|
setLampArr(arr);
|
|
setLampArr(arr);
|
|
},
|
|
},
|
|
(e) => {},
|
|
(e) => {},
|
|
);
|
|
);
|
|
- }, [waitSetResultFlag]);
|
|
|
|
|
|
+ }, []);
|
|
|
|
+
|
|
|
|
+ function getLampTimer() {
|
|
|
|
+ clearInterval(startLightsStatusTimer.current);
|
|
|
|
+ startLightsStatusTimer.current = setInterval(() => {
|
|
|
|
+ getLamp(); // 灯设备状态
|
|
|
|
+ }, 3000);
|
|
|
|
+ }
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
getLamp();
|
|
getLamp();
|
|
|
|
+ getLampTimer();
|
|
return () => {
|
|
return () => {
|
|
- clearTimeout(startLightsStatusTimer);
|
|
|
|
|
|
+ clearInterval(startLightsStatusTimer.current);
|
|
};
|
|
};
|
|
}, []);
|
|
}, []);
|
|
|
|
|
|
@@ -59,6 +62,8 @@ export default ({ spaceId }) => {
|
|
setFlagSvg(!flagSvg);
|
|
setFlagSvg(!flagSvg);
|
|
}
|
|
}
|
|
const changeSwitch = (val, type, id) => {
|
|
const changeSwitch = (val, type, id) => {
|
|
|
|
+ // 开关操作
|
|
|
|
+ clearInterval(startLightsStatusTimer.current);
|
|
let paramsArr = [];
|
|
let paramsArr = [];
|
|
if (type == 'total') {
|
|
if (type == 'total') {
|
|
lampArr.forEach((item) => {
|
|
lampArr.forEach((item) => {
|
|
@@ -77,13 +82,16 @@ export default ({ spaceId }) => {
|
|
paramsArr.push({ id: id, switch: val });
|
|
paramsArr.push({ id: id, switch: val });
|
|
}
|
|
}
|
|
lampArr.forEach((item) => {
|
|
lampArr.forEach((item) => {
|
|
- if (item.runStatus) {
|
|
|
|
- setIsOpen(item.runStatus); // 总开关
|
|
|
|
- }
|
|
|
|
|
|
+ setIsOpen(item.runStatus); // 总开关
|
|
|
|
+ });
|
|
|
|
+ // waitSetResultFlag.current = true;
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ setLampArr([...lampArr]);
|
|
|
|
+ }, 500);
|
|
|
|
+ setallLampHttp(paramsArr).then((res) => {
|
|
|
|
+ getLampTimer();
|
|
});
|
|
});
|
|
- waitSetResultFlag.current = true;
|
|
|
|
- setLampArr([...lampArr]);
|
|
|
|
- setallLamps(paramsArr, getLamp, waitSetResultFlag);
|
|
|
|
|
|
+ // setallLamps(paramsArr, getLamp, waitSetResultFlag);
|
|
};
|
|
};
|
|
return (
|
|
return (
|
|
<div className={commonStyles.box}>
|
|
<div className={commonStyles.box}>
|