WaterAmtMng.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. // 水量监测
  2. import ChartModule from '@/components/ManagementPage/chartModule';
  3. // import SearchModule from '@/components/ManagementPage/searchModule';
  4. import PageContent from '@/components/PageContent';
  5. import PageTitle from '@/components/PageTitle';
  6. import { queryChartListByCode } from '@/services/OperationManagement';
  7. import { useParams, useRequest } from '@umijs/max';
  8. import { Spin, Table } from 'antd';
  9. import dayjs from 'dayjs';
  10. import { useMemo, useState } from 'react';
  11. const WaterAmtMng = () => {
  12. const { projectId } = useParams();
  13. const [currentPage, setPage] = useState(1);
  14. const { data, loading, run } = useRequest(
  15. (date) =>
  16. queryChartListByCode(
  17. {
  18. start_time: date.s_time,
  19. end_time: date.e_time,
  20. project_id: Number(projectId),
  21. order: 1,
  22. },
  23. ['plant_permeate_flow', 'plant_feed_flow'],
  24. ),
  25. {
  26. defaultParams: [
  27. {
  28. s_time: dayjs().subtract(1, 'day').format('YYYY-MM-DD 00:00:00'),
  29. e_time: dayjs().format('YYYY-MM-DD 23:59:59'),
  30. },
  31. ],
  32. },
  33. );
  34. const columns = [
  35. {
  36. title: '时间',
  37. dataIndex: 'time',
  38. },
  39. {
  40. title: '进水水量(t)',
  41. dataIndex: 'plant_feed_flow',
  42. },
  43. {
  44. title: '实际出水水量(t)',
  45. dataIndex: 'plant_permeate_flow',
  46. },
  47. {
  48. title: '预测出水水量(t)',
  49. // dataIndex: '',
  50. render: () => '-',
  51. },
  52. ];
  53. const { dataList, xData } = useMemo(() => {
  54. const dataList = [];
  55. let xData = [];
  56. if (data) {
  57. xData = data.map((item) => item.time);
  58. dataList.push({
  59. type: 0,
  60. name: '实际出水水量',
  61. data: data.map((item) => item.plant_permeate_flow),
  62. });
  63. dataList.push({
  64. type: 1,
  65. name: '进水水量',
  66. data: data.map((item) => item.plant_feed_flow),
  67. });
  68. }
  69. return { dataList, xData };
  70. }, [data]);
  71. const onChangePage = (pagination) => {
  72. setPage(pagination.current);
  73. };
  74. const onSearch = (date) => {
  75. run(date);
  76. setPage(1);
  77. };
  78. return (
  79. <PageContent closeable={false}>
  80. <PageTitle onReturn={() => UnityAction.sendMsg('menuItem', '首页')}>
  81. 水量监测
  82. </PageTitle>
  83. <div className="card-box" style={{ padding: 20, marginTop: 40 }}>
  84. <PageTitle>数据曲线</PageTitle>
  85. <Spin spinning={loading}>
  86. <div style={{ height: '300px', marginTop: 20 }}>
  87. <ChartModule yName="水量(t)" xData={xData} dataList={dataList} />
  88. </div>
  89. </Spin>
  90. <div style={{ marginTop: 30 }}>
  91. <PageTitle>数据列表</PageTitle>
  92. <Table
  93. loading={loading}
  94. columns={columns}
  95. style={{ marginTop: 20 }}
  96. pagination={{ current: currentPage }}
  97. onChange={onChangePage}
  98. dataSource={data?.sort((a, b) => b?.time?.localeCompare(a?.time))}
  99. />
  100. </div>
  101. </div>
  102. </PageContent>
  103. );
  104. };
  105. export default WaterAmtMng;