合并代码

lsf-dev
秦子超 2025-05-27 16:40:23 +08:00
commit 005288ffe2
58 changed files with 1557 additions and 338 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

View File

@ -288,7 +288,7 @@
"visible": true "visible": true
}, },
"变形监测": { "变形监测": {
"width": 32, "width": 26,
"height": 32, "height": 32,
"x": 0, "x": 0,
"y": 288, "y": 288,

View File

@ -92,9 +92,22 @@ export default function calcLayout(view, rightStack, hidePanels) {
} else if (view === 301) { } else if (view === 301) {
left = [ left = [
{ key: '天气' }, { key: '天气' },
{ key: '供水态势',style: { height: '16rem', flexGrow: 1 } }, { key: '供水数据概览',style: { height: '15.5rem'} },
{ key: '日供水量',style: { height: '16rem', flexGrow: 1 } }, { key: '水厂生产情况',style: { height: '15rem', flexGrow: 1 } },
{ key: '供水覆盖率',style: { height: '16rem', flexGrow: 1 } }, { key: '供水监管',style: { height: '16rem'} },
];
} else if (view === 302) {
left = [
{ key: '天气' },
{ key: '水厂水质监测',style: { height: '16rem'} },
{ key: '报警分析',style: { height: '16rem'} },
];
} else if (view === 303) {
left = [
{ key: '天气' },
{ key: '水厂监控',style: { height: '16rem'} },
{ key: '设备数量统计',style: { height: '18rem'} },
{ key: '设备故障统计',style: { height: '18rem'} },
]; ];
}else if (view === 305) { }else if (view === 305) {
left = [ left = [
@ -216,7 +229,8 @@ export default function calcLayout(view, rightStack, hidePanels) {
]; ];
} else if (view === 205) { } else if (view === 205) {
right = [ right = [
{ key: '警报' }, { key: '预演方案', style: { height: '30%', flexGrow: 1 } },
{ key: '预演结果', style: { height: '70%', flexGrow: 1 } },
]; ];
} else if (view === 206) { } else if (view === 206) {
right = [ right = [
@ -225,9 +239,19 @@ export default function calcLayout(view, rightStack, hidePanels) {
} else if (view === 301) { } else if (view === 301) {
right = [ right = [
{ key: '警报' }, { key: '警报' },
{ key: '对比分析', style: { height: '19rem', flexGrow: 1 } }, { key: '对比分析', style: { height: '19rem' } },
{ key: '供水监控', style: { flexGrow: 1 } }, { key: '报警统计',style: { height: '37rem',flexGrow: 1 } },
rightFullHeight = true ];
} else if (view === 302) {
right = [
{ key: '警报' },
];
} else if (view === 303) {
right = [
{ key: '警报' },
{ key: '安防监控', style: { height: '14rem', flexGrow: 1 } },
{ key: '电耗分析', style: { height: '19rem', flexGrow: 1 } },
{ key: '药耗分析', style: { height: '21rem', flexGrow: 1 } },
]; ];
}else if (view === 305) { }else if (view === 305) {
right = [ right = [

View File

@ -0,0 +1,104 @@
import { makeStyles } from '@material-ui/core'
const useDescStyles = makeStyles({
root: { flex: 'auto' },
tabBox: { width: '2rem' },
tabs1: {
backgroundColor: '#122e47',
fontWeight: 'bold',
overflow: 'hidden',
marginBottom: '0.6rem',
color: '#E2EDFF'
},
tabIndicator: {
backgroundColor: 'transparent'
},
active: {
border: '1px solid #02a6b5'
},
title: {
width: '16%',
display: 'flex',
alignItems: 'center',
padding: '0.2rem 0.5rem',
textAlign: 'left',
borderBottom: '1px solid rgb(33, 53, 77)',
borderLeft: '1px solid rgb(33, 53, 77)',
borderTop: '1px solid rgb(33, 53, 77)',
overflowWrap: 'break-word'
},
value: {
width: '50%',
display: 'flex',
alignItems: 'center',
padding: '1rem 0.5rem',
textAlign: 'left',
border: '1px solid rgb(33, 53, 77)',
overflowWrap: 'break-word',
wordBreak: 'break-all'
},
title1: {
width: '99.6%',
display: 'flex',
alignItems: 'center',
padding: '0.2rem 0.5rem',
textAlign: 'left',
border: '1px solid rgb(33, 53, 77)',
overflowWrap: 'break-word',
height: '2.5rem'
},
cont: {
display: 'flex'
},
tabList: {
width: '100%'
},
tableCont: {
height: '100%',
width: '99.6%',
border: '1px solid rgb(33, 53, 77)'
},
tablebg: {
backgroundColor: 'transparent',
border: '1px solid rgb(33, 53, 77)'
},
emit: {
border: '1px solid rgb(33, 53, 77)'
},
title2: {
width: '83.6%',
display: 'flex',
alignItems: 'center',
padding: '0.2rem 0.5rem',
textAlign: 'left',
border: '1px solid rgb(33, 53, 77)',
overflowWrap: 'break-word'
},
tit: {
width: '50%',
display: 'flex',
alignItems: 'center',
padding: '1rem 0.5rem',
textAlign: 'left',
borderBottom: '1px solid rgb(33, 53, 77)',
borderLeft: '1px solid rgb(33, 53, 77)',
borderTop: '1px solid rgb(33, 53, 77)',
overflowWrap: 'break-word',
backgroundColor: 'rgba(33,53,77,0.2)'
// color: '#bbb'
},
value1: {
width: '99.6%',
display: 'flex',
alignItems: 'center',
padding: '0.2rem 0.5rem',
textAlign: 'left',
border: '1px solid rgb(33, 53, 77)',
overflowWrap: 'break-word'
}
})
export default useDescStyles

View File

@ -0,0 +1,45 @@
import React from 'react';
import Dialog from '@material-ui/core/Dialog';
import DialogContent from '@material-ui/core/DialogContent';
import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
import DpTabs from '../../../../layouts/mui/DpTabs';
import DpTab from '../../../../layouts/mui/DpTab';
import DpCloseButton from '../../../../layouts/mui/DpCloseButton';
import DpAppBar from '../../../../layouts/mui/DpAppBar';
import Page from './index2'
function HDStDlg({ record, onClose }) {
const [value, setValue] = React.useState(0);
return (
<Dialog
open={true}
onClose={onClose}
maxWidth="xl"
style={{ borderRadius: 0 }}
PaperComponent={DpPaperComponent}
BackdropComponent={DpBackgroundDrop}
>
<div className="boxhead"></div>
<DialogContent style={{ padding: 0, width: '80rem', overflowX: 'hidden' }}>
<DpAppBar position="sticky">
<DpTabs value={value} indicatorColor="primary" onChange={(_, v) => setValue(v)}>
<DpTab label="基本信息" />
{/* <DpTab label="基本信息" /> */}
{/* <DpTab label="视频信息" /> */}
</DpTabs>
<DpCloseButton onClick={onClose} />
</DpAppBar>
<Page record={record}/>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default React.memo(HDStDlg);

View File

@ -0,0 +1,34 @@
import { Grid } from '@material-ui/core';
import React from 'react';
import useRequest from '../../../../utils/useRequest';
import { skInfo } from '../../../../models/_/search';
import { adnmCun, adnmZhen } from '../../../../models/_/adcd';
import { Person } from '@material-ui/icons';
import DescriptionItem from '../../components/DescrptionItem';
function SkInfo({record}) {
return (
<div>
<Grid container size="small">
<DescriptionItem label="水库名称">{record?.res_nm}</DescriptionItem>
<DescriptionItem label="水库类型">平原区水库</DescriptionItem>
<DescriptionItem label="工程规模">2</DescriptionItem>
<DescriptionItem label="危险等级"></DescriptionItem>
<DescriptionItem label="危害总处数">0</DescriptionItem>
<DescriptionItem label="总监测点数">25</DescriptionItem>
<DescriptionItem label="有白蚁">0</DescriptionItem>
<DescriptionItem label="无白蚁">1</DescriptionItem>
<DescriptionItem label="其他动物危害处数">0</DescriptionItem>
<DescriptionItem label="致险总处数">0</DescriptionItem>
<DescriptionItem label="渗漏总处数">0</DescriptionItem>
<DescriptionItem label="穿坝总处数">0</DescriptionItem>
<DescriptionItem label="跌窝总处数">0</DescriptionItem>
<DescriptionItem label="填报状态">未填报</DescriptionItem>
</Grid>
</div>
)
}
export default SkInfo;

View File

@ -0,0 +1,98 @@
import React, { useEffect, useState } from 'react'
import { Grid } from '@material-ui/core'
import useDescStyle from './descstyle'
function Jbxx ({ record }) {
const classes = useDescStyle()
return (
<>
<div style={{ fontSize: '0.9rem', marginLeft: '1rem' }}>
<Grid container className={classes.cont}>
<Grid item className={classes.tit}>
灌区名称
</Grid>
<Grid item className={classes.value}>
{record?.chanCode_dictText}
</Grid>
<Grid item className={classes.tit}>
水闸类型
</Grid>
<Grid item className={classes.value}>
{record?.wagaType_dictText??'--'}
</Grid>
<Grid item className={classes.tit}>
行政区划
</Grid>
<Grid item className={classes.value} style={{}}>
{record?.adCode_dictText}
</Grid>
<Grid item className={classes.tit}>
管理单位
</Grid>
<Grid item className={classes.value}>
{record?.engManCode_dictText}
</Grid>
<Grid item className={classes.tit}>
渠道名称
</Grid>
<Grid item className={classes.value}>
{record?.chanCode_dictText}
</Grid>
<Grid item className={classes.tit}>
桩号
</Grid>
<Grid item className={classes.value}>
{record?.bnch}
</Grid>
<Grid item className={classes.tit}>
动力类型
</Grid>
<Grid item className={classes.value}>
{record?.pwrTp_dictText??'--'}
</Grid>
<Grid item className={classes.tit}>
闸门孔数
</Grid>
<Grid item className={classes.value}>
{record?.whthInWat??'--'}
</Grid>
<Grid item className={classes.tit}>
闸门尺寸
</Grid>
<Grid item className={classes.value}>
3*2.8m*m
</Grid>
<Grid item className={classes.tit}>
设计流量
</Grid>
<Grid item className={classes.value}>
{record?.dsfl}/s
</Grid>
<Grid item className={classes.tit}>
进口高程
</Grid>
<Grid item className={classes.value}>
{record?.actIrrA??'--'}m
</Grid>
<Grid item className={classes.tit}>
实达流量
</Grid>
<Grid item className={classes.value}>
{record?.stfl??'--'}
</Grid>
<Grid item className={classes.tit}>
运行状态
</Grid>
<Grid item className={classes.value}>
{record?.runStat_dictText??'--'}
</Grid>
</Grid>
</div>
<div className='boxfoot'></div>
</>
)
}
export default React.memo(Jbxx)

View File

@ -31,7 +31,7 @@ function HDStDlg({ record, onClose }) {
</DpTabs> </DpTabs>
<DpCloseButton onClick={onClose} /> <DpCloseButton onClick={onClose} />
</DpAppBar> </DpAppBar>
<iframe src={`${process.env.PUBLIC_URL}/assets/111.pdf`} width="100%" height="100%"></iframe> <iframe src={`${process.env.PUBLIC_URL}/assets/${record.planName}.pdf`} width="100%" height="100%"></iframe>
</DialogContent> </DialogContent>
<div className="boxfoot"></div> <div className="boxfoot"></div>

View File

@ -27,6 +27,7 @@ import SqDlg from './SqDlg';
import LlqdDlg from './LlqdDlg'; import LlqdDlg from './LlqdDlg';
import LlsbDlg from './LlsbDlg'; import LlsbDlg from './LlsbDlg';
import BxjcDlg from './BxjcBlg' import BxjcDlg from './BxjcBlg'
import ByjcDlg from './ByjcDlg'
import PdfDlg from './PdfDlg' import PdfDlg from './PdfDlg'
function InfoDlg() { function InfoDlg() {
@ -97,7 +98,7 @@ function InfoDlg() {
}else if (layerId === 'SljcLayer') { }else if (layerId === 'SljcLayer') {
return <BxjcDlg record={properties} onClose={handleClose} /> return <BxjcDlg record={properties} onClose={handleClose} />
}else if (layerId === 'ByjcLayer') { }else if (layerId === 'ByjcLayer') {
return <BxjcDlg record={properties} onClose={handleClose} /> return <ByjcDlg record={properties} onClose={handleClose} />
}else if (layerId === 'PdfLayer') { }else if (layerId === 'PdfLayer') {
return <PdfDlg record={properties} onClose={handleClose} /> return <PdfDlg record={properties} onClose={handleClose} />
} }

View File

@ -70,6 +70,19 @@ import Gxzxll from './panels/Gxzxll'
import Gsl from './panels/Gwgsl' import Gsl from './panels/Gwgsl'
import Qsl from './panels/Gwqsl' import Qsl from './panels/Gwqsl'
import Dhtj from './panels/Gwdh' import Dhtj from './panels/Gwdh'
import Gssjgl from './panels/Gssjgl'
import Scscqk from './panels/Scscqk'//echarts
import Gsjg from './panels/Gsjg'
import Scszjc from './panels/Scszjc'
import Bjfx from './panels/Bjfx'
import Scjk from './panels/Scjk'
import Sbsltj from './panels/Sbsltj'
import Sbgztj from './panels/Sbgztj'
import Afjk from './panels/Afjk'
import Dhfx from './panels/Dhfx'
import Yhfx from './panels/Yhfx'
import Bjtj from './panels/Bjtj'
export default function PanelIndex({ name, style, ...params }) { export default function PanelIndex({ name, style, ...params }) {
if (name === '天气') { if (name === '天气') {
return ( return (
@ -213,8 +226,33 @@ export default function PanelIndex({ name, style, ...params }) {
return <Qsl style={style}/> return <Qsl style={style}/>
}else if (name == '电耗统计') { }else if (name == '电耗统计') {
return <Dhtj style={style}/> return <Dhtj style={style}/>
} else if (name === '供水数据概览') {
return <Gssjgl style={style} />
} else if (name === '水厂生产情况') {
return <Scscqk style={style} />
} else if (name === '供水监管') {
return <Gsjg style={style} />
} else if (name === '水厂水质监测') {
return <Scszjc style={style} />
} else if (name === '报警分析') {
return <Bjfx style={style} />
} else if (name === '水厂监控') {
return <Scjk style={style} />
} else if (name === '设备数量统计') {
return <Sbsltj style={style} />
} else if (name === '设备故障统计') {
return <Sbgztj style={style} />
} else if (name === '安防监控') {
return <Afjk style={style} />
} else if (name === '电耗分析') {
return <Dhfx style={style} />
} else if (name === '药耗分析') {
return <Yhfx style={style} />
} else if (name === '报警统计') {
return <Bjtj style={style} />
} }
return ( return (
<PanelBox style={style} title={name} color="red"> <PanelBox style={style} title={name} color="red">
<p>not impl</p> <p>not impl</p>

View File

@ -5,6 +5,7 @@ import { useDispatch, useSelector } from 'react-redux';
import { makeStyles, Tooltip, Typography } from '@material-ui/core'; import { makeStyles, Tooltip, Typography } from '@material-ui/core';
const VIEWS = [ const VIEWS = [
{ {
id: 100, title: '防汛', img: '/assets/menu/防洪形势.png', children: [ id: 100, title: '防汛', img: '/assets/menu/防洪形势.png', children: [
{ id: 0, title: '防洪形势', img: '/assets/menu/防洪形势.png' }, { id: 0, title: '防洪形势', img: '/assets/menu/防洪形势.png' },
@ -16,32 +17,22 @@ const VIEWS = [
{ id: 5, title: '天气预报', img: '/assets/menu/降雨中心.png' }, { id: 5, title: '天气预报', img: '/assets/menu/降雨中心.png' },
] ]
}, },
{ { id: 200, title: '水库', img: '/assets/menu/水库专题.png',children:[
id: 200, title: '水库', img: '/assets/menu/实时数据.png', children: [ { id: 201, title: '雨情监测', img: '/assets/menu/雨情监测.png' },
{ id: 201, title: '雨情监测', img: '/assets/menu/降雨中心.png' }, { id: 202, title: '水情监测', img: '/assets/menu/水情监测.png' },
{ id: 202, title: '水情监测', img: '/assets/menu/水利设施.png' }, { id: 203, title: '安全监测', img: '/assets/menu/安全监测.png' },
{ id: 203, title: '安全监测', img: '/assets/menu/降雨中心.png' }, { id: 204, title: '视频监视', img: '/assets/menu/视频监视.png' },
{ id: 204, title: '视频监控', img: '/assets/menu/辅助决策.png' }, { id: 205, title: '防汛调度', img: '/assets/menu/防汛调度.png' },
{ id: 205, title: '防汛调度', img: '/assets/menu/辅助决策.png' }, { id: 206, title: '水库管理', img: '/assets/menu/水库管理.png' },
{ id: 206, title: '水库管理', img: '/assets/menu/病险水库.png' }, ] },
]
},
{ {
id: 300, title: '水厂', img: '/assets/menu/水利设施.png', children: [ id: 300, title: '水厂', img: '/assets/menu/水利设施.png', children: [
{ id: 301, title: '供水态势', img: '/assets/menu/降雨中心.png' }, { id: 301, title: '供水态势', img: '/assets/menu/降雨中心.png' },
{ id: 302, title: '水质安全', img: '/assets/menu/水情监测.png' },
{ id: 303, title: '水厂运行', img: '/assets/menu/水库管理.png' },
{ id: 306, title: '管网健康诊断', img: '/assets/menu/水利设施.png' }, { id: 306, title: '管网健康诊断', img: '/assets/menu/水利设施.png' },
{ id: 307, title: '应急指挥调度', img: '/assets/menu/病险水库.png' }, { id: 307, title: '应急指挥调度', img: '/assets/menu/病险水库.png' },
{ id: 305, title: '决策支持与报表', img: '/assets/menu/辅助决策.png' }, { id: 305, title: '决策支持与报表', img: '/assets/menu/辅助决策.png' },
// 供水态势
// 水质安全
// 水厂运行
// 管网健康诊断
// 应急指挥调度
// 决策支持与报表
] ]
}, },
{ {
@ -63,7 +54,6 @@ const VIEWS = [
// 工程管理 // 工程管理
] ]
}, },
]; ];
@ -140,7 +130,7 @@ export default function ActionDock({ }) {
} }
}}> }}>
<div className={clsx('button', { active: view === o.id })}> <div className={clsx('button', { active: view === o.id })}>
<img src={o.img} /> <img width={32} height={32} src={o.img} />
</div> </div>
</div> </div>
</BootstrapTooltip> </BootstrapTooltip>

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="安防监控"
color="green"
>
<img src='/assets/安防监控.jpg' style={{width:'27.5rem', height:'11rem',marginLeft:'-8px'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,171 @@
import React, { useMemo } from 'react';
import echarts from 'echarts/lib/echarts';
import ReactEcharts from 'echarts-for-react';
const pallete = [
['#177ab3', '#51c3e7'],
['#9976dc', '#c792ee'],
['#94a1eb', '#a7caf8'],
['#7ae5c3', '#c9f4ea'],
['#c7dca5', '#f5fcd5'],
['#7988d9', '#9dc6f1'],
['#d9ed8f', '#d3f89b'],
];
const palleteLen = pallete.length;
const AreaDrpChart = () => {
const x = ['清泉水厂','南湖水厂','东郊水厂','西山水厂']
const y1 = [612, 601, 630, 640]
const y2 = [624, 645, 665, 656]
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
label: {
show: false
}
},
valueFormatter: (value) => value + ' 万m³'
},
grid: {
top: 42,
left: 50,
right: 0,
bottom: 27,
},
legend: {
data: ['设计产能', '实际产水'],
top: '8',
left: 'center',
itemWidth: 11,//11,
itemHeight: 11,//11,
textStyle: {
color: '#B9BFC9',
fontSize: 12,//12
}
},
xAxis: [
{
type: 'category',
data: x,
splitLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: 'rgba(255,255,255,0.2)',
width: 0
}
},
axisLabel: {
show: true,
textStyle: {
color: '#B9BFC9' //X轴文字颜色
},
// rotate: 20, // 角度值Number
fontSize: 10,//10
},
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: 'rgba(255,255,255,0.2)',
width: 0
}
},
axisTick: {
show: true,
}
}
],
yAxis: [
{
type: 'value',
position: 'left',
name: '产水量m³',
nameTextStyle: {
color: '#B9BFC9',
fontSize: 10,//10,
padding: [0, 0, 0, -30],//[0, 0, 0, -30]//控制y轴标题位置
},
nameGap: 17,
splitLine: {
show: true,
lineStyle: {
width: 1,
color: 'rgba(255,255,255,0.2)'
}
},
axisLabel: {
show: true,
textStyle: {
color: '#B9BFC9',
fontSize: 11,//11
}
},
axisLine: {
show: false
},
axisTick: {
show: false,
},
min: 200,
max: 800,
}
],
series: [
{
name: '设计产能',
type: 'bar',
barWidth: 10,
data: y1,
itemStyle: {
normal: {
color: '#56b38b'
},
},
// label: {
// show: true,
// position: 'top',
// color: '#bbb',
// fontSize: 12,
// textShadowBlur: 4,
// textShadowColor: '#6ab',
// },
},
{
name: '实际产水',
type: 'bar',
barWidth: 10,
data: y2,
itemStyle: {
normal: {
color: '#3860d0'
},
},
// label: {
// show: true,
// position: 'top',
// color: '#bbb',
// fontSize: 12,
// textShadowBlur: 4,
// textShadowColor: '#6ab',
// },
}
]
};
return (
<ReactEcharts
option={option}
style={{ height: '99%', width: '100%' }}
/>
)
}
export default React.memo(AreaDrpChart);

View File

@ -0,0 +1,19 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
import AreaDrpChart from './chart';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="报警分析"
color="green"
>
<img src='/assets/报警分析.jpg' style={{width:'26rem', height:'12rem',marginLeft:'0.3rem',marginTop:'1rem'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,191 @@
import React, { useMemo } from 'react';
import echarts from 'echarts/lib/echarts';
import ReactEcharts from 'echarts-for-react';
const pallete = [
['#177ab3', '#51c3e7'],
['#9976dc', '#c792ee'],
['#94a1eb', '#a7caf8'],
['#7ae5c3', '#c9f4ea'],
['#c7dca5', '#f5fcd5'],
['#7988d9', '#9dc6f1'],
['#d9ed8f', '#d3f89b'],
];
const palleteLen = pallete.length;
const AreaDrpChart = () => {
const x = ['宋埠镇','歧亭镇','白果镇','夫子河镇','阎家河镇']
const y1 = [212, 0, 0, 0,0]
const y2 = [212, 0, 0, 0,0]
const y3 = [0, 0, 0, 0,0]
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
label: {
show: false
}
},
valueFormatter: (value) => value + ' 万m³'
},
grid: {
top: 42,
left: 50,
right: 0,
bottom: 27,
},
legend: {
data: ['报警总数', '已解除','未解除'],
top: '8',
left: 'center',
itemWidth: 11,//11,
itemHeight: 11,//11,
textStyle: {
color: '#B9BFC9',
fontSize: 12,//12
}
},
xAxis: [
{
type: 'category',
data: x,
splitLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: 'rgba(255,255,255,0.2)',
width: 0
}
},
axisLabel: {
show: true,
textStyle: {
color: '#B9BFC9' //X轴文字颜色
},
// rotate: 20, // 角度值Number
fontSize: 10,//10
},
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: 'rgba(255,255,255,0.2)',
width: 0
}
},
axisTick: {
show: true,
}
}
],
yAxis: [
{
type: 'value',
position: 'left',
name: '产水量m³',
nameTextStyle: {
color: '#B9BFC9',
fontSize: 10,//10,
padding: [0, 0, 0, -30],//[0, 0, 0, -30]//控制y轴标题位置
},
nameGap: 17,
splitLine: {
show: true,
lineStyle: {
width: 1,
color: 'rgba(255,255,255,0.2)'
}
},
axisLabel: {
show: true,
textStyle: {
color: '#B9BFC9',
fontSize: 11,//11
}
},
axisLine: {
show: false
},
axisTick: {
show: false,
},
min: 0,
max: 500,
}
],
series: [
{
name: '报警总数',
type: 'bar',
barWidth: 10,
data: y1,
itemStyle: {
normal: {
color: '#3860d0'
},
},
// label: {
// show: true,
// position: 'top',
// color: '#bbb',
// fontSize: 12,
// textShadowBlur: 4,
// textShadowColor: '#6ab',
// },
},
{
name: '已解除',
type: 'bar',
barWidth: 10,
data: y2,
itemStyle: {
normal: {
color: '#56b38b'
},
},
// label: {
// show: true,
// position: 'top',
// color: '#bbb',
// fontSize: 12,
// textShadowBlur: 4,
// textShadowColor: '#6ab',
// },
},{
name: '未解除',
type: 'bar',
barWidth: 10,
data: y3,
itemStyle: {
normal: {
color: '#f5c75f'
},
},
// label: {
// show: true,
// position: 'top',
// color: '#bbb',
// fontSize: 12,
// textShadowBlur: 4,
// textShadowColor: '#6ab',
// },
}
]
};
return (
<ReactEcharts
option={option}
style={{ height: '10rem', width: '100%' }}
/>
)
}
export default React.memo(AreaDrpChart);

View File

@ -0,0 +1,349 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
import AreaDrpChart from './chart';
import Table from '@material-ui/core/Table';
import TableContainer from '@material-ui/core/TableContainer';
import TableBody from '@material-ui/core/TableBody';
import TableHead from '@material-ui/core/TableHead';
import TableRow from '@material-ui/core/TableRow';
import DpTableCell from '../../../../layouts/mui/DpTableCell';
import DpTableRow from '../../../../layouts/mui/DpTableRow';
const data = [
{
"id": 16514,
"defineId": 99,
"tenantId": 14,
"tenantName": null,
"alarmName": "出水浊度报警",
"disarmMethod": "AutoOrManual",
"alarmLevel": "1",
"alarmStatus": "Unremove",
"alarmTriggerTime": "2025-03-02T12:01:49Z",
"alarmReleaseTime": null,
"releaseUserid": null,
"duration": "2月24天",
"subscribeAlarm": 0,
"siteId": 8,
"siteName": "朝阳寺镇新水厂",
"siteRootName": "朝阳寺镇",
"remarks": null,
"threshold": null,
"releaseUserName": null,
"handleStatus": 1,
"faultId": null,
"equipment": "",
"equipmentName": null,
"alarmValue": "1.98",
"unit": "NTU",
"mpointName": "新水厂-出厂水浊度",
"mpointId": "71",
"processingPlan": "",
"contactPersonId": null,
"expression": null,
"codeMap": null,
"alarmView": null,
"schemeHistoryId": null,
"err": null,
"videoId": null,
"video": null,
"orderId": null,
"orderType": null,
"alarmType": "water",
"alarmRecordOrderVo": null
},
{
"id": 27258,
"defineId": 111,
"tenantId": 14,
"tenantName": null,
"alarmName": "凉桥水厂-破水平进水停用报警",
"disarmMethod": "AutoOrManual",
"alarmLevel": "1",
"alarmStatus": "Remove",
"alarmTriggerTime": "2025-05-18T21:37:35Z",
"alarmReleaseTime": "2025-05-18T21:46:07Z",
"releaseUserid": "system",
"duration": "8分32秒",
"subscribeAlarm": 0,
"siteId": 10,
"siteName": "凉桥水厂",
"siteRootName": "朝阳寺镇",
"remarks": null,
"threshold": null,
"releaseUserName": "system",
"handleStatus": 1,
"faultId": null,
"equipment": "",
"equipmentName": null,
"alarmValue": "0.00",
"unit": "m³/h",
"mpointName": "进水破水坪1#瞬时流量",
"mpointId": "304",
"processingPlan": "",
"contactPersonId": null,
"expression": null,
"codeMap": null,
"alarmView": null,
"schemeHistoryId": null,
"err": null,
"videoId": null,
"video": null,
"orderId": null,
"orderType": null,
"alarmType": "water",
"alarmRecordOrderVo": null
},
{
"id": 27257,
"defineId": 115,
"tenantId": 14,
"tenantName": null,
"alarmName": "老厂水质2小时无数据",
"disarmMethod": "AutoOrManual",
"alarmLevel": "1",
"alarmStatus": "Remove",
"alarmTriggerTime": "2025-05-18T19:25:00Z",
"alarmReleaseTime": "2025-05-19T05:26:00Z",
"releaseUserid": "system",
"duration": "10小时1分",
"subscribeAlarm": 0,
"siteId": 128,
"siteName": "水质指标监测",
"siteRootName": "朝阳寺镇",
"remarks": null,
"threshold": null,
"releaseUserName": "system",
"handleStatus": 1,
"faultId": null,
"equipment": "",
"equipmentName": null,
"alarmValue": "",
"unit": "",
"mpointName": "老水厂-出厂水酸碱度",
"mpointId": "56",
"processingPlan": "",
"contactPersonId": null,
"expression": null,
"codeMap": null,
"alarmView": null,
"schemeHistoryId": null,
"err": null,
"videoId": null,
"video": null,
"orderId": null,
"orderType": null,
"alarmType": "water",
"alarmRecordOrderVo": null
},
{
"id": 27256,
"defineId": 116,
"tenantId": 14,
"tenantName": null,
"alarmName": "斑竹坪水质1小时无数据",
"disarmMethod": "AutoOrManual",
"alarmLevel": "1",
"alarmStatus": "Remove",
"alarmTriggerTime": "2025-05-18T17:37:00Z",
"alarmReleaseTime": "2025-05-19T05:26:00Z",
"releaseUserid": "system",
"duration": "11小时49分",
"subscribeAlarm": 0,
"siteId": 126,
"siteName": "水质指标监测",
"siteRootName": "朝阳寺镇",
"remarks": null,
"threshold": null,
"releaseUserName": "system",
"handleStatus": 1,
"faultId": null,
"equipment": "",
"equipmentName": null,
"alarmValue": "",
"unit": "",
"mpointName": "斑竹坪-出厂水温度",
"mpointId": "28",
"processingPlan": "",
"contactPersonId": null,
"expression": null,
"codeMap": null,
"alarmView": null,
"schemeHistoryId": null,
"err": null,
"videoId": null,
"video": null,
"orderId": null,
"orderType": null,
"alarmType": "water",
"alarmRecordOrderVo": null
},
{
"id": 27254,
"defineId": 92,
"tenantId": 14,
"tenantName": null,
"alarmName": "班竹坪水厂-出水余氯超报警",
"disarmMethod": "AutoOrManual",
"alarmLevel": "1",
"alarmStatus": "Remove",
"alarmTriggerTime": "2025-05-18T17:24:00Z",
"alarmReleaseTime": "2025-05-18T17:27:00Z",
"releaseUserid": "system",
"duration": "3分0秒",
"subscribeAlarm": 0,
"siteId": 7,
"siteName": "斑竹坪水厂",
"siteRootName": "朝阳寺镇",
"remarks": null,
"threshold": null,
"releaseUserName": "system",
"handleStatus": 1,
"faultId": null,
"equipment": ",",
"equipmentName": null,
"alarmValue": "",
"unit": "",
"mpointName": "斑竹坪-出厂水余氯,斑竹坪-出厂水余氯",
"mpointId": "26,26",
"processingPlan": "",
"contactPersonId": null,
"expression": null,
"codeMap": null,
"alarmView": null,
"schemeHistoryId": null,
"err": null,
"videoId": null,
"video": null,
"orderId": null,
"orderType": null,
"alarmType": "water",
"alarmRecordOrderVo": null
},
{
"id": 27255,
"defineId": 108,
"tenantId": 14,
"tenantName": null,
"alarmName": "出水余氯超报警",
"disarmMethod": "AutoOrManual",
"alarmLevel": "1",
"alarmStatus": "Remove",
"alarmTriggerTime": "2025-05-18T17:24:00Z",
"alarmReleaseTime": "2025-05-18T17:25:00Z",
"releaseUserid": "system",
"duration": "1分0秒",
"subscribeAlarm": 0,
"siteId": 9,
"siteName": "朝阳寺镇老水厂",
"siteRootName": "朝阳寺镇",
"remarks": null,
"threshold": null,
"releaseUserName": "system",
"handleStatus": 1,
"faultId": null,
"equipment": ",",
"equipmentName": null,
"alarmValue": "",
"unit": "",
"mpointName": "老水厂-出厂水余氯,老水厂-出厂水余氯",
"mpointId": "57,57",
"processingPlan": "",
"contactPersonId": null,
"expression": null,
"codeMap": null,
"alarmView": null,
"schemeHistoryId": null,
"err": null,
"videoId": null,
"video": null,
"orderId": null,
"orderType": null,
"alarmType": "water",
"alarmRecordOrderVo": null
},
{
"id": 27253,
"defineId": 115,
"tenantId": 14,
"tenantName": null,
"alarmName": "老厂水质2小时无数据",
"disarmMethod": "AutoOrManual",
"alarmLevel": "1",
"alarmStatus": "Remove",
"alarmTriggerTime": "2025-05-18T07:24:00Z",
"alarmReleaseTime": "2025-05-18T17:24:00Z",
"releaseUserid": "system",
"duration": "10小时0分",
"subscribeAlarm": 0,
"siteId": 128,
"siteName": "水质指标监测",
"siteRootName": "朝阳寺镇",
"remarks": null,
"threshold": null,
"releaseUserName": "system",
"handleStatus": 1,
"faultId": null,
"equipment": "",
"equipmentName": null,
"alarmValue": "",
"unit": "",
"mpointName": "老水厂-出厂水酸碱度",
"mpointId": "56",
"processingPlan": "",
"contactPersonId": null,
"expression": null,
"codeMap": null,
"alarmView": null,
"schemeHistoryId": null,
"err": null,
"videoId": null,
"video": null,
"orderId": null,
"orderType": null,
"alarmType": "water",
"alarmRecordOrderVo": null
}
]
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="报警统计"
color="green"
>
<AreaDrpChart data={[]} />
<TableContainer style={{ height: '22rem' }}>
<Table size="small" stickyHeader>
<TableHead>
<TableRow>
<DpTableCell style={{ minWidth: '5rem' }} align="left">区域位置</DpTableCell>
<DpTableCell align="center">报警名称</DpTableCell>
<DpTableCell style={{ minWidth: '5rem' }} align="center">报警等级</DpTableCell>
<DpTableCell style={{ minWidth: '7rem' }} align="center">报警时间</DpTableCell>
</TableRow>
</TableHead>
<TableBody>
{data.map((row) => (
<DpTableRow >
<DpTableCell component="th" scope="row">
<div className="table-ellipsis cursor-pointer">宋埠镇</div>
</DpTableCell>
<DpTableCell align="center">
<div className="table-ellipsis cursor-pointer">{row.alarmName}</div></DpTableCell>
<DpTableCell align="center"><span color='#f5423f'>一级</span></DpTableCell>
<DpTableCell align="center">{row.alarmTriggerTime.slice(0,10)}</DpTableCell>
</DpTableRow>
))}
</TableBody>
</Table>
</TableContainer>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="电耗分析"
color="green"
>
<img src='/assets/电耗分析.jpg' style={{width:'26rem', height:'16rem',marginLeft:'8px'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -1478,23 +1478,21 @@ function DrpReal({ style }) {
<Table size="small" stickyHeader> <Table size="small" stickyHeader>
<TableHead> <TableHead>
<TableRow> <TableRow>
<DpTableCell style={{ maxWidth: '20%' }} align="center">序号</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">仓库名称</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">水库名称</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">仓库地址</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">行政区</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">测点</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">垂直位移</DpTableCell>
</TableRow> </TableRow>
</TableHead> </TableHead>
<TableBody> <TableBody>
{data1.map((row,index) => ( {/* {data1.map((row,index) => (
<DpTableRow key={row.stcd}> <DpTableRow key={row.stcd}>
<DpTableCell align="center">{index+1}</DpTableCell> <DpTableCell align="center">{index+1}</DpTableCell>
<DpTableCell align="center">{row.res_nm}</DpTableCell> <DpTableCell align="center">{row.res_nm}</DpTableCell>
<DpTableCell align="center">{row.town_nm}</DpTableCell>
<DpTableCell align="center">{row.cd_nm}</DpTableCell>
<DpTableCell align="center">{row.du_value}</DpTableCell>
</DpTableRow> </DpTableRow>
))} ))} */}
<DpTableRow>
<DpTableCell align="center">麻城市应急物资储备中心</DpTableCell>
<DpTableCell align="center">麻城市京广大道与金交汇处</DpTableCell>
</DpTableRow>
</TableBody> </TableBody>
</Table>:null </Table>:null
} }
@ -1503,15 +1501,14 @@ function DrpReal({ style }) {
<Table size="small" stickyHeader> <Table size="small" stickyHeader>
<TableHead> <TableHead>
<TableRow> <TableRow>
<DpTableCell style={{ maxWidth: '20%' }} align="center">序号</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">队伍名称</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">水库名称</DpTableCell> <DpTableCell style={{ minWidth: '5rem' }} align="center">人员总数</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">行政区</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">地址</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">测点</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">管理单位</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">渗压水位</DpTableCell>
</TableRow> </TableRow>
</TableHead> </TableHead>
<TableBody> <TableBody>
{data2.map((row,index) => ( {/* {data2.map((row,index) => (
<DpTableRow key={row.stcd}> <DpTableRow key={row.stcd}>
<DpTableCell align="center">{index+1}</DpTableCell> <DpTableCell align="center">{index+1}</DpTableCell>
<DpTableCell align="center">{row.res_nm}</DpTableCell> <DpTableCell align="center">{row.res_nm}</DpTableCell>
@ -1519,7 +1516,13 @@ function DrpReal({ style }) {
<DpTableCell align="center">{row.cd_nm}</DpTableCell> <DpTableCell align="center">{row.cd_nm}</DpTableCell>
<DpTableCell align="center">{row.value}</DpTableCell> <DpTableCell align="center">{row.value}</DpTableCell>
</DpTableRow> </DpTableRow>
))} ))} */}
<DpTableRow>
<DpTableCell align="center">乡镇应急救援中队</DpTableCell>
<DpTableCell align="center">20</DpTableCell>
<DpTableCell align="center">麻城市京广大道与金交汇处</DpTableCell>
<DpTableCell align="center">麻城市水利局</DpTableCell>
</DpTableRow>
</TableBody> </TableBody>
</Table>:null </Table>:null
} }
@ -1553,15 +1556,14 @@ function DrpReal({ style }) {
<Table size="small" stickyHeader> <Table size="small" stickyHeader>
<TableHead> <TableHead>
<TableRow> <TableRow>
<DpTableCell style={{ maxWidth: '20%' }} align="center">序号</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">安置点名称</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">水库名称</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">容纳人数</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">行政区</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">地址</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">测点</DpTableCell> <DpTableCell style={{ maxWidth: '20%' }} align="center">管理单位</DpTableCell>
<DpTableCell style={{ maxWidth: '20%' }} align="center">状态</DpTableCell>
</TableRow> </TableRow>
</TableHead> </TableHead>
<TableBody> <TableBody>
{data4.map((row,index) => ( {/* {data4.map((row,index) => (
<DpTableRow key={row.stcd}> <DpTableRow key={row.stcd}>
<DpTableCell align="center">{index+1}</DpTableCell> <DpTableCell align="center">{index+1}</DpTableCell>
<DpTableCell align="center">{row.res_nm}</DpTableCell> <DpTableCell align="center">{row.res_nm}</DpTableCell>
@ -1569,7 +1571,13 @@ function DrpReal({ style }) {
<DpTableCell align="center">{row.res_nm}</DpTableCell> <DpTableCell align="center">{row.res_nm}</DpTableCell>
<DpTableCell align="center">{row?.children?.[0]?.termite_status==='y'?'有白蚁':'无白蚁'}</DpTableCell> <DpTableCell align="center">{row?.children?.[0]?.termite_status==='y'?'有白蚁':'无白蚁'}</DpTableCell>
</DpTableRow> </DpTableRow>
))} ))} */}
<DpTableRow>
<DpTableCell align="center">阎家河镇</DpTableCell>
<DpTableCell align="center">1800</DpTableCell>
<DpTableCell align="center">麻城市京广大道与金交汇处</DpTableCell>
<DpTableCell align="center">麻城市水利局</DpTableCell>
</DpTableRow>
</TableBody> </TableBody>
</Table>:null </Table>:null
} }

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="供水监管"
color="green"
>
<img src='/assets/供水监管.jpg' style={{width:'419.81px', height:'195px',marginLeft:'1px',marginTop:'10px'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="供水数据概览"
color="green"
>
<img src='/assets/供水数据概览.jpg' style={{width:'419.81px', height:'200px',marginLeft:'1px'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="设备故障统计"
color="green"
>
<img src='/assets/设备故障统计.jpg' style={{width:'26rem', height:'14rem',marginLeft:'0.3rem',marginTop:'1rem'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="设备数量统计"
color="green"
>
<img src='/assets/设备数量统计.jpg' style={{width:'26rem', height:'14rem',marginLeft:'0.3rem',marginTop:'0.5rem'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="水厂监控"
color="green"
>
<img src='/assets/水厂监控.jpg' style={{width:'26rem', height:'12rem',marginLeft:'0.3rem',marginTop:'1rem'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,171 @@
import React, { useMemo } from 'react';
import echarts from 'echarts/lib/echarts';
import ReactEcharts from 'echarts-for-react';
const pallete = [
['#177ab3', '#51c3e7'],
['#9976dc', '#c792ee'],
['#94a1eb', '#a7caf8'],
['#7ae5c3', '#c9f4ea'],
['#c7dca5', '#f5fcd5'],
['#7988d9', '#9dc6f1'],
['#d9ed8f', '#d3f89b'],
];
const palleteLen = pallete.length;
const AreaDrpChart = () => {
const x = ['清泉水厂','南湖水厂','东郊水厂','西山水厂']
const y1 = [612, 601, 630, 640]
const y2 = [624, 645, 665, 656]
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
label: {
show: false
}
},
valueFormatter: (value) => value + ' 万m³'
},
grid: {
top: 42,
left: 50,
right: 0,
bottom: 27,
},
legend: {
data: ['设计产能', '实际产水'],
top: '8',
left: 'center',
itemWidth: 11,//11,
itemHeight: 11,//11,
textStyle: {
color: '#B9BFC9',
fontSize: 12,//12
}
},
xAxis: [
{
type: 'category',
data: x,
splitLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: 'rgba(255,255,255,0.2)',
width: 0
}
},
axisLabel: {
show: true,
textStyle: {
color: '#B9BFC9' //X轴文字颜色
},
// rotate: 20, // 角度值Number
fontSize: 10,//10
},
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: 'rgba(255,255,255,0.2)',
width: 0
}
},
axisTick: {
show: true,
}
}
],
yAxis: [
{
type: 'value',
position: 'left',
name: '产水量m³',
nameTextStyle: {
color: '#B9BFC9',
fontSize: 10,//10,
padding: [0, 0, 0, -30],//[0, 0, 0, -30]//控制y轴标题位置
},
nameGap: 17,
splitLine: {
show: true,
lineStyle: {
width: 1,
color: 'rgba(255,255,255,0.2)'
}
},
axisLabel: {
show: true,
textStyle: {
color: '#B9BFC9',
fontSize: 11,//11
}
},
axisLine: {
show: false
},
axisTick: {
show: false,
},
min: 200,
max: 800,
}
],
series: [
{
name: '设计产能',
type: 'bar',
barWidth: 10,
data: y1,
itemStyle: {
normal: {
color: '#56b38b'
},
},
// label: {
// show: true,
// position: 'top',
// color: '#bbb',
// fontSize: 12,
// textShadowBlur: 4,
// textShadowColor: '#6ab',
// },
},
{
name: '实际产水',
type: 'bar',
barWidth: 10,
data: y2,
itemStyle: {
normal: {
color: '#3860d0'
},
},
// label: {
// show: true,
// position: 'top',
// color: '#bbb',
// fontSize: 12,
// textShadowBlur: 4,
// textShadowColor: '#6ab',
// },
}
]
};
return (
<ReactEcharts
option={option}
style={{ height: '99%', width: '100%' }}
/>
)
}
export default React.memo(AreaDrpChart);

View File

@ -0,0 +1,19 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
import AreaDrpChart from './chart';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="水厂生产情况"
color="green"
>
<AreaDrpChart data={[]} />
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="水质监测"
color="green"
>
<img src='/assets/水厂水质监测.jpg' style={{width:'26rem', height:'12rem',marginLeft:'0.3rem',marginTop:'1rem'}}/>
</PanelBox>
)
}
export default DrpReal;

View File

@ -1730,211 +1730,6 @@ const data4 = [
"padNm": "421181001001000", "padNm": "421181001001000",
"url": "dplan/2025/421181001001000/园林社区居民委员会一页纸预案.pdf" "url": "dplan/2025/421181001001000/园林社区居民委员会一页纸预案.pdf"
}, },
{
"id": 125977,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:23",
"updateId": "187",
"updateName": "麻城市",
"updateTime": "2025-05-15 15:35:45",
"del": "0",
"planId": "421181001002000",
"planName": "城西社区居民委员会山洪灾害防御预案",
"levels": "0",
"year": "2025",
"adnm": "城西社区居民委员会",
"adcd": "421181001002000",
"attachUpdateTime": "2025-05-15 15:35:45",
"status": 0,
"uploadAttachStatus": "1",
"padNm": "421181001002000",
"url": "dplan/2025/421181001002000/城西社区居民委员会山洪灾害防御预案.pdf"
},
{
"id": 125978,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateTime": "2025-05-14 09:53:14",
"del": "0",
"planId": "421181001002000",
"planName": "城西社区居民委员会一页纸预案",
"levels": "6",
"year": "2025",
"adnm": "城西社区居民委员会",
"adcd": "421181001002000",
"status": 0,
"uploadAttachStatus": "0",
"padNm": "421181001002000",
"url": "dplan/2025/421181001002000/城西社区居民委员会一页纸预案.pdf"
},
{
"id": 125979,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateId": "187",
"updateName": "麻城市",
"updateTime": "2025-05-15 15:35:59",
"del": "0",
"planId": "421181001007000",
"planName": "黄狮岗社区居民委员会山洪灾害防御预案",
"levels": "0",
"year": "2025",
"adnm": "黄狮岗社区居民委员会",
"adcd": "421181001007000",
"attachUpdateTime": "2025-05-15 15:35:59",
"status": 0,
"uploadAttachStatus": "1",
"padNm": "421181001007000",
"url": "dplan/2025/421181001007000/黄狮岗社区居民委员会山洪灾害防御预案.pdf"
},
{
"id": 125980,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateTime": "2025-05-14 09:53:14",
"del": "0",
"planId": "421181001007000",
"planName": "黄狮岗社区居民委员会一页纸预案",
"levels": "6",
"year": "2025",
"adnm": "黄狮岗社区居民委员会",
"adcd": "421181001007000",
"status": 0,
"uploadAttachStatus": "0",
"padNm": "421181001007000",
"url": "dplan/2025/421181001007000/黄狮岗社区居民委员会一页纸预案.pdf"
},
{
"id": 125981,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateId": "187",
"updateName": "麻城市",
"updateTime": "2025-05-15 15:36:08",
"del": "0",
"planId": "421181001008000",
"planName": "宋家河社区居民委员会山洪灾害防御预案",
"levels": "0",
"year": "2025",
"adnm": "宋家河社区居民委员会",
"adcd": "421181001008000",
"attachUpdateTime": "2025-05-15 15:36:08",
"status": 0,
"uploadAttachStatus": "1",
"padNm": "421181001008000",
"url": "dplan/2025/421181001008000/宋家河社区居民委员会山洪灾害防御预案.pdf"
},
{
"id": 125982,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateTime": "2025-05-14 09:53:14",
"del": "0",
"planId": "421181001008000",
"planName": "宋家河社区居民委员会一页纸预案",
"levels": "6",
"year": "2025",
"adnm": "宋家河社区居民委员会",
"adcd": "421181001008000",
"status": 0,
"uploadAttachStatus": "0",
"padNm": "421181001008000",
"url": "dplan/2025/421181001008000/宋家河社区居民委员会一页纸预案.pdf"
},
{
"id": 125983,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateId": "187",
"updateName": "麻城市",
"updateTime": "2025-05-15 15:36:17",
"del": "0",
"planId": "421181001010000",
"planName": "松鹤社区居民委员会山洪灾害防御预案",
"levels": "0",
"year": "2025",
"adnm": "松鹤社区居民委员会",
"adcd": "421181001010000",
"attachUpdateTime": "2025-05-15 15:36:17",
"status": 0,
"uploadAttachStatus": "1",
"padNm": "421181001010000",
"url": "dplan/2025/421181001010000/松鹤社区居民委员会山洪灾害防御预案.pdf"
},
{
"id": 125984,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateTime": "2025-05-14 09:53:14",
"del": "0",
"planId": "421181001010000",
"planName": "松鹤社区居民委员会一页纸预案",
"levels": "6",
"year": "2025",
"adnm": "松鹤社区居民委员会",
"adcd": "421181001010000",
"status": 0,
"uploadAttachStatus": "0",
"padNm": "421181001010000",
"url": "dplan/2025/421181001010000/松鹤社区居民委员会一页纸预案.pdf"
},
{
"id": 125985,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateId": "187",
"updateName": "麻城市",
"updateTime": "2025-05-15 15:36:35",
"del": "0",
"planId": "421181001011000",
"planName": "龙池桥社区居民委员会山洪灾害防御预案",
"levels": "0",
"year": "2025",
"adnm": "龙池桥社区居民委员会",
"adcd": "421181001011000",
"attachUpdateTime": "2025-05-15 15:36:34",
"status": 0,
"uploadAttachStatus": "1",
"padNm": "421181001011000",
"url": "dplan/2025/421181001011000/龙池桥社区居民委员会山洪灾害防御预案.pdf"
},
{
"id": 125986,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateTime": "2025-05-14 09:53:14",
"del": "0",
"planId": "421181001011000",
"planName": "龙池桥社区居民委员会一页纸预案",
"levels": "6",
"year": "2025",
"adnm": "龙池桥社区居民委员会",
"adcd": "421181001011000",
"status": 0,
"uploadAttachStatus": "0",
"padNm": "421181001011000",
"url": "dplan/2025/421181001011000/龙池桥社区居民委员会一页纸预案.pdf"
},
{
"id": 125987,
"reviewStatus": "2",
"createTime": "2025-05-03 21:25:24",
"updateId": "187",
"updateName": "麻城市",
"updateTime": "2025-05-15 15:36:47",
"del": "0",
"planId": "421181001204000",
"planName": "七里桥村村民委员会山洪灾害防御预案",
"levels": "0",
"year": "2025",
"adnm": "七里桥村村民委员会",
"adcd": "421181001204000",
"attachUpdateTime": "2025-05-15 15:36:47",
"status": 0,
"uploadAttachStatus": "1",
"padNm": "421181001204000",
"url": "dplan/2025/421181001204000/七里桥村村民委员会山洪灾害防御预案.pdf"
}
] ]
function DrpReal({ style }) { function DrpReal({ style }) {

View File

@ -49,11 +49,17 @@ function WF() {
}, [contourSetting]); }, [contourSetting]);
const genWeatherContour24H = () => { const genWeatherContour24H = () => {
dispatch.runtime.setYyfa({yy:''})
dispatch.shyjview.showWeather24h(); dispatch.shyjview.showWeather24h();
const map = window.__mapref
map.setLayoutProperty('热力图', 'visibility', 'none');
} }
const genWeatherContourRadar = () => { const genWeatherContourRadar = () => {
dispatch.runtime.setYyfa({yy:''})
dispatch.shyjview.showWeatherRadar(); dispatch.shyjview.showWeatherRadar();
const map = window.__mapref
map.setLayoutProperty('热力图', 'visibility', 'none');
} }
const setIndexH24 = (index) => { const setIndexH24 = (index) => {

View File

@ -10,6 +10,9 @@ export default function WeatherForcast({ style }) {
const closeLayer = () => { const closeLayer = () => {
dispatch.runtime.setLayerSetting({ contour: null, dem: undefined }); dispatch.runtime.setLayerSetting({ contour: null, dem: undefined });
dispatch.map.setLayerVisible({ ContourLayer: false }); dispatch.map.setLayerVisible({ ContourLayer: false });
dispatch.runtime.setYyfa({yy:''})
const map = window.__mapref
map.setLayoutProperty('热力图', 'visibility', 'none');
} }
return ( return (

View File

@ -0,0 +1,17 @@
import React, { useMemo, useState } from 'react';
import PanelBox from '../../components/PanelBox';
function DrpReal({ style }) {
return (
<PanelBox
style={style}
title="药耗分析"
color="green"
>
<img src='/assets/药耗分析.jpg' style={{width:'26rem', height:'17.5rem',marginLeft:'8px'}}/>
</PanelBox>
)
}
export default DrpReal;