PredictionDetail.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import PageContent from '@/components/PageContent';
  2. import PageTitle from '@/components/PageTitle';
  3. import { queryMembraneList, queryUFCondition } from '@/services/SmartOps';
  4. import { useLocation, useParams, useRequest } from '@umijs/max';
  5. import { Button, DatePicker } from 'antd';
  6. import dayjs from 'dayjs';
  7. import { useState } from 'react';
  8. import styles from './PredictionAnalysis.less';
  9. const { RangePicker } = DatePicker;
  10. const PredictionDetail = () => {
  11. const { projectId } = useParams();
  12. const locationSearch = new URLSearchParams(useLocation().search);
  13. const code = locationSearch.get('code');
  14. const defaultParams = {
  15. project_id: projectId,
  16. device_code: code,
  17. s_time: dayjs().format('YYYY-MM-DD 00:00:00'),
  18. e_time: dayjs().format('YYYY-MM-DD 23:59:59'),
  19. };
  20. const [currentDevice, setCurrentDevice] = useState({});
  21. useRequest(queryMembraneList, {
  22. defaultParams: [{ project_id: projectId, type: 'uf' }],
  23. formatResult: (result) => {
  24. if (result?.data?.list) {
  25. console.log(result.data.list.find((item) => item.device_code === code));
  26. setCurrentDevice(
  27. result.data.list.find((item) => item.device_code === code),
  28. );
  29. return result.data.list;
  30. }
  31. },
  32. });
  33. const { run } = useRequest(queryUFCondition, {
  34. defaultParams: [defaultParams],
  35. });
  36. const handleRangeChange = ([s_time, e_time]) => {
  37. run({
  38. ...filter,
  39. s_time: dayjs(s_time).format('YYYY-MM-DD 00:00:00'),
  40. e_time: dayjs(e_time).format('YYYY-MM-DD 23:59:59'),
  41. });
  42. };
  43. return (
  44. <PageContent closeable={false}>
  45. <PageTitle returnable>预测分析</PageTitle>
  46. <div className={styles.detailDeviceName}>
  47. 超滤工艺单元:{currentDevice.device_name}({currentDevice.device_code})
  48. </div>
  49. <div className={styles.detailDevice}>
  50. <div className={styles.detailDeviceTitle}>跨膜压差</div>
  51. <div className="card-box">
  52. <div
  53. className={styles.detailDeviceRangeSelect}
  54. style={{ padding: '0.2rem' }}
  55. >
  56. <RangePicker inputReadOnly onChange={handleRangeChange} />
  57. <Button type="primary" shape="round">
  58. 今日
  59. </Button>
  60. <Button type="primary" shape="round">
  61. 本周
  62. </Button>
  63. <Button type="primary" shape="round">
  64. 本月
  65. </Button>
  66. </div>
  67. <div className={styles.detailDeviceCharts}></div>
  68. </div>
  69. </div>
  70. </PageContent>
  71. );
  72. };
  73. export default PredictionDetail;