index.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { StatisticCard } from '@ant-design/pro-card';
  2. import RcResizeObserver from 'rc-resize-observer';
  3. import { useState } from 'react';
  4. import { useIntl } from '@@/plugin-locale/localeExports';
  5. import CPU from '@/pages/Analysis/CPU';
  6. import Jvm from '@/pages/Analysis/Jvm';
  7. import DeviceMessageChart from '@/pages/Analysis/DeviceMessage';
  8. import DeviceChart from '@/pages/Analysis/DeviceChart';
  9. import MessageChart from '@/pages/Analysis/MessageChart';
  10. import Service from '@/pages/Analysis/service';
  11. const { Divider } = StatisticCard;
  12. export const service = new Service();
  13. const Analysis = () => {
  14. const [responsive, setResponsive] = useState(false);
  15. const intl = useIntl();
  16. return (
  17. <RcResizeObserver
  18. key="resize-observer"
  19. onResize={(offset) => {
  20. setResponsive(offset.width < 596);
  21. }}
  22. >
  23. <StatisticCard.Group direction={responsive ? 'column' : 'row'}>
  24. <StatisticCard
  25. title={intl.formatMessage({
  26. id: 'pages.analysis.cpu',
  27. defaultMessage: 'CPU使用率',
  28. })}
  29. chart={<CPU />}
  30. />
  31. <Divider type={responsive ? 'horizontal' : 'vertical'} />
  32. <StatisticCard
  33. title={intl.formatMessage({
  34. id: 'pages.analysis.jvm',
  35. defaultMessage: 'JVM内存',
  36. })}
  37. chart={<Jvm />}
  38. />
  39. <Divider type={responsive ? 'horizontal' : 'vertical'} />
  40. <StatisticCard
  41. title={intl.formatMessage({
  42. id: 'pages.analysis.volume',
  43. defaultMessage: '今日设备消息量',
  44. })}
  45. chart={<MessageChart />}
  46. />
  47. <Divider type={responsive ? 'horizontal' : 'vertical'} />
  48. <DeviceChart />
  49. </StatisticCard.Group>
  50. <Divider type={responsive ? 'horizontal' : 'vertical'} />
  51. <DeviceMessageChart />
  52. </RcResizeObserver>
  53. );
  54. };
  55. export default Analysis;