import React, { useState, useEffect, useCallback, useRef } from 'react'; import { message } from 'antd'; import styles from './index.less'; import commonStyles from '../common.less'; import { equipImageMap } from '@/config/image.js'; import AnSwitch from '../anSwitch'; import { getLampHttp, getStatusHttp, setallLampHttp } from '@/services/ant-design-pro/equipment'; import { setallLamps } from '@/pages/Equipment/checLampStatus.js'; const { lamp_open, lamp_close, expend_down, expend_up } = equipImageMap; export default ({ spaceId }) => { const [isMore, setIsMore] = useState(false); const [isOpen, setIsOpen] = useState(false); // 12 开, 10关 const [lampArr, setLampArr] = useState([]); let startTime = null; let endTime = null; const startLightsStatusTimer = useRef(null); const getLamp = () => { getLampHttp(spaceId).then((res) => { if (res.result != 'success') return; const arr = res.content; if (arr.length > 1) { setIsMore(true); let totalIsOpen = false; arr.forEach((item) => { if (item.runStatus) { totalIsOpen = true; } }); setIsOpen(totalIsOpen); } else { arr.forEach((item) => { if (item.runStatus) { setIsOpen(true); } else { setIsOpen(false); } }); } setLampArr(arr); }); }; useEffect(() => { getLamp(); // startLightsStatusTimer.current = setInterval(() => { // getLamp(); // 灯设备状态 // }, 1000); // return () => { // clearInterval(startLightsStatusTimer.current); // }; }, []); const [flagSvg, setFlagSvg] = useState(false); function handleExpend() { setFlagSvg(!flagSvg); } const changeSwitch = (val, type, id) => { let paramsArr = []; if (type == 'total') { lampArr.forEach((item) => { paramsArr.push({ id: item.id, switch: val, }); }); } else { paramsArr.push({ id: id, switch: val }); } setallLamps(paramsArr, getLamp); }; return (
{isMore ? '光照' : lampArr[0]?.localName}
{isOpen ? '照明已开启' : '照明已关闭'}
{isMore && (
显示全部
)}
{!flagSvg && (
{ changeSwitch(!isOpen, 'total'); }} >
)}
{lampArr.map((item, idx) => { if (flagSvg) { return (
{item.localName}
{ changeSwitch(!item.runStatus, 'child', item.id); }} >
); } })}
); };