Light.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { queryLightList } from '@/services/controller';
  2. import { UnityAction } from '@/utils/utils';
  3. import { useParams, useRequest } from '@umijs/max';
  4. import { Spin } from 'antd';
  5. import styles from '../index.less';
  6. const Work = (props) => {
  7. const { projectId } = useParams();
  8. const { data, loading } = useRequest(queryLightList, {
  9. defaultParams: [projectId],
  10. onSuccess(res) {
  11. UnityAction.sendMsg('lightData', JSON.stringify(res.list));
  12. },
  13. });
  14. const getIconStatus = (status) => {
  15. if (status == 1) return '';
  16. if (status == 2) return styles.offline;
  17. if (status == 3) return styles.error;
  18. };
  19. return (
  20. <div>
  21. <div className={`card-box ${styles.top}`}>
  22. <div className={styles.left}>
  23. <img
  24. className={styles.img}
  25. src={require('@/assets/air-conditioner.png')}
  26. />
  27. <div>
  28. <div className={styles.number}>{data?.pagination?.total}</div>
  29. 照明数量
  30. </div>
  31. </div>
  32. <div className={styles.right}>
  33. <div className={styles.row}>
  34. <i className={styles.icon}></i> 在线:{data?.online_count}
  35. </div>
  36. <div className={styles.row}>
  37. <i className={`${styles.icon} ${styles.offline}`}></i> 离线:
  38. {data?.offline_count}
  39. </div>
  40. </div>
  41. </div>
  42. <Spin spinning={loading}>
  43. {data?.list?.map((item) => (
  44. <div key={item.id} className={`card-box ${styles.item}`}>
  45. <i className={`${styles.icon} ${getIconStatus(item.status)}`}></i>{' '}
  46. {item.name}
  47. </div>
  48. ))}
  49. </Spin>
  50. </div>
  51. );
  52. };
  53. export default Work;