Device.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import PageContent from '@/components/PageContent';
  2. import PageTitle from '@/components/PageTitle';
  3. import { queryDevice, queryScanDuration } from '@/services/controller';
  4. import { UnityAction } from '@/utils/utils';
  5. import { useParams, useRequest } from '@umijs/max';
  6. import { useCallback, useEffect } from 'react';
  7. import styles from './index.less';
  8. let timer;
  9. function Hardware() {
  10. const { projectId } = useParams();
  11. const { data, run, loading } = useRequest(queryDevice, {
  12. manual: true,
  13. onSuccess(data) {
  14. UnityAction.sendMsg('devLocate', JSON.stringify(data.list));
  15. },
  16. });
  17. const { data: draw } = useRequest(queryScanDuration, {
  18. defaultParams: [projectId],
  19. formatResult(res) {
  20. return res.data.draw;
  21. },
  22. });
  23. const getDeviceIconClassName = useCallback((status) => {
  24. let statusClassName = '';
  25. if (status == 2) {
  26. statusClassName = styles.error;
  27. } else if (status == 3) {
  28. statusClassName = styles.offline;
  29. }
  30. return `${styles.icon} ${statusClassName}`;
  31. });
  32. useEffect(() => {
  33. if (!draw) return;
  34. run(projectId);
  35. timer = setInterval(() => {
  36. run(projectId);
  37. }, draw);
  38. return () => clearInterval(timer);
  39. }, [draw]);
  40. return (
  41. <PageContent closeable={false}>
  42. <PageTitle onReturn={() => UnityAction.sendMsg('menuItem', '智能管控')}>
  43. 设备定位
  44. </PageTitle>
  45. {/* <Spin spinning={loading}> */}
  46. {data?.list?.map((item) => (
  47. <div
  48. key={item.id}
  49. className={`card-box ${styles.item}`}
  50. style={{ justifyContent: 'space-between' }}
  51. >
  52. <div>
  53. <i
  54. className={getDeviceIconClassName(item.mobile_device_status)}
  55. ></i>
  56. {item.mobile_device_name}
  57. </div>
  58. </div>
  59. ))}
  60. {/* </Spin> */}
  61. </PageContent>
  62. );
  63. }
  64. export default Hardware;