|
@@ -291,211 +291,220 @@ const SmartReport = () => {
|
|
|
<div className={styles.title}>无锡锡山水厂</div>
|
|
|
|
|
|
<Spin spinning={loading}>
|
|
|
- <Box title="概览">
|
|
|
- <div className={styles.content}>
|
|
|
- <TwoBoxItem label="累计进水:" value={in_water} />
|
|
|
- <TwoBoxItem label="累计出水:" value={out_water} />
|
|
|
+ <div className={styles.scrollContent}>
|
|
|
+ <Box title="概览">
|
|
|
+ <div className={styles.content}>
|
|
|
+ <TwoBoxItem label="累计进水:" value={in_water} />
|
|
|
+ <TwoBoxItem label="累计出水:" value={out_water} />
|
|
|
+
|
|
|
+ <ThreeBoxContent
|
|
|
+ data={[
|
|
|
+ {
|
|
|
+ label: '吨水能耗',
|
|
|
+ value: water_electricity,
|
|
|
+ unit: 'kwh',
|
|
|
+ },
|
|
|
+ { label: '吨水药耗', value: water_medicine, unit: 'kg/m³' },
|
|
|
+ {
|
|
|
+ label: '系统自检次数',
|
|
|
+ value: self_inspection_task,
|
|
|
+ unit: '次',
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ />
|
|
|
|
|
|
- <ThreeBoxContent
|
|
|
+ <TwoBoxItem
|
|
|
+ label="优化建议:"
|
|
|
+ value={push_optimize_task}
|
|
|
+ unit="条"
|
|
|
+ />
|
|
|
+ <TwoBoxItem
|
|
|
+ label="任务完成:"
|
|
|
+ value={push_complete_task}
|
|
|
+ unit="个"
|
|
|
+ />
|
|
|
+
|
|
|
+ <ThreeBoxContent
|
|
|
+ data={[
|
|
|
+ {
|
|
|
+ label: '工单完成',
|
|
|
+ value: work_order_complete_task,
|
|
|
+ unit: '个',
|
|
|
+ },
|
|
|
+ { label: '设备维修', value: repair_record, unit: '个' },
|
|
|
+ {
|
|
|
+ label: '设备保养',
|
|
|
+ value: maintain_record,
|
|
|
+ unit: '个',
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </Box>
|
|
|
+ <Box title="水量">
|
|
|
+ <CircleContent
|
|
|
data={[
|
|
|
- { label: '吨水能耗', value: water_electricity, unit: 'kwh' },
|
|
|
- { label: '吨水药耗', value: water_medicine, unit: 'kg/m³' },
|
|
|
- {
|
|
|
- label: '系统自检次数',
|
|
|
- value: self_inspection_task,
|
|
|
- unit: '次',
|
|
|
- },
|
|
|
+ { label: '累计进水', value: in_water },
|
|
|
+ { label: '累计出水', value: out_water },
|
|
|
]}
|
|
|
/>
|
|
|
+ </Box>
|
|
|
|
|
|
- <TwoBoxItem
|
|
|
- label="优化建议:"
|
|
|
- value={push_optimize_task}
|
|
|
- unit="条"
|
|
|
- />
|
|
|
- <TwoBoxItem
|
|
|
- label="任务完成:"
|
|
|
- value={push_complete_task}
|
|
|
- unit="个"
|
|
|
- />
|
|
|
-
|
|
|
- <ThreeBoxContent
|
|
|
+ <Box title="能耗">
|
|
|
+ <CircleContent
|
|
|
data={[
|
|
|
- {
|
|
|
- label: '工单完成',
|
|
|
- value: work_order_complete_task,
|
|
|
- unit: '个',
|
|
|
- },
|
|
|
- { label: '设备维修', value: repair_record, unit: '个' },
|
|
|
- {
|
|
|
- label: '设备保养',
|
|
|
- value: maintain_record,
|
|
|
- unit: '个',
|
|
|
- },
|
|
|
+ { label: '吨水能耗', value: water_electricity, unit: '' },
|
|
|
+ { label: '累计耗电量', value: electricity, unit: 'kwh' },
|
|
|
]}
|
|
|
/>
|
|
|
- </div>
|
|
|
- </Box>
|
|
|
- <Box title="水量">
|
|
|
- <CircleContent
|
|
|
- data={[
|
|
|
- { label: '累计进水', value: in_water },
|
|
|
- { label: '累计出水', value: out_water },
|
|
|
- ]}
|
|
|
- />
|
|
|
- </Box>
|
|
|
-
|
|
|
- <Box title="能耗">
|
|
|
- <CircleContent
|
|
|
- data={[
|
|
|
- { label: '吨水能耗', value: water_electricity, unit: '' },
|
|
|
- { label: '累计耗电量', value: electricity, unit: 'kwh' },
|
|
|
- ]}
|
|
|
- />
|
|
|
- </Box>
|
|
|
-
|
|
|
- <Box title="药耗">
|
|
|
- <CircleContent
|
|
|
- data={[
|
|
|
- { label: '吨水药耗', value: water_medicine, unit: 'kg/m³' },
|
|
|
- { label: '累计用药量', value: medicine },
|
|
|
- ]}
|
|
|
- />
|
|
|
- </Box>
|
|
|
-
|
|
|
- <div className={styles.box}>
|
|
|
- <div className={styles.main_in}>
|
|
|
- <div className={styles.titleContent}>系统自检</div>
|
|
|
- <CircleThreeContent
|
|
|
+ </Box>
|
|
|
+
|
|
|
+ <Box title="药耗">
|
|
|
+ <CircleContent
|
|
|
data={[
|
|
|
- { label: '自检次数', value: self_inspection_task },
|
|
|
- { label: '异常次数', value: self_inspection_abnormal_task },
|
|
|
- { label: '正常次数', value: self_inspection_normal_task },
|
|
|
+ { label: '吨水药耗', value: water_medicine, unit: 'kg/m³' },
|
|
|
+ { label: '累计用药量', value: medicine },
|
|
|
]}
|
|
|
/>
|
|
|
- <div className={styles.paddingContent}>
|
|
|
- <div className={styles.cutLine}></div>
|
|
|
- </div>
|
|
|
- <div style={{ padding: '0.43rem 0.4rem 0' }}>
|
|
|
- <div className={styles.unit}>异常类型统计:</div>
|
|
|
- <div
|
|
|
- ref={eqDomRef}
|
|
|
- style={{
|
|
|
- height: '6rem',
|
|
|
- width: 'calc(100% - 1.2rem)',
|
|
|
- margin: '0 0 0 0.8rem',
|
|
|
- }}
|
|
|
+ </Box>
|
|
|
+
|
|
|
+ <div className={styles.box}>
|
|
|
+ <div className={styles.main_in}>
|
|
|
+ <div className={styles.titleContent}>系统自检</div>
|
|
|
+ <CircleThreeContent
|
|
|
+ data={[
|
|
|
+ { label: '自检次数', value: self_inspection_task },
|
|
|
+ { label: '异常次数', value: self_inspection_abnormal_task },
|
|
|
+ { label: '正常次数', value: self_inspection_normal_task },
|
|
|
+ ]}
|
|
|
/>
|
|
|
+ <div className={styles.paddingContent}>
|
|
|
+ <div className={styles.cutLine}></div>
|
|
|
+ </div>
|
|
|
+ <div style={{ padding: '0.43rem 0.4rem 0' }}>
|
|
|
+ <div className={styles.unit}>异常类型统计:</div>
|
|
|
+ <div
|
|
|
+ ref={eqDomRef}
|
|
|
+ style={{
|
|
|
+ height: '6rem',
|
|
|
+ margin: '0 0 0 0.8rem',
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
- <div className={styles.box}>
|
|
|
- <div className={styles.main_in}>
|
|
|
- <div className={styles.titleContent}>智慧运营</div>
|
|
|
- <CircleThreeContent
|
|
|
- data={[
|
|
|
- { label: '优化条数', value: push_optimize_task, unit: '条' },
|
|
|
- { label: '超滤能耗', value: ele_65 },
|
|
|
- { label: '反渗透能耗', value: ele_66 },
|
|
|
- ]}
|
|
|
- />
|
|
|
- <div className={styles.paddingContent}>
|
|
|
- <div className={styles.cutLine}></div>
|
|
|
- </div>
|
|
|
- <div style={{ padding: '0.43rem 0.4rem 0' }}>
|
|
|
- <div className={styles.unit}>工况评估统计:</div>
|
|
|
- <div
|
|
|
- ref={workScoreDomRef}
|
|
|
- style={{
|
|
|
- height: '6rem',
|
|
|
- width: 'calc(100% - 1.2rem)',
|
|
|
- margin: '0 0 0 0.8rem',
|
|
|
- }}
|
|
|
+ <div className={styles.box}>
|
|
|
+ <div className={styles.main_in}>
|
|
|
+ <div className={styles.titleContent}>智慧运营</div>
|
|
|
+ <CircleThreeContent
|
|
|
+ data={[
|
|
|
+ {
|
|
|
+ label: '优化条数',
|
|
|
+ value: push_optimize_task,
|
|
|
+ unit: '条',
|
|
|
+ },
|
|
|
+ { label: '超滤能耗', value: ele_65 },
|
|
|
+ { label: '反渗透能耗', value: ele_66 },
|
|
|
+ ]}
|
|
|
/>
|
|
|
- </div>
|
|
|
- {/* <div style={{ padding: '0.2rem 0.2rem 0 0.2rem' }}>
|
|
|
+ <div className={styles.paddingContent}>
|
|
|
+ <div className={styles.cutLine}></div>
|
|
|
+ </div>
|
|
|
+ <div style={{ padding: '0.43rem 0.4rem 0' }}>
|
|
|
+ <div className={styles.unit}>工况评估统计:</div>
|
|
|
+ <div
|
|
|
+ ref={workScoreDomRef}
|
|
|
+ style={{
|
|
|
+ height: '6rem',
|
|
|
+ width: 'calc(100% - 1.2rem)',
|
|
|
+ margin: '0 0 0 0.8rem',
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ {/* <div style={{ padding: '0.2rem 0.2rem 0 0.2rem' }}>
|
|
|
<div className={styles.smartText}>
|
|
|
优化条数:{push_optimize_task}条
|
|
|
</div>
|
|
|
<div className={styles.smartText}>超滤能耗:{ele_65}</div>
|
|
|
<div className={styles.smartText}>反渗透能耗:{ele_66}</div>
|
|
|
</div> */}
|
|
|
- {/* <div
|
|
|
+ {/* <div
|
|
|
ref={workScoreDomRef}
|
|
|
style={{ height: '3.4rem', margin: '0.1rem 0 0.1rem 0' }}
|
|
|
></div> */}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div className={styles.box}>
|
|
|
- <div className={styles.main_in}>
|
|
|
- <div className={styles.titleContent}>任务工单</div>
|
|
|
- <CircleContent
|
|
|
- data={[
|
|
|
- { label: '任务数量', value: push_task },
|
|
|
- { label: '工单数量', value: work_order_task },
|
|
|
- ]}
|
|
|
- />
|
|
|
- <CircleContent
|
|
|
- data={[
|
|
|
- { label: '任务完成数量', value: push_complete_task },
|
|
|
- { label: '工单完成数量', value: work_order_complete_task },
|
|
|
- ]}
|
|
|
- />
|
|
|
+ <div className={styles.box}>
|
|
|
+ <div className={styles.main_in}>
|
|
|
+ <div className={styles.titleContent}>任务工单</div>
|
|
|
+ <CircleContent
|
|
|
+ data={[
|
|
|
+ { label: '任务数量', value: push_task },
|
|
|
+ { label: '工单数量', value: work_order_task },
|
|
|
+ ]}
|
|
|
+ />
|
|
|
+ <CircleContent
|
|
|
+ data={[
|
|
|
+ { label: '任务完成数量', value: push_complete_task },
|
|
|
+ { label: '工单完成数量', value: work_order_complete_task },
|
|
|
+ ]}
|
|
|
+ />
|
|
|
+ <CircleContent
|
|
|
+ data={[
|
|
|
+ {
|
|
|
+ label: '任务完成率',
|
|
|
+ value: push_complete_task_per,
|
|
|
+ unit: '%',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '工单完成率',
|
|
|
+ value: work_order_complete_task_per,
|
|
|
+ unit: '%',
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ />
|
|
|
+ <div style={{ display: 'flex', padding: '0 0.4rem' }}>
|
|
|
+ <div className={styles.item}>
|
|
|
+ <div className={styles.unit}>任务类型统计:</div>
|
|
|
+ <div
|
|
|
+ ref={taskDomRef}
|
|
|
+ style={{
|
|
|
+ height: '6rem',
|
|
|
+ width: '100%',
|
|
|
+ marginTop: '0.2rem',
|
|
|
+ }}
|
|
|
+ ></div>
|
|
|
+ </div>
|
|
|
+ <div className={styles.item}>
|
|
|
+ <div className={styles.unit}>工单类型统计:</div>
|
|
|
+ <div
|
|
|
+ ref={workDomRef}
|
|
|
+ style={{
|
|
|
+ height: '6rem',
|
|
|
+ width: '100%',
|
|
|
+ marginTop: '0.2rem',
|
|
|
+ }}
|
|
|
+ ></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <Box title="设备维修保养">
|
|
|
<CircleContent
|
|
|
data={[
|
|
|
{
|
|
|
- label: '任务完成率',
|
|
|
- value: push_complete_task_per,
|
|
|
- unit: '%',
|
|
|
+ label: '维修数量',
|
|
|
+ value: repair_record,
|
|
|
},
|
|
|
{
|
|
|
- label: '工单完成率',
|
|
|
- value: work_order_complete_task_per,
|
|
|
- unit: '%',
|
|
|
+ label: '保养数量',
|
|
|
+ value: maintain_record,
|
|
|
},
|
|
|
]}
|
|
|
/>
|
|
|
- <div style={{ display: 'flex', padding: '0 0.4rem' }}>
|
|
|
- <div className={styles.item}>
|
|
|
- <div className={styles.unit}>任务类型统计:</div>
|
|
|
- <div
|
|
|
- ref={taskDomRef}
|
|
|
- style={{
|
|
|
- height: '6rem',
|
|
|
- width: '100%',
|
|
|
- marginTop: '0.2rem',
|
|
|
- }}
|
|
|
- ></div>
|
|
|
- </div>
|
|
|
- <div className={styles.item}>
|
|
|
- <div className={styles.unit}>工单类型统计:</div>
|
|
|
- <div
|
|
|
- ref={workDomRef}
|
|
|
- style={{
|
|
|
- height: '6rem',
|
|
|
- width: '100%',
|
|
|
- marginTop: '0.2rem',
|
|
|
- }}
|
|
|
- ></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </Box>
|
|
|
</div>
|
|
|
- <Box title="设备维修保养">
|
|
|
- <CircleContent
|
|
|
- data={[
|
|
|
- {
|
|
|
- label: '维修数量',
|
|
|
- value: repair_record,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '保养数量',
|
|
|
- value: maintain_record,
|
|
|
- },
|
|
|
- ]}
|
|
|
- />
|
|
|
- </Box>
|
|
|
</Spin>
|
|
|
</ConfigProvider>
|
|
|
</PageContent>
|
|
@@ -542,6 +551,7 @@ const getPieOption = (chartData, isLeft = false) => {
|
|
|
type: 'pie',
|
|
|
top: isLeft ? 0 : '20%',
|
|
|
radius: isLeft ? '60%' : '40%',
|
|
|
+ left: isLeft ? '20%' : 0,
|
|
|
label: isLeft ? {} : { fontSize: 10 },
|
|
|
data: chartData,
|
|
|
emphasis: {
|