index.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. import PageContent from '@/components/PageContent';
  2. import PageTitle from '@/components/PageTitle';
  3. import { queryConditionSnapshot } from '@/services/SmartOps';
  4. import { history, useParams, useRequest } from '@umijs/max';
  5. import { Button, Col, Row } from 'antd';
  6. import dayjs from 'dayjs';
  7. import { useState } from 'react';
  8. import styles from './index.less';
  9. const Work = (props) => {
  10. const { projectId } = useParams();
  11. const [open, setOpen] = useState(false);
  12. const { data, loading } = useRequest(queryConditionSnapshot, {
  13. defaultParams: [{ project_id: projectId }],
  14. initialData: {},
  15. });
  16. return (
  17. <PageContent>
  18. <PageTitle>水厂工况</PageTitle>
  19. {/* <div className="content-title"> */}
  20. <div className={styles.score}>
  21. {/* <CircleScore big> */}
  22. <div className={styles.circle}>
  23. {data?.score?.toFixed(2)}
  24. <div style={{ fontSize: '0.24rem' }}>{data?.grade}</div>
  25. </div>
  26. {/* </CircleScore> */}
  27. <div className={styles.scoreRight}>
  28. <h3>当前运行{data?.grade},可继续优化</h3>
  29. <div className={styles.time}>
  30. {dayjs(data?.clac_time).format('YYYY-MM-DD HH:mm')}
  31. </div>
  32. {data?.score && (
  33. <Button
  34. style={{ marginRight: '0.2rem' }}
  35. className={styles.btn}
  36. type="primary"
  37. onClick={() =>
  38. history.push(
  39. `/smart/optimization-tasks/${projectId}?score=${data.score}`,
  40. )
  41. }
  42. >
  43. 优化任务
  44. </Button>
  45. )}
  46. <Button
  47. className={styles.btn}
  48. type="primary"
  49. onClick={() =>
  50. history.push('/smart/condition-detection/' + projectId)
  51. }
  52. >
  53. 工况预测
  54. </Button>
  55. </div>
  56. </div>
  57. <Row gutter={30}>
  58. <Col span={12}>
  59. <div className={styles.card}>
  60. <h3>水厂负荷数据</h3>
  61. <ul>
  62. <li>
  63. <i></i>实际处理水量:{data?.fact_water}
  64. </li>
  65. <li>
  66. <i></i>设计处理水量:{data?.devise_water}
  67. </li>
  68. </ul>
  69. </div>
  70. </Col>
  71. <Col span={12}>
  72. <div className={styles.card}>
  73. <h3>
  74. 成本数据
  75. <div
  76. style={{ marginLeft: 14 }}
  77. onClick={() => setOpen(!open)}
  78. className={`password-eye ${open ? 'open' : ''}`}
  79. ></div>
  80. </h3>
  81. <ul>
  82. <li>
  83. <i></i>吨水药成本:{open ? data?.otc_cost_unit : '*******'}
  84. </li>
  85. <li>
  86. <i></i>吨水电成本:{open ? data?.elec_cost_unit : '*******'}
  87. </li>
  88. </ul>
  89. </div>
  90. </Col>
  91. <Col span={12}>
  92. <div className={styles.card}>
  93. <h3>能耗数据</h3>
  94. <ul>
  95. <li>
  96. <i></i>吨水电耗:{data?.elec_unit}
  97. </li>
  98. <li>
  99. <i></i>用电量:{data?.elec}
  100. </li>
  101. </ul>
  102. </div>
  103. </Col>
  104. <Col span={12}>
  105. <div className={styles.card2}>
  106. <h3>药耗数据</h3>
  107. <ul>
  108. <li>
  109. <i></i>吨水药耗:{data?.otc_unit}
  110. </li>
  111. <li>
  112. <i></i>药量:{data?.otc}
  113. </li>
  114. </ul>
  115. </div>
  116. </Col>
  117. <Col span={12}>
  118. <div className={styles.card2} style={{ marginBottom: 0 }}>
  119. <h3>进水数据</h3>
  120. <ul>
  121. <li>
  122. <i></i>进水量:{data?.fwa}
  123. </li>
  124. <li>
  125. <i></i>进水温度:{data?.ft}
  126. </li>
  127. <li>
  128. <i></i>进水浊度:{data?.ftur}
  129. </li>
  130. <li>
  131. <i></i>进水压力:{data?.fpp}
  132. </li>
  133. </ul>
  134. </div>
  135. </Col>
  136. <Col span={12}>
  137. <div className={styles.card2} style={{ marginBottom: 0 }}>
  138. <h3>产水数据</h3>
  139. <ul>
  140. <li>
  141. <i></i>外供水流量:{data?.dwa}
  142. </li>
  143. <li>
  144. <i></i>外供水pH:{data?.dph}
  145. </li>
  146. <li>
  147. <i></i>外供水电导率:{data?.dtds}
  148. </li>
  149. {/* 与进水数据对齐 */}
  150. <li style={{ visibility: 'hidden' }}>
  151. <i></i>
  152. </li>
  153. </ul>
  154. </div>
  155. </Col>
  156. </Row>
  157. {/* </div> */}
  158. </PageContent>
  159. );
  160. };
  161. export default Work;