|
@@ -6,19 +6,24 @@ import PageTitle from '@/components/PageTitle';
|
|
|
import { queryChartListByCode } from '@/services/OperationManagement';
|
|
|
import { UnityAction } from '@/utils/utils';
|
|
|
import { useParams, useRequest } from '@umijs/max';
|
|
|
-import { Spin, Table } from 'antd';
|
|
|
+import { Button, DatePicker, Spin, Table } from 'antd';
|
|
|
import dayjs from 'dayjs';
|
|
|
-import { useMemo } from 'react';
|
|
|
+import { useMemo, useState } from 'react';
|
|
|
+import styles from './index.less';
|
|
|
+
|
|
|
+const { RangePicker } = DatePicker;
|
|
|
|
|
|
const WaterAmtMng = () => {
|
|
|
const { projectId } = useParams();
|
|
|
|
|
|
+ const [filter, setFilter] = useState([dayjs().subtract(1, 'day'), dayjs()]);
|
|
|
+
|
|
|
const { data, loading, run } = useRequest(
|
|
|
(date) =>
|
|
|
queryChartListByCode(
|
|
|
{
|
|
|
- start_time: date.s_time,
|
|
|
- end_time: date.e_time,
|
|
|
+ start_time: date?.s_time,
|
|
|
+ end_time: date?.e_time,
|
|
|
project_id: Number(projectId),
|
|
|
order: 1,
|
|
|
},
|
|
@@ -49,6 +54,7 @@ const WaterAmtMng = () => {
|
|
|
},
|
|
|
{
|
|
|
title: '预测出水水量(t)',
|
|
|
+ key: '-',
|
|
|
// dataIndex: '',
|
|
|
render: () => '-',
|
|
|
},
|
|
@@ -74,7 +80,26 @@ const WaterAmtMng = () => {
|
|
|
}, [data]);
|
|
|
|
|
|
const onSearch = (date) => {
|
|
|
- run(date);
|
|
|
+ if (date === null) {
|
|
|
+ setFilter([]);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if ('string' === typeof date) {
|
|
|
+ setFilter([]);
|
|
|
+ run({
|
|
|
+ s_time: dayjs().subtract(1, date).format('YYYY-MM-DD 00:00:00'),
|
|
|
+ e_time: dayjs().format('YYYY-MM-DD 23:59:59'),
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ const [s_time, e_time] = date.map((time) =>
|
|
|
+ dayjs(time).format('YYYY-MM-DD'),
|
|
|
+ );
|
|
|
+
|
|
|
+ run({
|
|
|
+ s_time: dayjs(s_time).format('YYYY-MM-DD 00:00:00'),
|
|
|
+ e_time: dayjs(e_time).format('YYYY-MM-DD 23:59:59'),
|
|
|
+ });
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
return (
|
|
@@ -82,30 +107,73 @@ const WaterAmtMng = () => {
|
|
|
<PageTitle onReturn={() => UnityAction.sendMsg('menuItem', '首页')}>
|
|
|
水量监测
|
|
|
</PageTitle>
|
|
|
- <div className="card-box" style={{ padding: '0.2rem' }}>
|
|
|
- <div className="section-title">
|
|
|
- <div className="section-line"></div>
|
|
|
- 数据曲线
|
|
|
- </div>
|
|
|
- <Spin spinning={loading}>
|
|
|
- <div style={{ height: '5rem', marginTop: 20 }}>
|
|
|
- <ChartModule yName="水量(t)" xData={xData} dataList={dataList} />
|
|
|
+ <Spin spinning={loading}>
|
|
|
+ <div className={styles.timeSelectBox}>
|
|
|
+ <div className={styles.timeBtn}>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ shape="round"
|
|
|
+ onClick={() => {
|
|
|
+ onSearch('day');
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 近一天
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ shape="round"
|
|
|
+ onClick={() => {
|
|
|
+ onSearch('week');
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 近一周
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ shape="round"
|
|
|
+ onClick={() => {
|
|
|
+ onSearch('month');
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 近一个月
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ <div style={{ fontSize: '0.3rem' }}>
|
|
|
+ <RangePicker
|
|
|
+ allowClear
|
|
|
+ value={filter}
|
|
|
+ onChange={(time) => {
|
|
|
+ onSearch(time);
|
|
|
+ }}
|
|
|
+ />
|
|
|
</div>
|
|
|
- </Spin>
|
|
|
- <div style={{ marginTop: 30 }}>
|
|
|
+ </div>
|
|
|
+ <div className="card-box" style={{ padding: '0.2rem' }}>
|
|
|
<div className="section-title">
|
|
|
<div className="section-line"></div>
|
|
|
- 数据列表
|
|
|
+ 数据曲线
|
|
|
+ </div>
|
|
|
+ <Spin spinning={loading}>
|
|
|
+ <div style={{ height: '5rem', marginTop: 20 }}>
|
|
|
+ <ChartModule yName="水量(t)" xData={xData} dataList={dataList} />
|
|
|
+ </div>
|
|
|
+ </Spin>
|
|
|
+ <div style={{ marginTop: 30 }}>
|
|
|
+ <div className="section-title">
|
|
|
+ <div className="section-line"></div>
|
|
|
+ 数据列表
|
|
|
+ </div>
|
|
|
+ <Table
|
|
|
+ loading={loading}
|
|
|
+ columns={columns}
|
|
|
+ rowKey="time"
|
|
|
+ style={{ marginTop: 20 }}
|
|
|
+ pagination={false}
|
|
|
+ dataSource={data?.sort((a, b) => b?.time?.localeCompare(a?.time))}
|
|
|
+ />
|
|
|
</div>
|
|
|
- <Table
|
|
|
- loading={loading}
|
|
|
- columns={columns}
|
|
|
- style={{ marginTop: 20 }}
|
|
|
- pagination={false}
|
|
|
- dataSource={data?.sort((a, b) => b?.time?.localeCompare(a?.time))}
|
|
|
- />
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </Spin>
|
|
|
</PageContent>
|
|
|
);
|
|
|
};
|