feat(): 水库监测开发

lsf-dev
李神峰 2025-06-06 16:30:16 +08:00
parent 0ee42db098
commit f9bc89ac8a
45 changed files with 3443 additions and 133 deletions

BIN
public/assets/jrx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
public/assets/s1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
public/assets/s2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
public/assets/s3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
public/assets/s4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
public/assets/s5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
public/assets/s6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
public/assets/s7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
public/assets/sanwei.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

BIN
public/assets/sksp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -315,6 +315,9 @@ const map = {
RoadLayer: true,
RivlLayer: true,
BxjcLayer: true,
SyjcLayer: true,
SljcLayer: true,
ByjcLayer:true
};
Object.keys(DCPJ_TYPES).forEach(key => {
layerVisible['Dcpj_' + key + 'Layer'] = false;
@ -354,8 +357,9 @@ const map = {
layerVisible = {
RealDrpLayer: false,
RealHDLayer: false,
RealSkLayer: true,
RealSkLayer: false,
BxSkLayer: false,
XunchaLayer:true,
FzdxLayer: false,
WataLayer: false,
AdcdLayer: true,

View File

@ -82,7 +82,10 @@ export default function calcLayout(view, rightStack, hidePanels) {
} else if (view === 203) {
left = [
{ key: '天气' },
{ key: '安全监测', style: { height: '20rem', flexGrow: 1 } },
{ key: '变形监测', style: { height: '20rem', flexGrow: 1 } },
{ key: '渗压监测', style: { height: '20rem', flexGrow: 1 } },
{ key: '渗流监测', style: { height: '20rem', flexGrow: 1 } },
// { key: '安全监测', style: { height: '20rem', flexGrow: 1 } },
];
leftFullHeight = true;
} else if (view === 204) {
@ -293,8 +296,11 @@ export default function calcLayout(view, rightStack, hidePanels) {
];
} else if (view === 203) {
right = [
{ key: '警报' },
{ key: '白蚁监测', style: { height: '20rem', flexGrow: 1 } },
{ key: '视频监视', style: { height: '20rem', flexGrow: 1 } },
{ key: '监测告警', style: { height: '20rem', flexGrow: 1 } },
];
rightFullHeight=true
} else if (view === 204) {
right = [
{ key: '警报' },

View File

@ -1,4 +1,4 @@
import React from 'react';
import React,{useState} from 'react';
import Dialog from '@material-ui/core/Dialog';
import DialogContent from '@material-ui/core/DialogContent';
@ -13,10 +13,34 @@ import DrpSearch from '../../components/DrpSearch';
import DrpStAround from '../../components/DrpStAround';
import GqJcsj from '../../components/Hdjcsj'
import Table from './table'
import { Button, IconButton } from '@material-ui/core';
import { makeStyles } from '@material-ui/core/styles';
import { useDispatch } from 'react-redux';
import ModalView from './view'
function HDStDlg({ record, onClose }) {
const [value, setValue] = React.useState(0);
const useStyles = makeStyles((theme) => ({
addButton: {
backgroundColor: '#1f6feb',
color: '#ffffff',
border: 'none',
padding: '0px 12px',
borderRadius: 6,
marginTop: 6,
marginRight:20,
height:35,
cursor: 'pointer',
'&:hover': {
backgroundColor: '#388bfd',
},
},
}));
const classes = useStyles();
const dispatch = useDispatch();
const [visible, setVisible] = useState(false)
return (
<Dialog
open={true}
@ -32,6 +56,7 @@ function HDStDlg({ record, onClose }) {
<DpTabs value={value} indicatorColor="primary" onChange={(_, v) => setValue(v)}>
<DpTab label={record.res_nm+'-'+record.cd_nm} />
</DpTabs>
<button className={classes.addButton} onClick={()=>setVisible(true)}>三维展示</button>
<DpCloseButton onClick={onClose} />
</DpAppBar>
<div style={{ padding: '2rem', hminHeight: '50rem',maxHeight: '60rem' }}>
@ -40,6 +65,10 @@ function HDStDlg({ record, onClose }) {
</DialogContent>
<div className="boxfoot"></div>
<ModalView
open={visible}
onClose={() => setVisible(false)}
></ModalView>
</Dialog>
)
}

View File

@ -1,4 +1,7 @@
import { TableCell, withStyles, Table, TableBody, TableContainer, TableHead, TableRow, TextField, Grid } from '@material-ui/core';
import { TableCell, withStyles, Table, TableBody, Typography,
Box, TableContainer, TableHead, TableRow, TextField, Grid, IconButton,
Button,
ButtonGroup, } from '@material-ui/core';
import { DatePicker } from 'antd';
import { makeStyles } from '@material-ui/core/styles';
import moment from 'moment';
@ -10,7 +13,7 @@ import { DateTimePicker } from '@material-ui/pickers';
import React, { useEffect, useState,useMemo } from 'react';
import './index.less'
const { RangePicker } = DatePicker;
const useStyles = makeStyles({
const useStyles = makeStyles((theme)=>({
tableContainer: {
background: '#182d42', // 设置表格容器的背景颜色
},
@ -21,8 +24,37 @@ const useStyles = makeStyles({
backgroundColor: '#104175',
},
},
},
});
},
summaryBox: {
// backgroundColor: '#161b22',
padding: theme.spacing(2),
borderRadius: theme.shape.borderRadius,
border: '1px solid #30363d',
},
summaryTitle: {
color: '#c9d1d9',
marginBottom: theme.spacing(1),
},
summaryContent: {
color: '#fff',
},
searchRow: {
display: 'flex',
gap: theme.spacing(2),
alignItems: 'center',
flexWrap: 'wrap'
},
buttonGroup: {
'& .MuiButton-root': {
color: '#fff',
borderColor: 'rgba(255, 255, 255, 0.3)',
'&.active': {
backgroundColor: '#2196f3',
borderColor: '#2196f3'
}
}
},
}));
const DpTableCell = withStyles({
head: {
backgroundColor: '#104175',
@ -44,188 +76,188 @@ const DpTableCell = withStyles({
const data = [
{
"res_cd": "42118140022",
"rz": 141.95,
"rz": -1.95,
"du_value":-8.29,
"dt": "2025-04-28"
},
{
"res_cd": "42118140022",
"du_value":-8.80,
"rz": 141.95,
"rz": -1.95,
"dt": "2025-04-29"
},
{
"res_cd": "42118140022",
"du_value":-9.13,
"rz": 141.94,
"rz": -1.94,
"dt": "2025-04-30"
},
{
"res_cd": "42118140022",
"du_value":-10.19,
"rz": 141.95,
"rz": -1.95,
"dt": "2025-05-01"
},
{
"res_cd": "42118140022",
"du_value":-10.29,
"rz": 141.95,
"rz": -1.95,
"dt": "2025-05-02"
},
{
"res_cd": "42118140022",
"du_value":-10.26,
"rz": 141.94,
"rz": -1.94,
"dt": "2025-05-03"
},
{
"res_cd": "42118140022",
"du_value":-9.31,
"rz": 141.92,
"rz": -1.92,
"dt": "2025-05-04"
},
{
"res_cd": "42118140022",
"du_value":-9.20,
"rz": 142.03,
"rz": -2.03,
"dt": "2025-05-05"
},
{
"res_cd": "42118140022",
"du_value":-9.66,
"rz": 142.03,
"rz": -2.03,
"dt": "2025-05-06"
},
{
"res_cd": "42118140022",
"du_value":-9.52,
"rz": 142.03,
"rz": -2.03,
"dt": "2025-05-07"
},
{
"res_cd": "42118140022",
"du_value":-10.40,
"rz": 142.01,
"rz": -2.01,
"dt": "2025-05-08"
},
{
"res_cd": "42118140022",
"du_value":-9.75,
"rz": 142.22,
"rz": -2.22,
"dt": "2025-05-09"
},
{
"res_cd": "42118140022",
"du_value":-10.25,
"rz": 142.23,
"rz": -2.23,
"dt": "2025-05-10"
},
{
"res_cd": "42118140022",
"du_value":-10.59,
"rz": 142.27,
"rz": -2.27,
"dt": "2025-05-11"
},
{
"res_cd": "42118140022",
"du_value":-10.98,
"rz": 142.28,
"rz": -2.28,
"dt": "2025-05-12"
},
{
"res_cd": "42118140022",
"du_value":-10.82,
"rz": 142.28,
"rz": -2.28,
"dt": "2025-05-13"
},
{
"res_cd": "42118140022",
"du_value":-10.72,
"rz": 142.3,
"rz": -2.3,
"dt": "2025-05-14"
},
{
"res_cd": "42118140022",
"du_value":-11.26,
"rz": 142.28,
"rz": -2.28,
"dt": "2025-05-15"
},
{
"res_cd": "42118140022",
"du_value":-12.16,
"rz": 142.33,
"rz": -2.33,
"dt": "2025-05-16"
},
{
"res_cd": "42118140022",
"du_value":-11.82,
"rz": 142.33,
"rz": -2.33,
"dt": "2025-05-17"
},
{
"res_cd": "42118140022",
"du_value":-10.92,
"rz": 142.32,
"rz": -2.32,
"dt": "2025-05-18"
},
{
"res_cd": "42118140022",
"du_value":-10.15,
"rz": 142.36,
"rz": -2.36,
"dt": "2025-05-19"
},
{
"res_cd": "42118140022",
"du_value":-10.09,
"rz": 142.33,
"rz": -2.33,
"dt": "2025-05-20"
},
{
"res_cd": "42118140022",
"du_value":-10.21,
"rz": 142.33,
"rz": -2.33,
"dt": "2025-05-21"
},
{
"res_cd": "42118140022",
"du_value":-11.62,
"rz": 142.31,
"rz": -2.31,
"dt": "2025-05-22"
},
{
"res_cd": "42118140022",
"du_value":-11.42,
"rz": 142.41,
"rz": -2.41,
"dt": "2025-05-23"
},
{
"res_cd": "42118140022",
"du_value":-9.74,
"rz": 142.45,
"rz": -2.45,
"dt": "2025-05-24"
},
{
"res_cd": "42118140022",
"du_value":-9.02,
"rz": 142.45,
"rz": -2.45,
"dt": "2025-05-25"
},
{
"res_cd": "42118140022",
"du_value":-8.37,
"rz": 142.44,
"rz": -2.44,
"dt": "2025-05-26"
},
{
"res_cd": "42118140022",
"du_value":-8.79,
"rz": 142.45,
"rz": -2.45,
"dt": "2025-05-27"
},
{
"res_cd": "42118140022",
"du_value":-8.29,
"rz": 142.4,
"rz": -2.4,
"dt": "2025-05-28"
}
]
@ -236,7 +268,10 @@ function DrpStAround({ record }) {
const option = useMemo(() => {
return drpOption(data);
}, [])
const [activeType, setActiveType] = useState('all');
const handleTypeChange = (type) => {
setActiveType(type);
};
return (
<div className='infoDlg_jcsj'>
@ -260,6 +295,7 @@ function DrpStAround({ record }) {
/>
</div>
<button className='search'>查询</button>
</div>
<div className='content' style={{height:"49vh"}}>
<div className='list'>
@ -267,9 +303,12 @@ function DrpStAround({ record }) {
<Table size="small" stickyHeader>
<TableHead>
<TableRow>
<DpTableCell align="center" style={{ width: '20%' }}>时间</DpTableCell>
<DpTableCell align="center" style={{ width: '20%' }}>库水位(m)</DpTableCell>
<DpTableCell align="center" style={{ width: '20%' }}>垂直位移(mm)</DpTableCell>
<DpTableCell align="center" rowSpan={2}>监测日期</DpTableCell>
<DpTableCell align="center" colSpan={2}>GN1</DpTableCell>
</TableRow>
<TableRow>
<DpTableCell align="center" >x</DpTableCell>
<DpTableCell align="center" >y</DpTableCell>
</TableRow>
</TableHead>
<TableBody>
@ -286,6 +325,35 @@ function DrpStAround({ record }) {
</TableContainer>
</div>
<div className='echartBox'>
<Box className={classes.searchRow} style={{marginLeft:'320px'}}>
<ButtonGroup className={classes.buttonGroup}>
<Button
className={activeType === 'daily' ? 'active' : ''}
onClick={() => handleTypeChange('daily')}
>
上下游
</Button>
<Button
className={activeType === 'flood' ? 'active' : ''}
onClick={() => handleTypeChange('flood')}
>
左右岸
</Button>
<div style={{width:30}}></div>
<Button
className={activeType === 'special' ? 'active' : ''}
onClick={() => handleTypeChange('special')}
>
水平位移
</Button>
<Button
className={activeType === 'all' ? 'active' : ''}
onClick={() => handleTypeChange('all')}
>
垂直位移
</Button>
</ButtonGroup>
</Box>
<div className='echart1'>
<ReactEcharts
option={option}
@ -295,14 +363,23 @@ function DrpStAround({ record }) {
</div>
</div>
<div className='foot'>
<Grid container size="small">
<Box className={classes.summaryBox}>
<Typography className={classes.summaryContent}>
X方向最大值(m) -1.92最小值(m) -2.45日期 2025-05-04变幅(mm) 0.53
</Typography>
<Typography className={classes.summaryContent}>
Y方向最大值(m) -8.29最小值(m) -12.16日期 2025-05-16变幅(mm) 3.97
</Typography></Box>
{/* <Grid container size="small">
<DescriptionItem label="最大值(m)" myWidth={'20%'}>-8.29</DescriptionItem>
<DescriptionItem label="日期" myWidth={'20%'}>2025-04-28</DescriptionItem>
<DescriptionItem label="最小值" myWidth={'20%'}>-12.16</DescriptionItem>
<DescriptionItem label="日期" myWidth={'20%'}>2025-05-16</DescriptionItem>
<DescriptionItem label="变幅(mm)" myWidth={'20%'}>3.97</DescriptionItem>
</Grid>
</Grid> */}
</div>
</div>
)
}

View File

@ -0,0 +1,40 @@
import React from 'react';
import DpTab from '../../../../layouts/mui/DpTab';
import Dialog from '@material-ui/core/Dialog';
import DialogContent from '@material-ui/core/DialogContent';
import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent';
import DpTabs from '../../../../layouts/mui/DpTabs';
import DpAppBar from '../../../../layouts/mui/DpAppBar';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
import DpCloseButton from '../../../../layouts/mui/DpCloseButton';
function HDStDlg({ record, onClose,open }) {
const [value, setValue] = React.useState(0);
return (
<Dialog
open={open}
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="三维展示" />
</DpTabs>
<DpCloseButton onClick={onClose} />
</DpAppBar>
<div style={{padding:0}}>
<img src={`${process.env.PUBLIC_URL}/assets/sanwei.jpg`} style={{width:'100%'}}></img>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default React.memo(HDStDlg);

View File

@ -0,0 +1,83 @@
export default function drpOption(data) {
return {
// tooltip: {
// trigger: 'axis',
// },
grid: {
top: 40,
bottom: 40,
left: 60,
right: 40,
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: data.map(item => item.dt),
axisLine: {
lineStyle: {
color: '#c9d1d9'
}
},
axisLabel: {
color: '#c9d1d9'
},
splitLine: {
show: true,
lineStyle: {
color: '#30363d',
type: 'dashed'
}
}
},
yAxis: {
name:'有无白蚁',
type: 'category',
data: ['无', '有'],
nameTextStyle: {
color: '#c9d1d9'
},
axisLine: {
lineStyle: {
color: '#c9d1d9'
}
},
axisLabel: {
color: '#c9d1d9'
},
splitLine: {
show: true,
lineStyle: {
color: '#30363d',
type: 'dashed'
}
}
},
series: [{
data: data.map(item => item.status), // 1代表"有"0代表"无"
type: 'line',
smooth: true,
symbol: 'none',
lineStyle: {
color: '#ff5b5b',
width: 2
},
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: 'rgba(255, 0, 0, 0.2)'
}, {
offset: 1,
color: 'rgba(255, 0, 0, 0)'
}]
}
}
}]
}
}

View File

@ -0,0 +1,46 @@
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 DpTabs from '../../../../layouts/mui/DpTabs';
import DpTab from '../../../../layouts/mui/DpTab';
import RzSearch from '../../components/RzSearch';
import DpAppBar from '../../../../layouts/mui/DpAppBar';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
import DpCloseButton from '../../../../layouts/mui/DpCloseButton';
import DrpSearch from '../../components/DrpSearch';
import DrpStAround from '../../components/DrpStAround';
import GqJcsj from '../../components/Hdjcsj'
import Table from './table'
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={record.res_nm+'-'+record?.stnm} />
</DpTabs>
<DpCloseButton onClick={onClose} />
</DpAppBar>
<div style={{ padding: '2rem', hminHeight: '50rem',maxHeight: '60rem' }}>
<Table/>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default React.memo(HDStDlg);

View File

@ -0,0 +1,138 @@
.infoDlg_jcsj{
display: flex;
flex-direction: column;
height: 100%;
.toolbar{
display: flex;
.tm{
width: 40%;
display: flex;
justify-content: center;
font-size: 14px;
font-weight: 400;
border-radius: 2px;
color: #fff;
background: linear-gradient(270deg,rgba(65,76,217,.4),rgba(58,85,218,.2) 14%,rgba(54,90,218,0) 49%,rgba(51,94,218,.2) 86%,rgba(44,102,219,.4));
border: 1px solid #0e4e93;
.MuiInput-underline:before{
border: 0px;
}
.time-picker{
.ant-picker-input > input{
color: #fff;
}
.ant-picker-separator{
color: #fff;
}
}
}
.time-type {
margin-left: 10rem;
display: flex;
cursor: pointer;
background-color: #393e45;
border-radius: 5%;
padding: 0.01% !important;
border: 1px solid #585e64;
div {
width: 80px;
border-radius: 5%;
text-align: center;
border: 1px solid #585e64;
padding: 4px 0;
}
.active {
color: #5FB7FF;
// background: #F0F7FF;
border: 1px solid #5FB7FF;
}
}
.search{
margin-left: 1.5rem;
border: 1px solid #0e4e93;
background: url(../../../../assets/btn44.png) no-repeat 100% center;
color: #fff;
padding: 0 1rem;
border-radius: 2px;
cursor: pointer;
}
}
.content{
height: 40vh;
margin-top: 1vh;
display: flex;
.list{
width: 40%;
}
.echart{
flex: 1;
}
}
.echartBox{
width: 60%;
.echart1{
width: 100%;
height: 100%;
}
}
.foot{
flex: 1;
margin-top: 15px;
.split-line{
width: 100%;
border: 1px dashed rgba(16, 102, 141);
opacity: .36;
margin-bottom: 15px;
}
.MuiGrid-container{
background-color: #182d42 !important;
}
}
}
.ant-picker-panel-container{
background-color: rgba(36, 46, 92,1) !important;
}
.ant-picker-header,.ant-picker-body{
color: #fff !important;
border-color: #242e5c;
}
.ant-picker-content th{
color: #fff !important;
}
.ant-picker-cell,
.ant-picker-header-super-prev-btn,
.ant-picker-header-prev-btn,
.ant-picker-header-next-btn,
.ant-picker-header-super-next-btn
{
color: #fff !important;
}
.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner{
// background: transparent !important;
color: #000;
}
.ant-picker-cell-in-view.ant-picker-cell-in-range::before,
.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single)::before,
.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single)::before
{
background-color:transparent !important;
}
.ant-picker-time-panel-column > li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{
background-color: #1890ff !important;
}
.ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover{
// background-color:transparent !important;
color: #000 !important;
}
.ant-picker-header-super-next-btn,.ant-picker-time-panel-cell-inner
{
color: #fff !important;
}

View File

@ -0,0 +1,346 @@
import { TableCell, withStyles, Table, TableBody, TableContainer, TableHead, TableRow, TextField, Grid } from '@material-ui/core';
import { DatePicker } from 'antd';
import { makeStyles } from '@material-ui/core/styles';
import moment from 'moment';
import DpTableRow from '../../../../layouts/mui/DpTableRow';
import DescriptionItem from '../../components/DescrptionItem2';
import ReactEcharts from 'echarts-for-react';
import drpOption from './drpOption';
import { DateTimePicker } from '@material-ui/pickers';
import React, { useEffect, useState,useMemo } from 'react';
import './index.less'
const { RangePicker } = DatePicker;
const useStyles = makeStyles({
tableContainer: {
background: '#182d42', // 设置表格容器的背景颜色
},
item: {
'& .MuiGrid-item': {
'& [class*="makeStyles-title"]': {
color: '#fff',
backgroundColor: '#104175',
},
},
},
});
const DpTableCell = withStyles({
head: {
backgroundColor: '#104175',
color: '#fff',
fontSize: '1rem',
padding: '0.5rem 0.3rem !important',
},
body: {
color: '#fff',
fontSize: '0.9rem',
padding: '0.7rem 0.3rem !important',
borderBottom: 'none',
position: "relative"
},
})(TableCell);
const data = [
{
"res_cd": "42118140004",
"rz": 71.08,
"dt": "2025-04-28",
"low_z": 0.38,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.08,
"dt": "2025-04-29",
"low_z": 0.29,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.08,
"dt": "2025-04-30",
"low_z": 0.29,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.08,
"dt": "2025-05-01",
"low_z": 0.27,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.07,
"dt": "2025-05-02",
"low_z": 0.28,
status:1
},
{
"res_cd": "42118140004",
"rz": 71.07,
"dt": "2025-05-03",
"low_z": 0.17,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.06,
"dt": "2025-05-04",
"low_z": 0,
status:1
},
{
"res_cd": "42118140004",
"rz": 71.1,
"dt": "2025-05-05",
"low_z": 0.71,
status:1
},
{
"res_cd": "42118140004",
"rz": 71.04,
"dt": "2025-05-06",
"low_z": 0.43,
status:0
},
{
"res_cd": "42118140004",
"rz": 70.98,
"dt": "2025-05-07",
"low_z": 0.34,
status:0
},
{
"res_cd": "42118140004",
"rz": 70.97,
"dt": "2025-05-08",
"low_z": 1.73,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.3,
"dt": "2025-05-09",
"low_z": 0.71,
status:1
},
{
"res_cd": "42118140004",
"rz": 71.33,
"dt": "2025-05-10",
"low_z": 0.56,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.35,
"dt": "2025-05-11",
"low_z": 0.47,
status:1
},
{
"res_cd": "42118140004",
"rz": 71.35,
"dt": "2025-05-12",
"low_z": 0.38,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.35,
"dt": "2025-05-13",
"low_z": 0.3,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.35,
"dt": "2025-05-14",
"low_z": 0.29,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.38,
"dt": "2025-05-15",
"low_z": 0.63,
status:1
},
{
"res_cd": "42118140004",
"rz": 71.4,
"dt": "2025-05-16",
"low_z": 0.45,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.41,
"dt": "2025-05-17",
"low_z": 0.38,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.41,
"dt": "2025-05-18",
"low_z": 0.34,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.41,
"dt": "2025-05-19",
"low_z": 0.3,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.41,
"dt": "2025-05-20",
"low_z": 0.27,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.41,
"dt": "2025-05-21",
"low_z": 0.25,
status:0
},
{
"res_cd": "42118140004",
"rz": 71.41,
"dt": "2025-05-22",
"low_z": 3.81,
status:0
},
{
"res_cd": "42118140004",
"rz": 72.04,
"dt": "2025-05-23",
"low_z": 2.26,
status:0
},
{
"res_cd": "42118140004",
"rz": 72.15,
"dt": "2025-05-24",
"low_z": 0.75,
status:0
},
{
"res_cd": "42118140004",
"rz": 72.19,
"dt": "2025-05-25",
"low_z": 0.68,
status:0
},
{
"res_cd": "42118140004",
"rz": 72.21,
"dt": "2025-05-26",
"low_z": 0.62,
status:0
},
{
"res_cd": "42118140004",
"rz": 72.22,
"dt": "2025-05-27",
"low_z": 0.55,
status:0
},
{
"res_cd": "42118140004",
"rz": 72.22,
"dt": "2025-05-28",
"low_z": 0.54,
status:0
}
]
function DrpStAround({ record }) {
const classes = useStyles();
const option = useMemo(() => {
return drpOption(data);
}, [])
return (
<div className='infoDlg_jcsj'>
<div className='toolbar'>
<div className='tm' style={{position:"relative",zIndex:999999}}>
<RangePicker
width="100%"
className='time-picker'
style={{
flex:1,
background: "transparent",
border: "none",
color: "#fff",
}}
allowClear
format="YYYY-MM-DD"
showTime={{
format: 'HH:mm',
}}
value={[moment('2025-04-28'),moment('2025-05-28')]}
/>
</div>
<button className='search'>查询</button>
</div>
<div className='content' style={{height:"49vh"}}>
<div className='list'>
<TableContainer style={{ height: '100%' }} className={classes.tableContainer}>
<Table size="small" stickyHeader>
<TableHead>
<TableRow>
<DpTableCell align="center">时间</DpTableCell>
<DpTableCell align="center" >有无白蚁</DpTableCell>
{/* <DpTableCell align="center" style={{ width: '20%' }}>库水位(m)</DpTableCell> */}
{/* <DpTableCell align="center" style={{ width: '20%' }}>渗流量(L/s)</DpTableCell> */}
</TableRow>
</TableHead>
<TableBody>
{
data.map((row) => (
<DpTableRow key={row.dt}>
<DpTableCell align="center"><div className="ellipsis">{row.dt}</div></DpTableCell>
<DpTableCell align="center">{
row.status ?<span style={{color:'#ff4d4f'}}></span>:<span style={{color:'#3af6cd'}}></span>
}</DpTableCell>
{/* <DpTableCell align="center">{row.rz?? "-"}</DpTableCell> */}
{/* <DpTableCell align="center">{row.low_z?? "-"}</DpTableCell> */}
</DpTableRow>
))}
</TableBody>
</Table>
</TableContainer>
</div>
<div className='echartBox'>
<div className='echart1'>
<ReactEcharts
option={option}
style={{ height: '100%' }}
/>
</div>
</div>
</div>
<div className='foot'>
{/* <Grid container size="small">
<DescriptionItem label="最大值(m)" myWidth={'20%'}>209.55</DescriptionItem>
<DescriptionItem label="日期" myWidth={'20%'}>2025-04-28</DescriptionItem>
<DescriptionItem label="最小值" myWidth={'20%'}>209.40</DescriptionItem>
<DescriptionItem label="日期" myWidth={'20%'}>2025-05-20</DescriptionItem>
<DescriptionItem label="变幅" myWidth={'20%'}>3.97</DescriptionItem>
</Grid> */}
</div>
</div>
)
}
export default DrpStAround

View File

@ -1,4 +1,4 @@
import React from 'react';
import React,{useState} from 'react';
import Dialog from '@material-ui/core/Dialog';
import DialogContent from '@material-ui/core/DialogContent';
@ -13,9 +13,30 @@ import DrpSearch from '../../components/DrpSearch';
import DrpStAround from '../../components/DrpStAround';
import GqJcsj from '../../components/Hdjcsj'
import Table from './table'
import ModalView from './view'
import { makeStyles } from '@material-ui/core/styles';
function HDStDlg({ record, onClose }) {
const useStyles = makeStyles((theme) => ({
addButton: {
backgroundColor: '#1f6feb',
color: '#ffffff',
border: 'none',
padding: '0px 12px',
borderRadius: 6,
marginTop: 6,
marginRight:20,
height:35,
cursor: 'pointer',
'&:hover': {
backgroundColor: '#388bfd',
},
},
}));
const classes = useStyles();
const [value, setValue] = React.useState(0);
const [visible, setVisible] = useState(false)
return (
<Dialog
open={true}
@ -31,6 +52,7 @@ function HDStDlg({ record, onClose }) {
<DpTabs value={value} indicatorColor="primary" onChange={(_, v) => setValue(v)}>
<DpTab label={record.res_nm+'-'+record.cd_nm} />
</DpTabs>
<button className={classes.addButton} onClick={()=>setVisible(true)}>所在断面浸润线</button>
<DpCloseButton onClick={onClose} />
</DpAppBar>
<div style={{ padding: '2rem', hminHeight: '50rem',maxHeight: '60rem' }}>
@ -39,6 +61,10 @@ function HDStDlg({ record, onClose }) {
</DialogContent>
<div className="boxfoot"></div>
<ModalView
open={visible}
onClose={() => setVisible(false)}
></ModalView>
</Dialog>
)
}

View File

@ -0,0 +1,40 @@
import React from 'react';
import DpTab from '../../../../layouts/mui/DpTab';
import Dialog from '@material-ui/core/Dialog';
import DialogContent from '@material-ui/core/DialogContent';
import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent';
import DpTabs from '../../../../layouts/mui/DpTabs';
import DpAppBar from '../../../../layouts/mui/DpAppBar';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
import DpCloseButton from '../../../../layouts/mui/DpCloseButton';
function HDStDlg({ record, onClose,open }) {
const [value, setValue] = React.useState(0);
return (
<Dialog
open={open}
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="浸润线" />
</DpTabs>
<DpCloseButton onClick={onClose} />
</DpAppBar>
<div style={{padding:0}}>
<img src={`${process.env.PUBLIC_URL}/assets/jrx.png`} style={{width:'100%'}}></img>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default React.memo(HDStDlg);

View File

@ -0,0 +1,73 @@
import React from 'react';
import DpTab from '../../../../layouts/mui/DpTab';
import Dialog from '@material-ui/core/Dialog';
import DialogContent from '@material-ui/core/DialogContent';
import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent';
import DpTabs from '../../../../layouts/mui/DpTabs';
import DpAppBar from '../../../../layouts/mui/DpAppBar';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
import DpCloseButton from '../../../../layouts/mui/DpCloseButton';
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';
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',height:'40rem' }}>
<DpAppBar position="sticky">
<DpTabs value={value} indicatorColor="primary" onChange={(_, v) => setValue(v)}>
<DpTab label="变形告警" />
</DpTabs>
<DpCloseButton onClick={onClose} />
</DpAppBar>
<TableContainer style={{ height: '80%',padding:10 }}>
<Table size="small" stickyHeader>
<TableHead>
<TableRow>
<DpTableCell align="center">序号</DpTableCell>
<DpTableCell align="center">预警时间</DpTableCell>
<DpTableCell align="center">测点编号</DpTableCell>
<DpTableCell align="center">预警级别</DpTableCell>
<DpTableCell align="center">监测值</DpTableCell>
<DpTableCell align="center">阈值</DpTableCell>
<DpTableCell align="center">校验规则描述</DpTableCell>
</TableRow>
</TableHead>
<TableBody>
<DpTableRow >
<DpTableCell align="center">
<div className="table-ellipsis cursor-pointer" >1</div>
</DpTableCell>
<DpTableCell align="center">2025-5-20 10:00:00</DpTableCell>
<DpTableCell align="center">GN1</DpTableCell>
<DpTableCell align="center">红色</DpTableCell>
<DpTableCell align="center">-120mm</DpTableCell>
<DpTableCell align="center">100mm</DpTableCell>
<DpTableCell align="center"></DpTableCell>
</DpTableRow>
</TableBody>
</Table>
</TableContainer>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default React.memo(HDStDlg);

View File

@ -27,7 +27,7 @@ import SqDlg from './SqDlg';
import LlqdDlg from './LlqdDlg';
import LlsbDlg from './LlsbDlg';
import BxjcDlg from './BxjcBlg'
import ByjcDlg from './ByjcDlg'
import ByjcDlg from './Byjc1Dlg'
import PdfDlg from './PdfDlg'
import SyjcDlg from './SyjcDlg'
import SljcDlg from './SljcDlg'
@ -40,7 +40,7 @@ import FadbDlg from './FadbDlg'
import ShuikuyhDlg from './ShuikuyhDlg';
import XunchaDlg from './XunchaDlg';
import XcxqDlg from './XcxqDlg';
import WyWarnDlg from './WyWarnDlg';
function InfoDlg() {
const infoDlg = useSelector(getInfoDlg);
@ -133,6 +133,8 @@ function InfoDlg() {
return <PdfDlg record={properties} onClose={handleClose} />
}else if (layerId === 'XcxqLayer') {
return <XcxqDlg record={properties} onClose={handleClose} />
}else if (layerId === 'WyWarnLayer') {
return <WyWarnDlg record={properties} onClose={handleClose} />
}

View File

@ -48,8 +48,9 @@ const page1 = [
"res_cd": "42118140035",
"res_lon": 115.14137,
"res_lat": 31.55095,
"cd": "03",
"cd_nm": "GN3",
"cd": "01",
"cd_nm": "GN1",
"stnm": "GN1",
"res_reg_cd": "42118140006-A4",
"ch": "0+000",
"province_cd": "420000000000",

View File

@ -76,7 +76,8 @@ export default class ByjcLayer extends BaseLayer {
"res_cd": "42118140004",
"res_nm": "永丰水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"province_nm": "湖北省",
stnm:'0FA5DE',
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
@ -164,7 +165,8 @@ export default class ByjcLayer extends BaseLayer {
},
{
"res_cd": "42118140013",
"res_nm": "高峰水库",
"res_nm": "高峰水库",
stnm:'0A82AD',
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
@ -204,8 +206,8 @@ export default class ByjcLayer extends BaseLayer {
}
].map((item)=>{
const obj = {...item}
obj.lgtd = item.res_lon
obj.lttd = item.res_lat
obj.lgtd = item.res_lon - 0.0019
obj.lttd = item.res_lat - 0.0001
return obj
})
ms.setData(parseGeoJSON(data));

View File

@ -75,6 +75,7 @@ export default class SljcLayer extends BaseLayer {
"cd": "1",
"cd_nm": "WE",
"ch": "1",
'stnm':'WE',
"res_reg_cd": "42118140042-A4",
"res_cd": "42118140004",
"res_nm": "永丰水库",
@ -100,7 +101,7 @@ export default class SljcLayer extends BaseLayer {
"max_value": 0.3
}].map((item)=>{
const obj = {...item}
obj.lgtd = item.res_lon
obj.lgtd = item.res_lon - 0.0029
obj.lttd = item.res_lat
return obj
})

View File

@ -80,7 +80,8 @@ export default class SyjcLayer extends BaseLayer {
"res_cd": "42118140038",
"res_lon": 115.01664,
"res_lat": 31.40681,
"res_nm": "蛤蟆岗水库",
"res_nm": "蛤蟆岗水库",
"stnm": "UPD1",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
@ -758,7 +759,7 @@ export default class SyjcLayer extends BaseLayer {
}
].map((item)=>{
const obj = {...item}
obj.lgtd = item.res_lon
obj.lgtd = item.res_lon+ 0.0019
obj.lttd = item.res_lat
return obj
})

View File

@ -125,7 +125,7 @@ const page1 = [
"stcd": "61613010",
"type": "sk",
"hasRz": true,
"stnm": "明山水库",
"stnm": "06-02明山水库日常巡查",
"adcd": "421181103000",
"wscd": null,
"importancy": 0,

View File

@ -122,6 +122,12 @@ import Duibifx from './panels/Duibifx'
import Xczl from './panels/Xczl'
import Xckb from './panels/Xcwtkb'
import Shuikugh from './panels/Shuikugh'
import Bxjc from './panels/Bxjc'
import Syjc from './panels/Syjc'
import Sljc from './panels/Sljc'
import Byjc from './panels/Byjc'
import Shuikusp from './panels/ShuikuSp'
import JcGJ from './panels/Jcgj'
export default function PanelIndex({ name, style, ...params }) {
if (name === '天气') {
return (
@ -198,7 +204,19 @@ export default function PanelIndex({ name, style, ...params }) {
} else if (name === '工程巡查') {
return <XcSta style={style} />
} else if (name === '安全监测') {
return <Aqjc style={style} />
// return <Aqjc style={style} />
} else if (name === '变形监测') {
return <Bxjc style={style} />
}else if (name === '渗压监测') {
return <Syjc style={style} />
}else if (name === '渗流监测') {
return <Sljc style={style} />
}else if (name === '白蚁监测') {
return <Byjc style={style} />
}else if (name == '视频监视') {
return <Shuikusp style={style}/>
}else if (name == '监测告警') {
return <JcGJ style={style}/>
} else if (name === '本月巡查记录') {
return <Xcjl style={style}/>
} else if (name === '待处理巡查问题清单') {

View File

@ -21,10 +21,10 @@ const VIEWS = [
},
{ id: 200, title: '水库', img: '/assets/menu/水库专题.png',children:[
{ id: 207, title: '水库总览', img: '/assets/menu/水库管理.png' },
{ id: 201, title: '雨情监测', img: '/assets/menu/雨情监测.png' },
{ id: 202, title: '水情监测', img: '/assets/menu/水情监测.png' },
{ id: 203, title: '安全监测', img: '/assets/menu/安全监测.png' },
{ id: 204, title: '视频监视', img: '/assets/menu/视频监视.png' },
// { id: 201, title: '雨情监测', img: '/assets/menu/雨情监测.png' },
// { id: 202, title: '水情监测', img: '/assets/menu/水情监测.png' },
{ id: 203, title: '水库监测', img: '/assets/menu/安全监测.png' },
// { id: 204, title: '视频监视', img: '/assets/menu/视频监视.png' },
{ id: 205, title: '防汛调度', img: '/assets/menu/防汛调度.png' },
{ id: 206, title: '巡查维养', img: '/assets/menu/水库管理.png' },
] },

View File

@ -0,0 +1,67 @@
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 { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
import { useDispatch, useSelector } from 'react-redux';
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
function Setting({ onClose }) {
const layerVisible = useSelector(getLayerVisible);
const layerSetting = useSelector(getLayerSetting);
const dispath = useDispatch();
return (
<Dialog
open={true}
onClose={onClose}
maxWidth="xl"
style={{ borderRadius: 0 }}
PaperComponent={DpPaperComponent}
BackdropComponent={DpBackgroundDrop}
>
<div className="boxhead"></div>
<DpDialogTitle>实时雨量显示设置</DpDialogTitle>
<DialogContent>
<div style={{ width: 320, padding: '1rem 0' }}>
<FormGroup>
<div style={{ marginBottom: '2rem' }}>
<Typography variant="subtitle2">地图实时雨量显示雨量时段</Typography>
<Select
style={{ fontSize: '1.2rem' }}
fullWidth
value={layerSetting.drplabel}
onChange={(event) => dispath.map.setLayerSetting({ drplabel: event.target.value })}
>
<MenuItem value="h1">小时雨量</MenuItem>
<MenuItem value="h3">3小时雨量</MenuItem>
<MenuItem value="h6">6小时雨量</MenuItem>
<MenuItem value="h12">12小时雨量</MenuItem>
<MenuItem value="h24">24小时雨量</MenuItem>
<MenuItem value="h48">48小时雨量</MenuItem>
</Select>
</div>
<div style={{ marginBottom: '1rem' }}>
<Typography variant="subtitle2">显示实时雨量图层</Typography>
<Switch
checked={!!layerVisible.RealDrpLayer}
color="primary"
edge="start"
onChange={(e) => dispath.map.setLayerVisible({ RealDrpLayer: e.target.checked })}
/>
</div>
</FormGroup>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default Setting;

View File

@ -0,0 +1,670 @@
import React, { useMemo, useState } from 'react';
import useRequest from '../../../../utils/useRequest';
import { useDispatch, useSelector } from 'react-redux';
import PanelBox from '../../components/PanelBox';
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';
import clsx from 'clsx';
import { renderDrp } from '../../../../utils/renutils';
const data1 = [
{
"res_cd": "42118140035",
"res_lon": 115.14137,
"res_lat": 31.55095,
"cd": "01",
"cd_nm": "GN1",
"res_reg_cd": "42118140006-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181112000",
"town_nm": "福田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "大堰口水库",
"de_value": -4.2885,
"dn_value": -13.5384,
"du_value": 132.4892,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 1.0981,
"max_dn": -2.3255,
"max_du": 132.4892,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140035",
"res_lon": 115.14137,
"res_lat": 31.55095,
"cd": "03",
"cd_nm": "GN3",
"res_reg_cd": "42118140006-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181112000",
"town_nm": "福田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "大堰口水库",
"de_value": -10.73,
"dn_value": -9.8975,
"du_value": 121.3495,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 1.0981,
"max_dn": -2.3255,
"max_du": 132.4892,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140035",
"res_lon": 115.14137,
"res_lat": 31.55095,
"cd": "02",
"cd_nm": "GN2",
"res_reg_cd": "42118140006-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181112000",
"town_nm": "福田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "大堰口水库",
"de_value": 1.0981,
"dn_value": -7.0736,
"du_value": 75.4661,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 1.0981,
"max_dn": -2.3255,
"max_du": 132.4892,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140035",
"res_lon": 115.14137,
"res_lat": 31.55095,
"cd": "04",
"cd_nm": "GN4",
"res_reg_cd": "42118140006-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181112000",
"town_nm": "福田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "大堰口水库",
"de_value": -6.469,
"dn_value": -2.3255,
"du_value": 47.1633,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 1.0981,
"max_dn": -2.3255,
"max_du": 132.4892,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140011",
"res_lon": 115.11878,
"res_lat": 30.88904,
"cd": "01",
"cd_nm": "GN1",
"res_reg_cd": "42118140019-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181104000",
"town_nm": "夫子河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "黄麻坳水库",
"de_value": -5.5809,
"dn_value": 4.6055,
"du_value": -13.083,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": -5.1079,
"max_dn": 4.6055,
"max_du": -11.1644,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140011",
"res_lon": 115.11878,
"res_lat": 30.88904,
"cd": "02",
"cd_nm": "GN2",
"res_reg_cd": "42118140019-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181104000",
"town_nm": "夫子河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "黄麻坳水库",
"de_value": -5.1079,
"dn_value": 3.9064,
"du_value": -12.2936,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": -5.1079,
"max_dn": 4.6055,
"max_du": -11.1644,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140017",
"res_lon": 115.14545,
"res_lat": 30.95398,
"cd": "03",
"cd_nm": "GN3",
"res_reg_cd": "42118140031-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181107000",
"town_nm": "盐田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "群建水库",
"de_value": 1.166,
"dn_value": 2.1274,
"du_value": 11.5948,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 2.6901,
"max_dn": 3.7945,
"max_du": 11.5948,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140011",
"res_lon": 115.11878,
"res_lat": 30.88904,
"cd": "03",
"cd_nm": "GN3",
"res_reg_cd": "42118140019-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181104000",
"town_nm": "夫子河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "黄麻坳水库",
"de_value": -5.1345,
"dn_value": 3.7423,
"du_value": -11.5382,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": -5.1079,
"max_dn": 4.6055,
"max_du": -11.1644,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140022",
"res_lon": 115.39612,
"res_lat": 31.1526,
"cd": "02",
"cd_nm": "GN2",
"res_reg_cd": "42118140014-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181109000",
"town_nm": "木子店镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "何门咀水库",
"de_value": -0.7313,
"dn_value": 2.702,
"du_value": -11.493,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": -0.4931,
"max_dn": 4.3759,
"max_du": -10.0925,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140011",
"res_lon": 115.11878,
"res_lat": 30.88904,
"cd": "04",
"cd_nm": "GN4",
"res_reg_cd": "42118140019-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181104000",
"town_nm": "夫子河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "黄麻坳水库",
"de_value": -5.7038,
"dn_value": 3.3505,
"du_value": -11.1644,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": -5.1079,
"max_dn": 4.6055,
"max_du": -11.1644,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140017",
"res_lon": 115.14545,
"res_lat": 30.95398,
"cd": "04",
"cd_nm": "GN4",
"res_reg_cd": "42118140031-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181107000",
"town_nm": "盐田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "群建水库",
"de_value": 1.3441,
"dn_value": 3.3718,
"du_value": 10.8126,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 2.6901,
"max_dn": 3.7945,
"max_du": 11.5948,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140022",
"res_lon": 115.39612,
"res_lat": 31.1526,
"cd": "01",
"cd_nm": "GN1",
"res_reg_cd": "42118140014-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181109000",
"town_nm": "木子店镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "何门咀水库",
"de_value": -0.4931,
"dn_value": 4.3759,
"du_value": -10.0925,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": -0.4931,
"max_dn": 4.3759,
"max_du": -10.0925,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140017",
"res_lon": 115.14545,
"res_lat": 30.95398,
"cd": "01",
"cd_nm": "GN1",
"res_reg_cd": "42118140031-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181107000",
"town_nm": "盐田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "群建水库",
"de_value": 2.6901,
"dn_value": 3.7368,
"du_value": 8.7918,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 2.6901,
"max_dn": 3.7945,
"max_du": 11.5948,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140017",
"res_lon": 115.14545,
"res_lat": 30.95398,
"cd": "02",
"cd_nm": "GN2",
"res_reg_cd": "42118140031-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181107000",
"town_nm": "盐田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "群建水库",
"de_value": 1.5528,
"dn_value": 3.7945,
"du_value": 7.5172,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 2.6901,
"max_dn": 3.7945,
"max_du": 11.5948,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140009",
"res_lon": 114.73138,
"res_lat": 31.01948,
"cd": "04",
"cd_nm": "GN4",
"res_reg_cd": "42118140028-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181102000",
"town_nm": "歧亭镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "鲇鱼坝水库",
"de_value": -2.3116,
"dn_value": -7.9976,
"du_value": -6.8754,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": -1.4148,
"max_dn": -7.6521,
"max_du": -3.4337,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140032",
"res_lon": 115.13073,
"res_lat": 31.35489,
"cd": "02",
"cd_nm": "GN2",
"res_reg_cd": "42118140020-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181111000",
"town_nm": "黄土岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "待除险加固",
"label": "2023高标准",
"res_nm": "鸡翅关水库",
"de_value": -4.2641,
"dn_value": -1.5343,
"du_value": -6.8233,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 1.346,
"max_dn": -1.5343,
"max_du": -3.1838,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140032",
"res_lon": 115.13073,
"res_lat": 31.35489,
"cd": "03",
"cd_nm": "GN3",
"res_reg_cd": "42118140020-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181111000",
"town_nm": "黄土岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "待除险加固",
"label": "2023高标准",
"res_nm": "鸡翅关水库",
"de_value": -1.1126,
"dn_value": -1.7529,
"du_value": -5.7066,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": 1.346,
"max_dn": -1.5343,
"max_du": -3.1838,
"dt": "2025-05-20",
"is_has_data": "y"
},
{
"res_cd": "42118140009",
"res_lon": 114.73138,
"res_lat": 31.01948,
"cd": "01",
"cd_nm": "GN1",
"res_reg_cd": "42118140028-A4",
"ch": "0+000",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181102000",
"town_nm": "歧亭镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"res_nm": "鲇鱼坝水库",
"de_value": -1.4148,
"dn_value": -10.2713,
"du_value": -5.146,
"de_trend": null,
"dn_trend": null,
"du_trend": null,
"max_de": -1.4148,
"max_dn": -7.6521,
"max_du": -3.4337,
"dt": "2025-05-20",
"is_has_data": "y"
}
]
function DrpReal({ style }) {
const [tab,setTab] = useState('1')
const dispatch = useDispatch();
return (
<PanelBox
style={style}
title="变形监测"
color="green"
>
<TableContainer style={{ height: '100%' }}>
<Table size="small" stickyHeader>
<TableHead>
<TableRow>
<DpTableCell style={{ minWidth: '8rem' }} align="center">水库名称</DpTableCell>
<DpTableCell style={{ minWidth: '3rem' }} align="center">测点</DpTableCell>
<DpTableCell style={{ minWidth: '8rem' }} align="center">垂直位移(mm)</DpTableCell>
<DpTableCell style={{ minWidth: '6rem' }} align="center">上下游(mm)</DpTableCell>
<DpTableCell style={{ minWidth: '6rem' }} align="center">左右岸(mm)</DpTableCell>
<DpTableCell style={{ minWidth: '10rem' }} align="center">监测时间</DpTableCell>
</TableRow>
</TableHead>
<TableBody>
{data1.map((row,index) => (
<DpTableRow key={row.stcd}>
<DpTableCell component="th" scope="row">
<div className="table-ellipsis cursor-pointer" onClick={() => {
const { res_lon:lgtd, res_lat:lttd } = row;
if (lgtd && lttd) {
dispatch.runtime.setCameraTarget({
center: [lgtd, lttd],
zoom: 15,
pitch: 60,
bearing: 0
});
}
}}>{row.res_nm}</div>
</DpTableCell>
<DpTableCell align="center">{row.cd_nm}</DpTableCell>
<DpTableCell align="center">{row.du_value}</DpTableCell>
<DpTableCell align="center">{row.de_value}</DpTableCell>
<DpTableCell align="center">{row.dn_value}</DpTableCell>
<DpTableCell align="center">{row.dt}</DpTableCell>
</DpTableRow>
))}
</TableBody>
</Table>
</TableContainer>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,67 @@
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 { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
import { useDispatch, useSelector } from 'react-redux';
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
function Setting({ onClose }) {
const layerVisible = useSelector(getLayerVisible);
const layerSetting = useSelector(getLayerSetting);
const dispath = useDispatch();
return (
<Dialog
open={true}
onClose={onClose}
maxWidth="xl"
style={{ borderRadius: 0 }}
PaperComponent={DpPaperComponent}
BackdropComponent={DpBackgroundDrop}
>
<div className="boxhead"></div>
<DpDialogTitle>实时雨量显示设置</DpDialogTitle>
<DialogContent>
<div style={{ width: 320, padding: '1rem 0' }}>
<FormGroup>
<div style={{ marginBottom: '2rem' }}>
<Typography variant="subtitle2">地图实时雨量显示雨量时段</Typography>
<Select
style={{ fontSize: '1.2rem' }}
fullWidth
value={layerSetting.drplabel}
onChange={(event) => dispath.map.setLayerSetting({ drplabel: event.target.value })}
>
<MenuItem value="h1">小时雨量</MenuItem>
<MenuItem value="h3">3小时雨量</MenuItem>
<MenuItem value="h6">6小时雨量</MenuItem>
<MenuItem value="h12">12小时雨量</MenuItem>
<MenuItem value="h24">24小时雨量</MenuItem>
<MenuItem value="h48">48小时雨量</MenuItem>
</Select>
</div>
<div style={{ marginBottom: '1rem' }}>
<Typography variant="subtitle2">显示实时雨量图层</Typography>
<Switch
checked={!!layerVisible.RealDrpLayer}
color="primary"
edge="start"
onChange={(e) => dispath.map.setLayerVisible({ RealDrpLayer: e.target.checked })}
/>
</div>
</FormGroup>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default Setting;

View File

@ -0,0 +1,241 @@
import React, { useMemo, useState } from 'react';
import useRequest from '../../../../utils/useRequest';
import { useDispatch, useSelector } from 'react-redux';
import PanelBox from '../../components/PanelBox';
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';
import clsx from 'clsx';
import { Select, MenuItem } from '@material-ui/core/index'
import { renderDrp } from '../../../../utils/renutils';
const data4 = [
{
"res_cd": "42118140013",
"res_nm": "高峰水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181106000",
"town_nm": "龟山镇",
"rv_name": "举水",
"bas_guid": "鄂东五河片区",
"res_lon": 115.21201,
"res_lat": 31.05011,
"res_reg_cd": "42118140010-A4",
"eng_scal": "小1型",
"eng_g": "IV",
"children": [
{
"res_cd": "42118140023",
"res_nm": "高峰水库",
"cd": "0A82AD",
"cd_nm": "高峰水库",
"termite_status": "n",
"tm": "2025-05-21 04:25:56",
"is_main_cd": "y"
}
]
},
{
"res_cd": "42118140004",
"res_nm": "永丰水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181003000",
"town_nm": "南湖办事处",
"rv_name": "举水",
"bas_guid": "鄂东五河片区",
"res_lon": 115.05541,
"res_lat": 31.11106,
"res_reg_cd": "42118140042-A4",
"eng_scal": "小1型",
"eng_g": "IV",
"children": [
{
"res_cd": "42118140004",
"res_nm": "永丰水库",
"cd": '0FA5DE',
"cd_nm": "永丰水库",
"termite_status": "n",
"tm": "2025-05-21 09:18:28",
"is_main_cd": "y"
}
]
},
{
"res_cd": "42118140015",
"res_nm": "麻城坳水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181107000",
"town_nm": "盐田河镇",
"rv_name": "举水",
"bas_guid": "鄂东五河片区",
"res_lon": 115.22541,
"res_lat": 30.98156,
"res_reg_cd": "42118140025-A4",
"eng_scal": "小1型",
"eng_g": "IV",
"children": [
{
"res_cd": "42118140015",
"res_nm": "麻城坳水库",
"cd": "0AB3ED",
"cd_nm": "麻城坳水库",
"termite_status": "y",
"tm": "2025-05-21 04:27:18",
"is_main_cd": "y"
}
]
},
{
"res_cd": "42118140023",
"res_nm": "游家冲水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181109000",
"town_nm": "木子店镇",
"rv_name": "巴河",
"bas_guid": "鄂东五河片区",
"res_lon": 115.29541,
"res_lat": 31.20317,
"res_reg_cd": "42118140044-A4",
"eng_scal": "小1型",
"eng_g": "IV",
"children": [
{
"res_cd": "42118140023",
"res_nm": "游家冲水库",
"cd": "0BB7ED",
"cd_nm": "游家冲水库",
"termite_status": "n",
"tm": "2025-05-21 04:25:56",
"is_main_cd": "y"
}
]
},
{
"res_cd": "42118140039",
"res_nm": "姚家河水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181113000",
"town_nm": "乘马岗镇",
"rv_name": "举水",
"bas_guid": "鄂东五河片区",
"res_lon": 114.9355,
"res_lat": 31.28804,
"res_reg_cd": "42118140041-A4",
"eng_scal": "小1型",
"eng_g": "IV",
"children": [
{
"res_cd": "42118140023",
"res_nm": "姚家河水库",
"cd": "0B663D",
"cd_nm": "姚家河水库",
"termite_status": "n",
"tm": "2025-05-21 04:25:56",
"is_main_cd": "y"
}
]
}
]
function DrpReal({ style }) {
const [tab,setTab] = useState('1')
const dispatch = useDispatch();
const [dimension, setDimension] = useState('ft');
const onChange = (event) => {
const value = event.target.value;
setDimension(value);
}
return (
<PanelBox
style={style}
title="白蚁监测"
color="green"
>
<TableContainer style={{ height: '100%' }}>
<Table size="small" stickyHeader>
<TableHead>
<TableRow>
<DpTableCell style={{ minWidth: '5.5rem' }} align="center">水库名称</DpTableCell>
<DpTableCell style={{ minWidth: '6rem' }} align="center">测点编号</DpTableCell>
<DpTableCell style={{ minWidth: '6rem' }} align="center">状态</DpTableCell>
<DpTableCell style={{ minWidth: '8rem' }} align="center">监测时间</DpTableCell>
</TableRow>
</TableHead>
<TableBody>
{data4.map((row,index) => (
<DpTableRow key={row.stcd}>
<DpTableCell component="th" scope="row">
<div className="table-ellipsis cursor-pointer" onClick={() => {
const { res_lon:lgtd, res_lat:lttd } = row;
if (lgtd && lttd) {
dispatch.runtime.setCameraTarget({
center: [lgtd- 0.0019, lttd-0.0001],
zoom: 15,
pitch: 60,
bearing: 0
});
}
}}>{row.res_nm}</div>
</DpTableCell>
<DpTableCell align="center">{row?.children?.[0]?.cd}</DpTableCell>
<DpTableCell align="center">{row?.children?.[0]?.termite_status==='y'?<span style={{color:'#ff4d4f',display:'flex',alignItems:'center'}}><div style={{width:'10px',height:'10px',borderRadius:'10px',marginRight:'7px',background:'#ff4d4f'}}></div></span>:<span style={{color:'#3af6cd',display:'flex',alignItems:'center'}}><div style={{width:'10px',height:'10px',borderRadius:'10px',marginRight:'7px',background:'#3af6cd'}}></div></span>}</DpTableCell>
<DpTableCell align="center"> <div className="table-ellipsis cursor-pointer">{row?.children?.[0]?.tm}</div></DpTableCell>
</DpTableRow>
))}
</TableBody>
</Table>
</TableContainer>
<div style={{ height: '30px', overflow: 'hidden',position:'absolute',top:80,right:520 }}>
<Select
labelId="analysis-select-label"
value={dimension}
label="请选择水库"
onChange={onChange}
>
<MenuItem value="ft">请选择水库</MenuItem>
<MenuItem value="浮桥河水库">浮桥河水库</MenuItem>
<MenuItem value="明山水库">明山水库</MenuItem>
<MenuItem value="永丰水库">永丰水库</MenuItem>
</Select>
</div>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,51 @@
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 { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
import { useDispatch, useSelector } from 'react-redux';
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
function Setting({ onClose }) {
const layerVisible = useSelector(getLayerVisible);
const layerSetting = useSelector(getLayerSetting);
const dispath = useDispatch();
return (
<Dialog
open={true}
onClose={onClose}
maxWidth="xl"
style={{ borderRadius: 0 }}
PaperComponent={DpPaperComponent}
BackdropComponent={DpBackgroundDrop}
>
<div className="boxhead"></div>
<DpDialogTitle>河道水位显示设置</DpDialogTitle>
<DialogContent>
<div style={{ width: 320, padding: '1rem 0' }}>
<FormGroup>
<div style={{ marginBottom: '1rem' }}>
<Typography variant="subtitle2">显示河道水位图层</Typography>
<Switch
checked={!!layerVisible.RealHDLayer}
color="primary"
edge="start"
onChange={(e) => dispath.map.setLayerVisible({ RealHDLayer: e.target.checked })}
/>
</div>
</FormGroup>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default Setting;

View File

@ -0,0 +1,87 @@
import React, { useMemo, useState } from 'react';
import useRequest from '../../../../utils/useRequest';
import PanelBox from '../../components/PanelBox';
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';
import { useDispatch, useSelector } from 'react-redux';
import useRefresh from '../../../../utils/useRefresh';
import { HDRealPromise } from '../../../../models/_/real';
import clsx from 'clsx';
import { renderHDRz } from '../../../../utils/renutils';
import Setting from './Setting';
import { InfoPopNames } from '../../InfoPops';
import config from '../../../../config';
import moment from 'moment';
import { Switch, FormControlLabel, InputLabel, Select, MenuItem, FormControl } from '@material-ui/core/index'
function rzRender(rz, base) {
return (
<DpTableCell align="right" style={{ color: rz >= base ? 'red' : '#fff' }}>
{typeof base === 'number' ? base.toFixed(2) : ''}
</DpTableCell>
);
}
function HDReal({ style }) {
const [dimension, setDimension] = useState('ft');
const dispatch = useDispatch();
const tableRzFilter = useSelector(s => s.realview.tableRzFilter);
const hdAutoRefresh = useSelector(s => s.realview.hdAutoRefresh);
const t = useRefresh(hdAutoRefresh ? 60 * 1000 : 0);
// let { data } = useRequest(HDRealPromise.get, t);
const [setting, showSetting] = useState(false);
const toggleAutoRefresh = () => {
dispatch.realview.setHdAutoRefresh(!hdAutoRefresh);
}
const handleBxDlg = () => {
dispatch.runtime.setInfoDlg({ layerId: 'WyWarnLayer', properties: {}})
}
return (
<PanelBox
style={style}
title="监测告警"
color="green"
extra={
<div>
2025-05-26~2025-06-02
</div>
}
>
<div style={{ display: 'flex', padding: '10px 5px',marginLeft:30, justifyContent: 'space-between', flexWrap: 'wrap' }}>
<div>
<img src={`${process.env.PUBLIC_URL}/assets/s3.png`} alt="" style={{ width: 180,cursor:'pointer' }} onClick={handleBxDlg}/>
<img src={`${process.env.PUBLIC_URL}/assets/s2.png`} alt="" style={{ width: 180 }} />
</div>
<div style={{ margin: '5px 0' }}>
<img src={`${process.env.PUBLIC_URL}/assets/s1.png`} alt="" style={{ width: 180 }} />
<img src={`${process.env.PUBLIC_URL}/assets/s4.png`} alt="" style={{ width: 180 }} />
</div>
<div >
<img src={`${process.env.PUBLIC_URL}/assets/s5.png`} alt="" style={{ width: 180 }} />
<img src={`${process.env.PUBLIC_URL}/assets/s6.png`} alt="" style={{ width: 180 }} />
</div>
<img src={`${process.env.PUBLIC_URL}/assets/s7.png`} alt="" style={{ width: 180,marginTop:5 }} />
</div>
{
setting && <Setting onClose={() => showSetting(false)} />
}
</PanelBox>
)
}
export default HDReal;

View File

@ -0,0 +1,51 @@
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 { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
import { useDispatch, useSelector } from 'react-redux';
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
function Setting({ onClose }) {
const layerVisible = useSelector(getLayerVisible);
const layerSetting = useSelector(getLayerSetting);
const dispath = useDispatch();
return (
<Dialog
open={true}
onClose={onClose}
maxWidth="xl"
style={{ borderRadius: 0 }}
PaperComponent={DpPaperComponent}
BackdropComponent={DpBackgroundDrop}
>
<div className="boxhead"></div>
<DpDialogTitle>河道水位显示设置</DpDialogTitle>
<DialogContent>
<div style={{ width: 320, padding: '1rem 0' }}>
<FormGroup>
<div style={{ marginBottom: '1rem' }}>
<Typography variant="subtitle2">显示河道水位图层</Typography>
<Switch
checked={!!layerVisible.RealHDLayer}
color="primary"
edge="start"
onChange={(e) => dispath.map.setLayerVisible({ RealHDLayer: e.target.checked })}
/>
</div>
</FormGroup>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default Setting;

View File

@ -0,0 +1,173 @@
import React, { useMemo, useState } from 'react';
import useRequest from '../../../../utils/useRequest';
import PanelBox from '../../components/PanelBox';
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';
import { useDispatch, useSelector } from 'react-redux';
import useRefresh from '../../../../utils/useRefresh';
import { HDRealPromise } from '../../../../models/_/real';
import clsx from 'clsx';
import { renderHDRz } from '../../../../utils/renutils';
import Setting from './Setting';
import { InfoPopNames } from '../../InfoPops';
import config from '../../../../config';
import moment from 'moment';
import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index'
function rzRender(rz, base) {
return (
<DpTableCell align="right" style={{ color: rz >= base ? 'red' : '#fff' }}>
{typeof base === 'number' ? base.toFixed(2) : ''}
</DpTableCell>
);
}
function HDReal({ style }) {
const [dimension, setDimension] =useState('ft');
const dispatch = useDispatch();
const tableRzFilter = useSelector(s => s.realview.tableRzFilter);
const hdAutoRefresh = useSelector(s => s.realview.hdAutoRefresh);
const t = useRefresh(hdAutoRefresh ? 60 * 1000 : 0);
// let { data } = useRequest(HDRealPromise.get, t);
const [setting, showSetting] = useState(false);
const showData = [
{
"id": "1",
"indexCode": "-1",
"name": "坝顶公路入口",
"ipAddress": null,
"chan": null,
"type": 1,
"buildDate": null,
"lgtd": "114.7632670",
"lttd": "31.4934740",
"menuId": 1,
"menuName": null,
"remark": null,
"createTime": null
},
{
"id": "2",
"indexCode": "-1",
"name": "黄土岗镇站",
"ipAddress": null,
"chan": null,
"type": 1,
"buildDate": null,
"lgtd": "114.7635070",
"lttd": "31.4958250",
"menuId": 1,
"menuName": null,
"remark": null,
"createTime": null
},
{
"id": "3",
"indexCode": "-1",
"name": "福田河站",
"ipAddress": null,
"chan": null,
"type": 1,
"buildDate": null,
"lgtd": "114.7632360",
"lttd": "31.4984280",
"menuId": 2,
"menuName": null,
"remark": null,
"createTime": null
},
{
"id": "4",
"indexCode": "-1",
"name": "白果镇站",
"ipAddress": null,
"chan": null,
"type": 1,
"buildDate": null,
"lgtd": "114.7639080",
"lttd": "31.4987730",
"menuId": 2,
"menuName": null,
"remark": null,
"createTime": null
},
{
"id": "5",
"indexCode": "-1",
"name": "乘马岗镇站",
"ipAddress": null,
"chan": null,
"type": 1,
"buildDate": null,
"lgtd": "114.7645800",
"lttd": "31.4976180",
"menuId": 2,
"menuName": null,
"remark": null,
"createTime": null
},
{
"id": "6",
"indexCode": "-1",
"name": "宋埠镇站",
"ipAddress": null,
"chan": null,
"type": 1,
"buildDate": null,
"lgtd": "114.7630480",
"lttd": "31.4925400",
"menuId": 3,
"menuName": null,
"remark": null,
"createTime": null
},
]
const toggleAutoRefresh = () => {
dispatch.realview.setHdAutoRefresh(!hdAutoRefresh);
}
return (
<PanelBox
style={style}
title="视频监控"
color="green"
extra={
<>
{/* <img src='/assets/年下拉3.jpg' style={{width:'100px', height:'30px',marginRight:'10px'}}/> */}
<div style={{height:'30px',overflow:'hidden'}}>
<Select
labelId="analysis-select-label"
value={dimension}
label=""
onChange={(event) => {
const value = event.target.value;
setDimension(value);
}}
>
<MenuItem value="ft">浮桥河水库大坝球机</MenuItem>
</Select>
</div>
</>
}
>
<img src={`${process.env.PUBLIC_URL}/assets/sksp.jpg`} alt="" style={{height:250}} />
{
setting && <Setting onClose={() => showSetting(false)} />
}
</PanelBox>
)
}
export default HDReal;

View File

@ -0,0 +1,67 @@
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 { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
import { useDispatch, useSelector } from 'react-redux';
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
function Setting({ onClose }) {
const layerVisible = useSelector(getLayerVisible);
const layerSetting = useSelector(getLayerSetting);
const dispath = useDispatch();
return (
<Dialog
open={true}
onClose={onClose}
maxWidth="xl"
style={{ borderRadius: 0 }}
PaperComponent={DpPaperComponent}
BackdropComponent={DpBackgroundDrop}
>
<div className="boxhead"></div>
<DpDialogTitle>实时雨量显示设置</DpDialogTitle>
<DialogContent>
<div style={{ width: 320, padding: '1rem 0' }}>
<FormGroup>
<div style={{ marginBottom: '2rem' }}>
<Typography variant="subtitle2">地图实时雨量显示雨量时段</Typography>
<Select
style={{ fontSize: '1.2rem' }}
fullWidth
value={layerSetting.drplabel}
onChange={(event) => dispath.map.setLayerSetting({ drplabel: event.target.value })}
>
<MenuItem value="h1">小时雨量</MenuItem>
<MenuItem value="h3">3小时雨量</MenuItem>
<MenuItem value="h6">6小时雨量</MenuItem>
<MenuItem value="h12">12小时雨量</MenuItem>
<MenuItem value="h24">24小时雨量</MenuItem>
<MenuItem value="h48">48小时雨量</MenuItem>
</Select>
</div>
<div style={{ marginBottom: '1rem' }}>
<Typography variant="subtitle2">显示实时雨量图层</Typography>
<Switch
checked={!!layerVisible.RealDrpLayer}
color="primary"
edge="start"
onChange={(e) => dispath.map.setLayerVisible({ RealDrpLayer: e.target.checked })}
/>
</div>
</FormGroup>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default Setting;

View File

@ -0,0 +1,95 @@
import React, { useMemo, useState } from 'react';
import useRequest from '../../../../utils/useRequest';
import { useDispatch, useSelector } from 'react-redux';
import PanelBox from '../../components/PanelBox';
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';
import clsx from 'clsx';
import { renderDrp } from '../../../../utils/renutils';
const data3 = [{
"cd": "1",
"cd_nm": "WE",
"ch": "1",
"res_reg_cd": "42118140042-A4",
"res_cd": "42118140004",
"res_nm": "永丰水库",
"res_lon": 115.05541,
"res_lat": 31.11106,
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181003000",
"town_nm": "南湖办事处",
"danger_stat": "非病险水库",
"bas_guid": "鄂东五河片区",
"label": "2023高标准",
"eng_scal": "小1型",
"value": 0.3,
"diff_value": -0.02,
"trend": -1,
"dt": "2025-05-20",
"is_has_data": "y",
"max_value": 0.3
}]
function DrpReal({ style }) {
const [tab,setTab] = useState('1')
const dispatch = useDispatch();
return (
<PanelBox
style={style}
title="渗流监测"
color="green"
>
<TableContainer style={{ height: '100%' }}>
<Table size="small" stickyHeader>
<TableHead>
<TableRow>
<DpTableCell style={{ minWidth: '6rem' }} align="center">水库名称</DpTableCell>
<DpTableCell style={{ minWidth: '4rem' }} align="center">测点</DpTableCell>
<DpTableCell style={{ minWidth: '6rem' }} align="center">渗流量(L/s)</DpTableCell>
<DpTableCell style={{ minWidth: '8rem' }} align="center">监测时间</DpTableCell>
</TableRow>
</TableHead>
<TableBody>
{data3.map((row,index) => (
<DpTableRow key={row.stcd}>
<DpTableCell component="th" scope="row">
<div className="table-ellipsis cursor-pointer" onClick={() => {
const { res_lon:lgtd, res_lat:lttd } = row;
if (lgtd && lttd) {
dispatch.runtime.setCameraTarget({
center: [lgtd- 0.0029, lttd],
zoom: 15,
pitch: 60,
bearing: 0
});
}
}}>{row.res_nm}</div>
</DpTableCell>
<DpTableCell align="center">{row.cd_nm}</DpTableCell>
<DpTableCell align="center">{row.value}</DpTableCell>
<DpTableCell align="center">{row.dt}</DpTableCell>
</DpTableRow>
))}
</TableBody>
</Table>
</TableContainer>
</PanelBox>
)
}
export default DrpReal;

View File

@ -0,0 +1,67 @@
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 { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core';
import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle';
import { useDispatch, useSelector } from 'react-redux';
import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors';
import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop';
function Setting({ onClose }) {
const layerVisible = useSelector(getLayerVisible);
const layerSetting = useSelector(getLayerSetting);
const dispath = useDispatch();
return (
<Dialog
open={true}
onClose={onClose}
maxWidth="xl"
style={{ borderRadius: 0 }}
PaperComponent={DpPaperComponent}
BackdropComponent={DpBackgroundDrop}
>
<div className="boxhead"></div>
<DpDialogTitle>实时雨量显示设置</DpDialogTitle>
<DialogContent>
<div style={{ width: 320, padding: '1rem 0' }}>
<FormGroup>
<div style={{ marginBottom: '2rem' }}>
<Typography variant="subtitle2">地图实时雨量显示雨量时段</Typography>
<Select
style={{ fontSize: '1.2rem' }}
fullWidth
value={layerSetting.drplabel}
onChange={(event) => dispath.map.setLayerSetting({ drplabel: event.target.value })}
>
<MenuItem value="h1">小时雨量</MenuItem>
<MenuItem value="h3">3小时雨量</MenuItem>
<MenuItem value="h6">6小时雨量</MenuItem>
<MenuItem value="h12">12小时雨量</MenuItem>
<MenuItem value="h24">24小时雨量</MenuItem>
<MenuItem value="h48">48小时雨量</MenuItem>
</Select>
</div>
<div style={{ marginBottom: '1rem' }}>
<Typography variant="subtitle2">显示实时雨量图层</Typography>
<Switch
checked={!!layerVisible.RealDrpLayer}
color="primary"
edge="start"
onChange={(e) => dispath.map.setLayerVisible({ RealDrpLayer: e.target.checked })}
/>
</div>
</FormGroup>
</div>
</DialogContent>
<div className="boxfoot"></div>
</Dialog>
)
}
export default Setting;

View File

@ -0,0 +1,757 @@
import React, { useMemo, useState } from 'react';
import useRequest from '../../../../utils/useRequest';
import { useDispatch, useSelector } from 'react-redux';
import PanelBox from '../../components/PanelBox';
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';
import clsx from 'clsx';
import { renderDrp } from '../../../../utils/renutils';
const data2 = [
{
"cd": "1",
"cd_nm": "UPD1",
"ch": "0+060",
"res_reg_cd": "42118140011-A4",
"res_cd": "42118140038",
"res_lon": 115.01664,
"res_lat": 31.40681,
"res_nm": "蛤蟆岗水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181113000",
"town_nm": "乘马岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 164.8742,
"diff_value": -0.0275,
"trend": -1,
"is_has_data": "y",
"diff_rz": -0.6958,
"stcd": "4239",
"diff_rz_cd": 5.0554,
"max_cd_value": -0.0225,
"rz": 165.57,
"dt": "2025-05-20",
"diff5_value": -0.0737,
"trend5": -1,
"diff10_value": -0.1204,
"trend10": -1,
"diff30_value": -0.0633,
"trend30": -1
},
{
"cd": "1",
"cd_nm": "UPD1",
"ch": "0+027",
"res_reg_cd": "42118140006-A4",
"res_cd": "42118140035",
"res_lon": 115.14137,
"res_lat": 31.55095,
"res_nm": "大堰口水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181112000",
"town_nm": "福田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 209.4042,
"diff_value": -0.0258,
"trend": -1,
"is_has_data": "y",
"diff_rz": -2.5358,
"stcd": "4159",
"diff_rz_cd": 48.6446,
"max_cd_value": -0.01,
"rz": 211.94,
"dt": "2025-05-20",
"diff5_value": -0.0983,
"trend5": -1,
"diff10_value": -0.1329,
"trend10": -1,
"diff30_value": -0.0954,
"trend30": -1
},
{
"cd": "3",
"cd_nm": "UPD3",
"ch": "0+060",
"res_reg_cd": "42118140011-A4",
"res_cd": "42118140038",
"res_lon": 115.01664,
"res_lat": 31.40681,
"res_nm": "蛤蟆岗水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181113000",
"town_nm": "乘马岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 162.6908,
"diff_value": -0.0246,
"trend": -1,
"is_has_data": "y",
"diff_rz": -2.8792,
"stcd": "4239",
"diff_rz_cd": 5.0554,
"max_cd_value": -0.0225,
"rz": 165.57,
"dt": "2025-05-20",
"diff5_value": -0.095,
"trend5": -1,
"diff10_value": -0.123,
"trend10": -1,
"diff30_value": -0.0588,
"trend30": -1
},
{
"cd": "1",
"cd_nm": "UPD1",
"ch": "0+038",
"res_reg_cd": "42118140014-A4",
"res_cd": "42118140022",
"res_lon": 115.39612,
"res_lat": 31.1526,
"res_nm": "何门咀水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181109000",
"town_nm": "木子店镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 139.2533,
"diff_value": -0.0171,
"trend": -1,
"is_has_data": "y",
"diff_rz": -3.0767,
"stcd": "4268",
"diff_rz_cd": 24.9337,
"max_cd_value": -0.0045,
"rz": 142.33,
"dt": "2025-05-20",
"diff5_value": -0.0675,
"trend5": -1,
"diff10_value": -0.0627,
"trend10": -1,
"diff30_value": -0.0342,
"trend30": -1
},
{
"cd": "4",
"cd_nm": "UPR1",
"ch": "0+055",
"res_reg_cd": "42118140043-A4",
"res_cd": "42118140029",
"res_lon": 115.12048,
"res_lat": 31.18362,
"res_nm": "永红水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181105000",
"town_nm": "阎家河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 116.1513,
"diff_value": -0.0208,
"trend": -1,
"is_has_data": "y",
"diff_rz": -3.1187,
"stcd": "5320",
"diff_rz_cd": 38.1171,
"max_cd_value": 0.0009,
"rz": 119.27,
"dt": "2025-05-20",
"diff5_value": -0.082,
"trend5": -1,
"diff10_value": -0.1333,
"trend10": -1,
"diff30_value": -0.0041,
"trend30": -1
},
{
"cd": "4",
"cd_nm": "UPR1",
"ch": "0+085",
"res_reg_cd": "42118140020-A4",
"res_cd": "42118140032",
"res_lon": 115.13073,
"res_lat": 31.35489,
"res_nm": "鸡翅关水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181111000",
"town_nm": "黄土岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "待除险加固",
"label": "2023高标准",
"value": 483.1646,
"diff_value": -0.0108,
"trend": -1,
"is_has_data": "y",
"diff_rz": -3.2454,
"stcd": "4151",
"diff_rz_cd": 14.6887,
"max_cd_value": -0.0108,
"rz": 486.41,
"dt": "2025-05-20",
"diff5_value": -0.0742,
"trend5": -1,
"diff10_value": -0.1258,
"trend10": -1,
"diff30_value": -0.1708,
"trend30": -1
},
{
"cd": "1",
"cd_nm": "UPD1",
"ch": "0+51.6",
"res_reg_cd": "42118140042-A4",
"res_cd": "42118140004",
"res_lon": 115.05541,
"res_lat": 31.11106,
"res_nm": "永丰水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181003000",
"town_nm": "南湖办事处",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 68.1333,
"diff_value": -0.0142,
"trend": -1,
"is_has_data": "y",
"diff_rz": -3.2767,
"stcd": "340",
"diff_rz_cd": 23.0069,
"max_cd_value": -0.0142,
"rz": 71.41,
"dt": "2025-05-20",
"diff5_value": -0.0109,
"trend5": -1,
"diff10_value": 0.0087,
"trend10": 1,
"diff30_value": 0.0683,
"trend30": 1
},
{
"cd": "7",
"cd_nm": "UPR3",
"ch": "0+060",
"res_reg_cd": "42118140022-A4",
"res_cd": "42118140024",
"res_lon": 115.4501,
"res_lat": 31.3021,
"res_nm": "界岭水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181109000",
"town_nm": "木子店镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 374.7421,
"diff_value": -0.0412,
"trend": -1,
"is_has_data": "y",
"diff_rz": -3.4679,
"stcd": "4276",
"diff_rz_cd": 27.0054,
"max_cd_value": -0.0171,
"rz": 378.21,
"dt": "2025-05-20",
"diff5_value": -0.1442,
"trend5": -1,
"diff10_value": -0.1617,
"trend10": -1,
"diff30_value": -0.1121,
"trend30": -1
},
{
"cd": "5",
"cd_nm": "UPR2",
"ch": "0+085",
"res_reg_cd": "42118140011-A4",
"res_cd": "42118140038",
"res_lon": 115.01664,
"res_lat": 31.40681,
"res_nm": "蛤蟆岗水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181113000",
"town_nm": "乘马岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 161.9071,
"diff_value": -0.0246,
"trend": -1,
"is_has_data": "y",
"diff_rz": -3.6629,
"stcd": "4239",
"diff_rz_cd": 5.0554,
"max_cd_value": -0.0225,
"rz": 165.57,
"dt": "2025-05-20",
"diff5_value": -0.0704,
"trend5": -1,
"diff10_value": -0.0804,
"trend10": -1,
"diff30_value": -0.1242,
"trend30": -1
},
{
"cd": "1",
"cd_nm": "UPD1",
"ch": "0+145",
"res_reg_cd": "42118140015-A4",
"res_cd": "42118140042",
"res_lon": 114.84792,
"res_lat": 31.44124,
"res_nm": "黑龙潭水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181114000",
"town_nm": "顺河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 121.0708,
"diff_value": -0.028,
"trend": -1,
"is_has_data": "y",
"diff_rz": -4.0992,
"stcd": "5356",
"diff_rz_cd": 37.8067,
"max_cd_value": -0.0254,
"rz": 125.17,
"dt": "2025-05-20",
"diff5_value": -0.1067,
"trend5": -1,
"diff10_value": -0.115,
"trend10": -1,
"diff30_value": 0.3258,
"trend30": 1
},
{
"cd": "1",
"cd_nm": "UPD1",
"ch": "0+042",
"res_reg_cd": "42118140031-A4",
"res_cd": "42118140017",
"res_lon": 115.14545,
"res_lat": 30.95398,
"res_nm": "群建水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181107000",
"town_nm": "盐田河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 115.0463,
"diff_value": -0.0254,
"trend": -1,
"is_has_data": "y",
"diff_rz": -4.1337,
"stcd": "5331",
"diff_rz_cd": 11.2642,
"max_cd_value": -0.0238,
"rz": 119.18,
"dt": "2025-05-20",
"diff5_value": -0.0929,
"trend5": -1,
"diff10_value": -0.1241,
"trend10": -1,
"diff30_value": -0.1004,
"trend30": -1
},
{
"cd": "2",
"cd_nm": "UPD2",
"ch": "0+060",
"res_reg_cd": "42118140011-A4",
"res_cd": "42118140038",
"res_lon": 115.01664,
"res_lat": 31.40681,
"res_nm": "蛤蟆岗水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181113000",
"town_nm": "乘马岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 161.3038,
"diff_value": -0.0225,
"trend": -1,
"is_has_data": "y",
"diff_rz": -4.2662,
"stcd": "4239",
"diff_rz_cd": 5.0554,
"max_cd_value": -0.0225,
"rz": 165.57,
"dt": "2025-05-20",
"diff5_value": -0.085,
"trend5": -1,
"diff10_value": -0.1233,
"trend10": -1,
"diff30_value": -0.0695,
"trend30": -1
},
{
"cd": "3",
"cd_nm": "UPD3",
"ch": "0+080",
"res_reg_cd": "42118140023-A4",
"res_cd": "42118140033",
"res_lon": 114.99636,
"res_lat": 30.70309,
"res_nm": "刘家冲水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181111000",
"town_nm": "黄土岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 83.9746,
"diff_value": -0.0271,
"trend": -1,
"is_has_data": "y",
"diff_rz": -4.7254,
"stcd": "5385",
"diff_rz_cd": 29.575,
"max_cd_value": -0.0196,
"rz": 88.7,
"dt": "2025-05-20",
"diff5_value": -0.0717,
"trend5": -1,
"diff10_value": -0.0979,
"trend10": -1,
"diff30_value": -0.155,
"trend30": -1
},
{
"cd": "4",
"cd_nm": "UPR1",
"ch": "0+142",
"res_reg_cd": "42118140015-A4",
"res_cd": "42118140042",
"res_lon": 114.84792,
"res_lat": 31.44124,
"res_nm": "黑龙潭水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181114000",
"town_nm": "顺河镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 120.4183,
"diff_value": -0.0338,
"trend": -1,
"is_has_data": "y",
"diff_rz": -4.7517,
"stcd": "5356",
"diff_rz_cd": 37.8067,
"max_cd_value": -0.0254,
"rz": 125.17,
"dt": "2025-05-20",
"diff5_value": -0.1488,
"trend5": -1,
"diff10_value": -0.2259,
"trend10": -1,
"diff30_value": -0.2617,
"trend30": -1
},
{
"cd": "6",
"cd_nm": "UPR3",
"ch": "0+085",
"res_reg_cd": "42118140011-A4",
"res_cd": "42118140038",
"res_lon": 115.01664,
"res_lat": 31.40681,
"res_nm": "蛤蟆岗水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181113000",
"town_nm": "乘马岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 160.5146,
"diff_value": -0.0254,
"trend": -1,
"is_has_data": "y",
"diff_rz": -5.0554,
"stcd": "4239",
"diff_rz_cd": 5.0554,
"max_cd_value": -0.0225,
"rz": 165.57,
"dt": "2025-05-20",
"diff5_value": -0.0867,
"trend5": -1,
"diff10_value": -0.0787,
"trend10": -1,
"diff30_value": -0.0375,
"trend30": -1
},
{
"cd": "1",
"cd_nm": "UPD1",
"ch": "0+030",
"res_reg_cd": "42118140022-A4",
"res_cd": "42118140024",
"res_lon": 115.4501,
"res_lat": 31.3021,
"res_nm": "界岭水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181109000",
"town_nm": "木子店镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 372.9888,
"diff_value": -0.0233,
"trend": -1,
"is_has_data": "y",
"diff_rz": -5.2212,
"stcd": "4276",
"diff_rz_cd": 27.0054,
"max_cd_value": -0.0171,
"rz": 378.21,
"dt": "2025-05-20",
"diff5_value": -0.0862,
"trend5": -1,
"diff10_value": -0.1062,
"trend10": -1,
"diff30_value": -0.1783,
"trend30": -1
},
{
"cd": "3",
"cd_nm": "UPD3",
"ch": "0+100",
"res_reg_cd": "42118140022-A4",
"res_cd": "42118140024",
"res_lon": 115.4501,
"res_lat": 31.3021,
"res_nm": "界岭水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181109000",
"town_nm": "木子店镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "非病险水库",
"label": "2023高标准",
"value": 372.6217,
"diff_value": -0.0171,
"trend": -1,
"is_has_data": "y",
"diff_rz": -5.5883,
"stcd": "4276",
"diff_rz_cd": 27.0054,
"max_cd_value": -0.0171,
"rz": 378.21,
"dt": "2025-05-20",
"diff5_value": -0.0954,
"trend5": -1,
"diff10_value": -0.1379,
"trend10": -1,
"diff30_value": -0.235,
"trend30": -1
},
{
"cd": "1",
"cd_nm": "UPD1",
"ch": "0+095",
"res_reg_cd": "42118140020-A4",
"res_cd": "42118140032",
"res_lon": 115.13073,
"res_lat": 31.35489,
"res_nm": "鸡翅关水库",
"province_cd": "420000000000",
"province_nm": "湖北省",
"city_cd": "421100000000",
"city_nm": "黄冈市",
"county_cd": "421181000000",
"county_nm": "麻城市",
"town_cd": "421181111000",
"town_nm": "黄土岗镇",
"bas_guid": "鄂东五河片区",
"eng_scal": "小1型",
"danger_stat": "待除险加固",
"label": "2023高标准",
"value": 480.7392,
"diff_value": -0.0237,
"trend": -1,
"is_has_data": "y",
"diff_rz": -5.6708,
"stcd": "4151",
"diff_rz_cd": 14.6887,
"max_cd_value": -0.0108,
"rz": 486.41,
"dt": "2025-05-20",
"diff5_value": -0.0804,
"trend5": -1,
"diff10_value": -0.1033,
"trend10": -1,
"diff30_value": -0.0479,
"trend30": -1
}
]
function DrpReal({ style }) {
const [tab,setTab] = useState('1')
const dispatch = useDispatch();
return (
<PanelBox
style={style}
title="渗压监测"
color="green"
>
<TableContainer style={{ height: '100%' }}>
<Table size="small" stickyHeader>
<TableHead>
<TableRow>
<DpTableCell style={{ minWidth: '7rem' }} align="center">水库名称</DpTableCell>
<DpTableCell style={{ minWidth: '4rem' }} align="center">测点</DpTableCell>
<DpTableCell style={{ minWidth: '6rem' }} align="center">渗压水位</DpTableCell>
<DpTableCell style={{ minWidth: '9rem' }} align="center">监测时间</DpTableCell>
</TableRow>
</TableHead>
<TableBody>
{data2.map((row,index) => (
<DpTableRow key={row.stcd}>
<DpTableCell component="th" scope="row">
<div className="table-ellipsis cursor-pointer" onClick={() => {
const { res_lon:lgtd, res_lat:lttd } = row;
if (lgtd && lttd) {
dispatch.runtime.setCameraTarget({
center: [lgtd + 0.0019, lttd],
zoom: 15,
pitch: 60,
bearing: 0
});
}
}}>{row.res_nm}</div>
</DpTableCell>
<DpTableCell align="center">{row.cd_nm}</DpTableCell>
<DpTableCell align="center">{row.value}</DpTableCell>
<DpTableCell align="center">{row.dt}</DpTableCell>
</DpTableRow>
))}
</TableBody>
</Table>
</TableContainer>
</PanelBox>
)
}
export default DrpReal;

View File

@ -45,7 +45,7 @@ const ProcessChart = () => {
labelLine: {
show: true,
length: 10,
length2: 10,
length2: 1,
lineStyle: {
color: '#fff'
}

View File

@ -15,6 +15,7 @@ import { renderDrp } from '../../../../utils/renutils';
import XcCard from './xcCard'
import Charts from './charts'
import { Select, MenuItem } from '@material-ui/core/index'
import config from '../../../../config';
const data1 = [
{
@ -1698,37 +1699,6 @@ const data4 = [
]
const data = [
{
"guid": "42118120003",
"code": "",
"name": "浮桥河水库-汛前检查",
"resRegCode": "42000020030-A4",
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lon": "115.068090",
"lat": "31.026170",
'username': '熊杰',
taskType: '坝体表面裂缝',
tm: '2025-06-02 00:08:00',
status: '已处理'
},
{
"guid": "42118120003",
"code": "",
"name": "浮桥河水库-特别巡查",
"resRegCode": "42000020030-A4",
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lon": "115.068090",
"lat": "31.026170",
'username': '白斌',
taskType: '坝基、坝肩渗漏',
tm: '2025-06-02 00:09:00',
status: '已处理'
},
{
"guid": "42118120003",
"code": "",
@ -1737,8 +1707,8 @@ const data = [
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lon": "115.068090",
"lat": "31.026170",
"lgtd": "115.066667",
"lttd": "31.016667",
'username': '余静',
taskType: '混凝土护坡开裂',
tm: '2025-06-02 00:10:00',
@ -1752,8 +1722,8 @@ const data = [
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lon": "115.068090",
"lat": "31.026170",
"lgtd": "115.120278",
"lttd": "31.183611",
'username': '周真',
taskType: '坝体表面裂缝',
tm: '2025-06-02 00:10:00',
@ -1767,8 +1737,8 @@ const data = [
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lon": "115.068090",
"lat": "31.026170",
"lgtd": "115.057222",
"lttd": "31.110833",
'username': '陈发',
taskType: '混凝土护坡开裂',
tm: '2025-06-02 00:10:00',
@ -1784,7 +1754,19 @@ function DrpReal({ style }) {
const onChange = (event) => {
const value = event.target.value;
setDimension(value);
}
}
const jumpTo = (record) => {
const { lgtd, lttd } = record;
const lgtdNum = Number(lgtd) + 0.0019;
const lttdNum = Number(lttd)
if (lgtdNum && lttdNum) {
dispatch.runtime.setCameraTarget({
center: [lgtdNum, lttdNum + config.poiPositionOffsetY.hd],
zoom: config.poiPositionZoom.hd,
pitch: config.poiPitch,
});
}
}
return (
<PanelBox
style={style}
@ -1802,7 +1784,7 @@ function DrpReal({ style }) {
<div className='title-yb'>巡检问题</div>
</div>
</div>
<div style={{ padding: 10,display:'flex',alignItems:'center',justifyContent:'space-around' }}>
<div style={{ padding:'0 10px',display:'flex',alignItems:'center',justifyContent:'space-around' }}>
<Charts />
<img src={`${process.env.PUBLIC_URL}/assets/pietl.jpg`} alt="" style={{width:100,height:100}} />
</div>
@ -1817,7 +1799,7 @@ function DrpReal({ style }) {
</TableHead>
<TableBody>
{data.map((row, index) => (
<DpTableRow key={row.stcd}>
<DpTableRow key={row.stcd} onClick={() => jumpTo(row)}>
<DpTableCell align="center">
<div
className="table-ellipsis cursor-pointer"
@ -1830,7 +1812,7 @@ function DrpReal({ style }) {
</TableBody>
</Table>
</TableContainer>
<div className='skyb-box' style={{marginTop:30}}>
<div className='skyb-box' style={{marginTop:20}}>
<div className='rain-yb'>
<div className='title-yb'>数据统计</div>
</div>

View File

@ -16,7 +16,21 @@ import XcCard from './xcCard'
import config from '../../../../config';
const data = [
{
"guid": "42118120003",
"code": "",
"name": "明山水库-日常管理",
"resRegCode": "42000020030-A4",
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lgtd": "115.066667",
"lttd": "31.016667",
'username': '余静',
taskType: '特别巡查',
tm: '2025-06-02 00:10:00',
status: '未完成'
},
{
"guid": "42118120003",
"code": "",
@ -25,8 +39,8 @@ const data = [
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lgtd": "115.068090",
"lttd": "31.026170",
"lgtd": "114.875",
"lttd": "31.166667",
'username': '熊杰',
taskType: '日常巡查',
tm: '2025-06-02 00:08:00',
@ -47,21 +61,7 @@ const data = [
tm: '2025-06-02 00:09:00',
status: '已完成'
},
{
"guid": "42118120003",
"code": "",
"name": "明山水库-日常管理",
"resRegCode": "42000020030-A4",
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lgtd": "115.068090",
"lttd": "31.026170",
'username': '余静',
taskType: '特别巡查',
tm: '2025-06-02 00:10:00',
status: '未完成'
},
{
"guid": "42118120003",
"code": "",
@ -70,8 +70,8 @@ const data = [
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lgtd": "115.068090",
"lttd": "31.026170",
"lgtd": "115.120278",
"lttd": "31.183611",
'username': '周真',
taskType: '特别巡查',
tm: '2025-06-02 00:10:00',
@ -85,8 +85,8 @@ const data = [
"adName": "白果镇",
"engScal": "大2型",
"place": "湖北省-黄冈市-麻城市-白果镇",
"lgtd": "115.068090",
"lttd": "31.026170",
"lgtd": "115.057222",
"lttd": "31.110833",
'username': '陈发',
taskType: '特别巡查',
tm: '2025-06-02 00:10:00',
@ -102,9 +102,11 @@ function DrpReal({ style }) {
}
const jumpTo = (record) => {
const { lgtd, lttd } = record;
if (lgtd && lttd) {
const lgtdNum = Number(lgtd) + 0.0019;
const lttdNum = Number(lttd)
if (lgtdNum && lttdNum) {
dispatch.runtime.setCameraTarget({
center: [lgtd, lttd + config.poiPositionOffsetY.hd],
center: [lgtdNum, lttdNum + config.poiPositionOffsetY.hd],
zoom: config.poiPositionZoom.hd,
pitch: config.poiPitch,
});
@ -144,7 +146,7 @@ function DrpReal({ style }) {
<TableBody>
{data.map((row, index) => (
<DpTableRow key={row.stcd}
// onClick={() => jumpTo(row)}
onClick={() => jumpTo(row)}
>
<DpTableCell align="center">
<div
@ -164,7 +166,7 @@ function DrpReal({ style }) {
</TableBody>
</Table>
</TableContainer>
<div className='skyb-box' style={{ marginTop: 50 }}>
<div className='skyb-box' style={{ marginTop: 10 }}>
<div className='rain-yb'>
<div className='title-yb'>数据统计</div>
</div>