diff --git a/public/assets/sp1.png b/public/assets/sp1.png new file mode 100644 index 0000000..da554fe Binary files /dev/null and b/public/assets/sp1.png differ diff --git a/public/assets/sp2.png b/public/assets/sp2.png new file mode 100644 index 0000000..b5b9879 Binary files /dev/null and b/public/assets/sp2.png differ diff --git a/public/assets/ssflow.png b/public/assets/ssflow.png new file mode 100644 index 0000000..4d4fd60 Binary files /dev/null and b/public/assets/ssflow.png differ diff --git a/public/assets/zhdbl.jpg b/public/assets/zhdbl.jpg new file mode 100644 index 0000000..faa3558 Binary files /dev/null and b/public/assets/zhdbl.jpg differ diff --git a/public/mapbox/sprite@2x.json b/public/mapbox/sprite@2x.json index c88673f..75de298 100644 --- a/public/mapbox/sprite@2x.json +++ b/public/mapbox/sprite@2x.json @@ -394,7 +394,15 @@ "水厂": { "width": 32, "height": 32, - "x": 0, + "x": -3, + "y": 315, + "pixelRatio": 0.6, + "visible": true + }, + "水厂q": { + "width": 32, + "height": 32, + "x": 28, "y": 315, "pixelRatio": 0.6, "visible": true @@ -406,5 +414,13 @@ "y": 0, "pixelRatio": 0.6, "visible": true - } + } , + "水源地q": { + "width": 32, + "height": 32, + "x": 59, + "y": 315, + "pixelRatio": 0.6, + "visible": true + } } \ No newline at end of file diff --git a/public/mapbox/sprite@2x.png b/public/mapbox/sprite@2x.png index 5384240..96e20c7 100644 Binary files a/public/mapbox/sprite@2x.png and b/public/mapbox/sprite@2x.png differ diff --git a/src/models/map/index.js b/src/models/map/index.js index d33fbf5..5425cf3 100644 --- a/src/models/map/index.js +++ b/src/models/map/index.js @@ -413,7 +413,11 @@ const map = { RoadLayer: true, RivlLayer: true, ShuichangLayer:true, + ShuichangQLayer: true, + ShuiyuandiQLayer:true, ShuizhiLayer:true, + ShuiyuandiLayer: true, + }; Object.keys(DCPJ_TYPES).forEach(key => { layerVisible['Dcpj_' + key + 'Layer'] = false; @@ -449,6 +453,21 @@ const map = { Object.keys(DCPJ_TYPES).forEach(key => { layerVisible['Dcpj_' + key + 'Layer'] = false; }); + }else if ( id === 307) { + layerVisible = { + RealDrpLayer: false, + RealHDLayer: true, + RealSkLayer: true, + BxSkLayer: false, + FzdxLayer: false, + WataLayer: false, + AdcdLayer: true, + RoadLayer: true, + RivlLayer: true, + }; + Object.keys(DCPJ_TYPES).forEach(key => { + layerVisible['Dcpj_' + key + 'Layer'] = false; + }); } else if (id == 501) { layerVisible = { RealDrpLayer: true, diff --git a/src/models/map/layout.js b/src/models/map/layout.js index 82bd374..4245c64 100644 --- a/src/models/map/layout.js +++ b/src/models/map/layout.js @@ -124,8 +124,8 @@ export default function calcLayout(view, rightStack, hidePanels) { } else if (view === 302) { left = [ { key: '天气' }, - { key: '进水监测',style: { height: '13rem'} }, - { key: '出水监测',style: { height: '16rem'} }, + { key: '水厂水质监测',style: { height: '16rem'} }, + { key: '报警分析',style: { height: '28rem'} }, ]; } else if (view === 303) { left = [ @@ -151,7 +151,8 @@ export default function calcLayout(view, rightStack, hidePanels) { } else if (view === 307) { left = [ - { key: '预案库管理', style: { height: '50rem' } }, + { key: '应急事件', style: { height: '20rem'} }, + { key: '应急指挥调度', style: { height: '30rem'} }, ]; // leftFullHeight = true; }else if (view === 501) { @@ -334,8 +335,10 @@ export default function calcLayout(view, rightStack, hidePanels) { } else if (view === 302) { right = [ // { key: '警报' }, - { key: '水厂水质监测',style: { height: '16rem'} }, - { key: '报警分析',style: { height: '18rem'} }, + { key: '预警列表',style: { height: '20rem'} }, + // { key: '进水监测',style: { height: '13rem'} }, + // { key: '出水监测',style: { height: '16rem'} }, + ]; } else if (view === 303) { right = [ @@ -359,8 +362,8 @@ export default function calcLayout(view, rightStack, hidePanels) { ]; rightFullHeight = true; }else if(view === 307) { - right = [ - { key: '应急指挥调度', style: { height: '40rem'} }, + right = [ + { key: '预案库管理', style: { height: '47rem' } }, ]; // rightFullHeight = true; } diff --git a/src/views/Home/InfoDlg/HDStDlg/index.js b/src/views/Home/InfoDlg/HDStDlg/index.js index 77c26f6..971e4e3 100644 --- a/src/views/Home/InfoDlg/HDStDlg/index.js +++ b/src/views/Home/InfoDlg/HDStDlg/index.js @@ -12,6 +12,7 @@ import DpCloseButton from '../../../../layouts/mui/DpCloseButton'; import DrpSearch from '../../components/DrpSearch'; import DrpStAround from '../../components/DrpStAround'; import ZrrPlan from './zrrPlan' +import Sjjg from '../../components/Sksjjg'; function HDStDlg({ record, onClose }) { @@ -34,6 +35,7 @@ function HDStDlg({ record, onClose }) { + {record.events && } @@ -42,6 +44,8 @@ function HDStDlg({ record, onClose }) { {value === 1 && } {value === 2 && } {value === 3 && } + {value === 4 && } + diff --git a/src/views/Home/InfoDlg/ShuiChangDlg/Shuizhijc.js b/src/views/Home/InfoDlg/ShuiChangDlg/Shuizhijc.js new file mode 100644 index 0000000..82d37e4 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiChangDlg/Shuizhijc.js @@ -0,0 +1,280 @@ +import { Grid, withStyles, TableCell } from '@material-ui/core'; +import React from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import PanelBox from '../../components/PanelBox'; +import { makeStyles } from '@material-ui/core/styles'; +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 { DatePicker } from 'antd'; +import moment from 'moment'; +import ReactECharts from 'echarts-for-react'; + + +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); +function SkInfo() { + const classes = useStyles(); + const data = [ + { time: '06-08 12:00', turbidity: 0.3, chlorine: 0.5, ph: 7.2 }, + { time: '06-08 11:00', turbidity: 0.2, chlorine: 0.4, ph: 7.1 }, + { time: '06-08 10:00', turbidity: 0.4, chlorine: 0.6, ph: 7.3 }, + { time: '06-08 09:00', turbidity: 0.3, chlorine: 0.5, ph: 7.2 }, + { time: '06-08 08:00', turbidity: 0.2, chlorine: 0.4, ph: 7.0 }, + { time: '06-08 07:00', turbidity: 0.4, chlorine: 0.5, ph: 7.4 }, + { time: '06-08 06:00', turbidity: 0.3, chlorine: 0.6, ph: 7.2 }, + { time: '06-08 05:00', turbidity: 0.2, chlorine: 0.5, ph: 7.1 }, + { time: '06-08 04:00', turbidity: 0.3, chlorine: 0.4, ph: 7.3 }, + { time: '06-08 03:00', turbidity: 0.4, chlorine: 0.5, ph: 7.2 }, + { time: '06-08 02:00', turbidity: 0.3, chlorine: 0.6, ph: 7.1 }, + { time: '06-08 01:00', turbidity: 0.2, chlorine: 0.5, ph: 7.3 }, + { time: '06-08 00:00', turbidity: 0.3, chlorine: 0.4, ph: 7.2 }, + { time: '06-07 23:00', turbidity: 0.4, chlorine: 0.5, ph: 7.1 }, + { time: '06-07 22:00', turbidity: 0.3, chlorine: 0.6, ph: 7.3 }, + { time: '06-07 21:00', turbidity: 0.2, chlorine: 0.5, ph: 7.2 }, + { time: '06-07 20:00', turbidity: 0.3, chlorine: 0.4, ph: 7.1 }, + { time: '06-07 19:00', turbidity: 0.4, chlorine: 0.5, ph: 7.3 }, + { time: '06-07 18:00', turbidity: 0.3, chlorine: 0.6, ph: 7.2 }, + { time: '06-07 17:00', turbidity: 0.2, chlorine: 0.5, ph: 7.1 }, + { time: '06-07 16:00', turbidity: 0.3, chlorine: 0.4, ph: 7.3 }, + { time: '06-07 15:00', turbidity: 0.4, chlorine: 0.5, ph: 7.2 }, + { time: '06-07 14:00', turbidity: 0.3, chlorine: 0.6, ph: 7.1 }, + { time: '06-07 13:00', turbidity: 0.2, chlorine: 0.5, ph: 7.3 }, + { time: '06-07 12:00', turbidity: 0.3, chlorine: 0.4, ph: 7.2 } + ]; +const option = { + + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'line' + } + }, + legend: { + data: ['PH值', '浊度(NTU)', '余氯(mg/L)'], + textStyle: { + color: '#fff' + } + }, + grid: { + left: '10%', + right: '10%', + bottom: '0%', + containLabel: true + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: data.map(item => item.time), + axisLabel: { + color: '#fff', + rotate: 45, + interval: 1, + fontSize: 14 + }, + axisLine: { + lineStyle: { + color: '#fff' + } + }, + splitLine: { + show: true, + lineStyle: { + color: 'rgba(255, 255, 255, 0.1)', + type: 'dashed' + } + } + }, + yAxis: [ + { + name: 'PH值', + type: 'value', + position: 'left', + offset: 0, + nameTextStyle: { + color: '#fac858' + }, + axisLabel: { + color: '#fac858' + }, + axisLine: { + lineStyle: { + color: '#fac858' + } + }, + splitLine: { + lineStyle: { + color: 'rgba(255, 255, 255, 0.1)', + type: 'dashed' + } + } + }, + { + name: '浊度(NTU)', + type: 'value', + position: 'right', + offset: 60, + nameTextStyle: { + color: '#ee6666' + }, + axisLabel: { + color: '#ee6666' + }, + axisLine: { + lineStyle: { + color: '#ee6666' + } + }, + splitLine: { + show: false + } + }, + { + name: '余氯(mg/L)', + type: 'value', + position: 'right', + offset: 0, + nameTextStyle: { + color: '#73c0de' + }, + axisLabel: { + color: '#73c0de' + }, + axisLine: { + lineStyle: { + color: '#73c0de' + } + }, + splitLine: { + show: false + } + } + ], + series: [ + { + name: 'PH值', + type: 'line', + smooth: true, + yAxisIndex: 0, + data: data.map(item => item.ph), + itemStyle: { + color: '#fac858' + } + }, + { + name: '浊度(NTU)', + type: 'line', + smooth: true, + yAxisIndex: 1, + data: data.map(item => item.turbidity), + itemStyle: { + color: '#ee6666' + } + }, + { + name: '余氯(mg/L)', + type: 'line', + smooth: true, + yAxisIndex: 2, + data: data.map(item => item.chlorine), + itemStyle: { + color: '#73c0de' + } + } + ] + }; + return ( +
+
+
+
+ +
+ +
+ + + + + 时间 + 浊度(NTU) + 余氯(gml/L) + PH值 + + + + {data.map((row) => ( + + +
{ }}>{row.time}
+
+ {row.turbidity} + {row.chlorine} + {row.ph} +
+ ))} +
+
+
+
+
+ +
+
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/InfoDlg/ShuiChangDlg/index.js b/src/views/Home/InfoDlg/ShuiChangDlg/index.js new file mode 100644 index 0000000..8cf2a18 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiChangDlg/index.js @@ -0,0 +1,58 @@ +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 { AppBar, Tab, Tabs } from '@material-ui/core'; +import DrpSearch from '../../components/DrpSearch'; +import DpTabs from '../../../../layouts/mui/DpTabs'; +import DpTab from '../../../../layouts/mui/DpTab'; +import RzSearch from '../../components/RzSearch'; +import SkImgSearch from '../../components/SkImgSearch'; +import DpAppBar from '../../../../layouts/mui/DpAppBar'; +import ShuichangInfo from '../../components/ShuichangInfo'; +import SkPlan from '../../components/SkInfo/SkPlan'; +import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop'; +import DpCloseButton from '../../../../layouts/mui/DpCloseButton'; +import ZrrPlan from './zrrPlan' +import Shuizhijc from './Shuizhijc' +import Jianceflow from './jianceflow' +import Spjk from './spjk' +import './index.less' +function SkDlg({ record, onClose }) { + const [value, setValue] = React.useState(0); + + return ( + +
+ + + setValue(v)}> + + + + + + + +
+ {value === 0 && } + {value === 1 && } + {value === 2 && } + {value === 3 && } +
+ +
+
+
+ ) +} + +export default React.memo(SkDlg); diff --git a/src/views/Home/InfoDlg/ShuiChangDlg/index.less b/src/views/Home/InfoDlg/ShuiChangDlg/index.less new file mode 100644 index 0000000..e3b51dc --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiChangDlg/index.less @@ -0,0 +1,124 @@ + + + .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; + } + } + + .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; +} \ No newline at end of file diff --git a/src/views/Home/InfoDlg/ShuiChangDlg/jianceflow.js b/src/views/Home/InfoDlg/ShuiChangDlg/jianceflow.js new file mode 100644 index 0000000..dfaa6a8 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiChangDlg/jianceflow.js @@ -0,0 +1,86 @@ +import { Grid, withStyles, TableCell, Box, + Button, + ButtonGroup, } from '@material-ui/core'; +import React,{useState} from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import PanelBox from '../../components/PanelBox'; +import { makeStyles } from '@material-ui/core/styles'; +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 { DatePicker } from 'antd'; +import moment from 'moment'; +import ReactECharts from 'echarts-for-react'; + + +const { RangePicker } = DatePicker; +const useStyles = makeStyles((theme)=>({ + tableContainer: { + background: '#182d42', // 设置表格容器的背景颜色 + }, + item: { + '& .MuiGrid-item': { + '& [class*="makeStyles-title"]': { + color: '#fff', + backgroundColor: '#104175', + }, + }, + }, + searchRow: { + display: 'flex', + gap: theme.spacing(2), + alignItems: 'center', + flexWrap: 'wrap', + marginBottom:10 + }, + buttonGroup: { + '& .MuiButton-root': { + color: '#fff', + borderColor: 'rgba(255, 255, 255, 0.3)', + '&.active': { + backgroundColor: '#2196f3', + borderColor: '#2196f3' + } + } + }, +})); + +function SkInfo() { + const classes = useStyles(); + const [activeType, setActiveType] = useState('daily'); + const [visible, setVisible] = useState(false) + const handleTypeChange = (type) => { + setActiveType(type); + }; + return ( +
+ + + + + + + + +
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/InfoDlg/ShuiChangDlg/spjk.js b/src/views/Home/InfoDlg/ShuiChangDlg/spjk.js new file mode 100644 index 0000000..830fde7 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiChangDlg/spjk.js @@ -0,0 +1,89 @@ +import { Grid, withStyles, TableCell, Box, + Button, + ButtonGroup, } from '@material-ui/core'; +import React,{useState} from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import PanelBox from '../../components/PanelBox'; +import { makeStyles } from '@material-ui/core/styles'; +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 { DatePicker } from 'antd'; +import moment from 'moment'; +import ReactECharts from 'echarts-for-react'; + + +const { RangePicker } = DatePicker; +const useStyles = makeStyles((theme)=>({ + tableContainer: { + background: '#182d42', // 设置表格容器的背景颜色 + }, + item: { + '& .MuiGrid-item': { + '& [class*="makeStyles-title"]': { + color: '#fff', + backgroundColor: '#104175', + }, + }, + }, + searchRow: { + display: 'flex', + gap: theme.spacing(2), + alignItems: 'center', + flexWrap: 'wrap', + marginBottom:10 + }, + buttonGroup: { + '& .MuiButton-root': { + color: '#fff', + borderColor: 'rgba(255, 255, 255, 0.3)', + '&.active': { + backgroundColor: '#2196f3', + borderColor: '#2196f3' + } + } + }, +})); + +function SkInfo() { + const classes = useStyles(); + const [activeType, setActiveType] = useState('daily'); + const [visible, setVisible] = useState(false) + const handleTypeChange = (type) => { + setActiveType(type); + }; + return ( +
+ + + + + + + { + activeType == 'daily' ? : + + } + +
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/InfoDlg/ShuiChangDlg/zrrPlan.js b/src/views/Home/InfoDlg/ShuiChangDlg/zrrPlan.js new file mode 100644 index 0000000..1a23af1 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiChangDlg/zrrPlan.js @@ -0,0 +1,56 @@ +import { Grid } from '@material-ui/core'; +import React from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import 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'; + + +function SkInfo() { + + const data = [ + { name:'行政责任人', dm:'郑家豪', hfsw:'龟山镇人民政府', hfll:'组织委员', tm:'05-29 14:00' }, + { name:'巡查责任人', dm:'熊中良', hfsw:'花桥河村', hfll:'书记', tm:'05-29 14:30' }, + { name:'技术责任人', dm:'余健', hfsw:'农业农村服务中心', hfll:'副主任', tm:'05-29 15:00' }, + ] + + return ( +
+ + + + + 责任人 + 姓名 + 单位 + 职务 + + + + {data.map((row) => ( + + +
{}}>{row.name}
+
+ {row.dm} + {row.hfsw} + {row.hfll} +
+ ))} +
+
+
+
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/InfoDlg/ShuiyuandiDlg/Shuizhijc.js b/src/views/Home/InfoDlg/ShuiyuandiDlg/Shuizhijc.js new file mode 100644 index 0000000..ad80c08 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiyuandiDlg/Shuizhijc.js @@ -0,0 +1,291 @@ +import { Grid, withStyles, TableCell } from '@material-ui/core'; +import React from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import PanelBox from '../../components/PanelBox'; +import { makeStyles } from '@material-ui/core/styles'; +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 { DatePicker } from 'antd'; +import moment from 'moment'; +import ReactECharts from 'echarts-for-react'; + + +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); +function SkInfo() { + const classes = useStyles(); + const data = [ + { time: '06-07 12:00', turbidity: 28.5, ammoniaNitrogen: 0.085, ph: 7.2, totalPhosphorus: 0.075 }, + { time: '06-07 14:00', turbidity: 29.8, ammoniaNitrogen: 0.092, ph: 7.4, totalPhosphorus: 0.082 }, + { time: '06-07 16:00', turbidity: 30.2, ammoniaNitrogen: 0.088, ph: 7.1, totalPhosphorus: 0.078 }, + { time: '06-07 18:00', turbidity: 31.5, ammoniaNitrogen: 0.095, ph: 6.9, totalPhosphorus: 0.085 }, + { time: '06-07 20:00', turbidity: 30.8, ammoniaNitrogen: 0.089, ph: 7.3, totalPhosphorus: 0.079 }, + { time: '06-07 22:00', turbidity: 29.5, ammoniaNitrogen: 0.087, ph: 7.5, totalPhosphorus: 0.073 }, + { time: '06-08 00:00', turbidity: 28.9, ammoniaNitrogen: 0.083, ph: 7.2, totalPhosphorus: 0.071 }, + { time: '06-08 02:00', turbidity: 27.8, ammoniaNitrogen: 0.078, ph: 7.0, totalPhosphorus: 0.068 }, + { time: '06-08 04:00', turbidity: 28.2, ammoniaNitrogen: 0.082, ph: 7.1, totalPhosphorus: 0.072 }, + { time: '06-08 06:00', turbidity: 29.1, ammoniaNitrogen: 0.086, ph: 7.3, totalPhosphorus: 0.076 }, + { time: '06-08 08:00', turbidity: 30.5, ammoniaNitrogen: 0.091, ph: 7.4, totalPhosphorus: 0.081 }, + { time: '06-08 10:00', turbidity: 31.2, ammoniaNitrogen: 0.093, ph: 7.2, totalPhosphorus: 0.083 }, + { time: '06-08 12:00', turbidity: 30.1, ammoniaNitrogen: 0.088, ph: 7.3, totalPhosphorus: 0.077 } + ]; +const option = { + + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross', + label: { + backgroundColor: '#6a7985' + } + } + }, + legend: { + data: ['浊度', '氨氮', 'PH', '总磷'], + textStyle: { + color: '#fff' + }, + top: 30 + }, + grid: { + left: '3%', + right: '15%', + bottom: '3%', + containLabel: true + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: data.map(item => item.time), + axisLabel: { + color: '#fff', + interval: 2, + rotate: 0 + } + }, + yAxis: [ + { + name: 'PH', + type: 'value', + position: 'left', + min: 6, + max: 9, + interval: 1, + axisLine: { + show: true, + lineStyle: { + color: '#675bba' + } + }, + axisLabel: { + color: '#fff' + } + }, + { + name: '浊度(NTU)', + type: 'value', + position: 'right', + offset: 40, + min: 0, + max: 32, + interval: 8, + axisLine: { + show: true, + lineStyle: { + color: '#5470c6' + } + }, + axisLabel: { + color: '#fff' + } + }, + { + name: '氨氮(mg/L)', + type: 'value', + position: 'right', + offset: 100, + min: 0, + max: 0.1, + interval: 0.025, + axisLine: { + show: true, + lineStyle: { + color: '#91cc75' + } + }, + axisLabel: { + color: '#fff' + } + }, + { + name: '总磷(mg/L)', + type: 'value', + position: 'right', + offset: 165, + min: 0, + max: 0.1, + interval: 0.025, + axisLine: { + show: true, + lineStyle: { + color: '#fac858' + } + }, + axisLabel: { + color: '#fff' + } + } + ], + series: [ + { + name: 'PH', + type: 'line', + yAxisIndex: 0, + data: data.map(item => item.ph), + smooth: true, + lineStyle: { + color: '#675bba' + }, + itemStyle: { + color: '#675bba' + } + }, + { + name: '浊度', + type: 'line', + yAxisIndex: 1, + data: data.map(item => item.turbidity), + smooth: true, + lineStyle: { + color: '#5470c6' + }, + itemStyle: { + color: '#5470c6' + } + }, + { + name: '氨氮', + type: 'line', + yAxisIndex: 2, + data: data.map(item => item.ammoniaNitrogen), + smooth: true, + lineStyle: { + color: '#91cc75' + }, + itemStyle: { + color: '#91cc75' + } + }, + { + name: '总磷', + type: 'line', + yAxisIndex: 3, + data: data.map(item => item.totalPhosphorus), + smooth: true, + lineStyle: { + color: '#fac858' + }, + itemStyle: { + color: '#fac858' + } + } + ] + }; + return ( +
+
+
+
+ +
+ +
+ + + + + 时间 + 浊度(NTU) + 氨氮(gml/L) + PH值 + 总磷(gml/L) + + + + {data.map((row) => ( + + +
{ }}>{row.time}
+
+ {row.turbidity} + {row.ammoniaNitrogen} + {row.ph} + {row.totalPhosphorus} +
+ ))} +
+
+
+
+
+ +
+
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/InfoDlg/ShuiyuandiDlg/index.js b/src/views/Home/InfoDlg/ShuiyuandiDlg/index.js new file mode 100644 index 0000000..ed274b0 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiyuandiDlg/index.js @@ -0,0 +1,58 @@ +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 { AppBar, Tab, Tabs } from '@material-ui/core'; +import DrpSearch from '../../components/DrpSearch'; +import DpTabs from '../../../../layouts/mui/DpTabs'; +import DpTab from '../../../../layouts/mui/DpTab'; +import RzSearch from '../../components/RzSearch'; +import SkImgSearch from '../../components/SkImgSearch'; +import DpAppBar from '../../../../layouts/mui/DpAppBar'; +import ShuiyuandiInfo from '../../components/ShuiyuandiInfo'; +import SkPlan from '../../components/SkInfo/SkPlan'; +import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop'; +import DpCloseButton from '../../../../layouts/mui/DpCloseButton'; +import ZrrPlan from './zrrPlan' +import Shuizhijc from './Shuizhijc' +import Jianceflow from './jianceflow' +import Spjk from './spjk' +import './index.less' +function SkDlg({ record, onClose }) { + const [value, setValue] = React.useState(0); + + return ( + +
+ + + setValue(v)}> + + + + + + + +
+ {value === 0 && } + {value === 1 && } + {value === 2 && } + {value === 3 && } +
+ +
+
+
+ ) +} + +export default React.memo(SkDlg); diff --git a/src/views/Home/InfoDlg/ShuiyuandiDlg/index.less b/src/views/Home/InfoDlg/ShuiyuandiDlg/index.less new file mode 100644 index 0000000..d3fe0ef --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiyuandiDlg/index.less @@ -0,0 +1,124 @@ + + + .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; + } + } + + .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; +} \ No newline at end of file diff --git a/src/views/Home/InfoDlg/ShuiyuandiDlg/jianceflow.js b/src/views/Home/InfoDlg/ShuiyuandiDlg/jianceflow.js new file mode 100644 index 0000000..2b6749d --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiyuandiDlg/jianceflow.js @@ -0,0 +1,122 @@ +import React from 'react'; +import ReactECharts from 'echarts-for-react'; + +const WaterLevelChart = () => { + const generateData = () => { + const data = []; + const startTime = new Date('2023-06-08T00:00:00'); + const endTime = new Date('2023-06-08T14:00:00'); + let currentTime = new Date(startTime); + + while (currentTime <= endTime) { + const timeString = currentTime.toLocaleString('zh-CN', { + hour12: false, + hour: '2-digit', + minute: '2-digit' + }); + // 生成一个接近500的固定值 + data.push({ + time: timeString, + value: 495 + }); + + currentTime.setHours(currentTime.getHours() + 1); + } + return data; + }; + + const data = generateData(); + + const option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'line' + } + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + top: '15%', + containLabel: true + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: data.map(item => item.time), + axisLine: { + lineStyle: { + color: '#999' + } + }, + axisLabel: { + color: '#fff', + fontSize: 12 + }, + splitLine: { + show: false + } + }, + yAxis: { + type: 'value', + name: '水位(m)', + nameTextStyle: { + color: '#fff' + }, + min: 0, + max: 500, + interval: 100, + axisLine: { + show: true, + lineStyle: { + color: '#999' + } + }, + axisLabel: { + color: '#fff', + fontSize: 12 + }, + splitLine: { + show: true, + lineStyle: { + type: 'dashed', + color: '#DDD' + } + } + }, + series: [ + { + name: '水位', + type: 'line', + data: data.map(item => item.value), + smooth: true, + symbol: 'none', + lineStyle: { + color: '#409EFF', + width: 2 + }, + areaStyle: { + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, + color: 'rgba(64,158,255,0.2)' + }, { + offset: 1, + color: 'rgba(64,158,255,0)' + }] + } + } + } + ] + }; + + return ; +}; + +export default WaterLevelChart; \ No newline at end of file diff --git a/src/views/Home/InfoDlg/ShuiyuandiDlg/spjk.js b/src/views/Home/InfoDlg/ShuiyuandiDlg/spjk.js new file mode 100644 index 0000000..8b82a51 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiyuandiDlg/spjk.js @@ -0,0 +1,85 @@ +import { Grid, withStyles, TableCell, Box, + Button, + ButtonGroup, } from '@material-ui/core'; +import React,{useState} from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import PanelBox from '../../components/PanelBox'; +import { makeStyles } from '@material-ui/core/styles'; +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 { DatePicker } from 'antd'; +import moment from 'moment'; +import ReactECharts from 'echarts-for-react'; + + +const { RangePicker } = DatePicker; +const useStyles = makeStyles((theme)=>({ + tableContainer: { + background: '#182d42', // 设置表格容器的背景颜色 + }, + item: { + '& .MuiGrid-item': { + '& [class*="makeStyles-title"]': { + color: '#fff', + backgroundColor: '#104175', + }, + }, + }, + searchRow: { + display: 'flex', + gap: theme.spacing(2), + alignItems: 'center', + flexWrap: 'wrap', + marginBottom:10 + }, + buttonGroup: { + '& .MuiButton-root': { + color: '#fff', + borderColor: 'rgba(255, 255, 255, 0.3)', + '&.active': { + backgroundColor: '#2196f3', + borderColor: '#2196f3' + } + } + }, +})); + +function SkInfo() { + const classes = useStyles(); + const [activeType, setActiveType] = useState('daily'); + const [visible, setVisible] = useState(false) + const handleTypeChange = (type) => { + setActiveType(type); + }; + return ( +
+ + + + + + + +
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/InfoDlg/ShuiyuandiDlg/zrrPlan.js b/src/views/Home/InfoDlg/ShuiyuandiDlg/zrrPlan.js new file mode 100644 index 0000000..1a23af1 --- /dev/null +++ b/src/views/Home/InfoDlg/ShuiyuandiDlg/zrrPlan.js @@ -0,0 +1,56 @@ +import { Grid } from '@material-ui/core'; +import React from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import 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'; + + +function SkInfo() { + + const data = [ + { name:'行政责任人', dm:'郑家豪', hfsw:'龟山镇人民政府', hfll:'组织委员', tm:'05-29 14:00' }, + { name:'巡查责任人', dm:'熊中良', hfsw:'花桥河村', hfll:'书记', tm:'05-29 14:30' }, + { name:'技术责任人', dm:'余健', hfsw:'农业农村服务中心', hfll:'副主任', tm:'05-29 15:00' }, + ] + + return ( +
+ + + + + 责任人 + 姓名 + 单位 + 职务 + + + + {data.map((row) => ( + + +
{}}>{row.name}
+
+ {row.dm} + {row.hfsw} + {row.hfll} +
+ ))} +
+
+
+
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/InfoDlg/SkDlg/index.js b/src/views/Home/InfoDlg/SkDlg/index.js index ba78205..0beae94 100644 --- a/src/views/Home/InfoDlg/SkDlg/index.js +++ b/src/views/Home/InfoDlg/SkDlg/index.js @@ -15,6 +15,7 @@ import SkPlan from '../../components/SkInfo/SkPlan'; import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop'; import DpCloseButton from '../../../../layouts/mui/DpCloseButton'; import ZrrPlan from './zrrPlan' +import Sjjg from '../../components/Sksjjg'; function SkDlg({ record, onClose }) { @@ -39,6 +40,7 @@ function SkDlg({ record, onClose }) { + {record.events && } @@ -49,6 +51,7 @@ function SkDlg({ record, onClose }) { {value === 3 && } {value === 4 && } {value === 5 && } + {value === 6 && } diff --git a/src/views/Home/InfoDlg/index.js b/src/views/Home/InfoDlg/index.js index 03b600d..f04bcfd 100644 --- a/src/views/Home/InfoDlg/index.js +++ b/src/views/Home/InfoDlg/index.js @@ -41,6 +41,8 @@ import ShuikuyhDlg from './ShuikuyhDlg'; import XunchaDlg from './XunchaDlg'; import XcxqDlg from './XcxqDlg'; import WyWarnDlg from './WyWarnDlg'; +import ShuiChangDlg from './ShuiChangDlg'; +import ShuiyuandiDlg from './ShuiyuandiDlg'; function InfoDlg() { const infoDlg = useSelector(getInfoDlg); @@ -135,6 +137,10 @@ function InfoDlg() { return }else if (layerId === 'WyWarnLayer') { return + }else if (layerId === 'ShuichangLayer') { + return + }else if (layerId === 'ShuiyuandiLayer') { + return } diff --git a/src/views/Home/MapCtrl/mapstyle/layermgr.js b/src/views/Home/MapCtrl/mapstyle/layermgr.js index 19146c6..c98486f 100644 --- a/src/views/Home/MapCtrl/mapstyle/layermgr.js +++ b/src/views/Home/MapCtrl/mapstyle/layermgr.js @@ -32,7 +32,9 @@ import QdLayer from "./qdlayer" import ShuizhiLayer from "./shuizhilayer" import TrsqLayer from "./trsqlayer" import ShuichangLayer from "./shuichangLayer" +import ShuichangQLayer from "./shuichangQLayer" import ShuiyuandiLayer from "./shuiyuandiLayer" +import ShuiyuandiQLayer from "./shuiyuandiQLayer" import ShuikuLayer from "./shuikuLayer" import RainDrpLayer from "./rainDrpLayer" import XunchaLayer from "./xunchalayer" @@ -64,7 +66,9 @@ class LayerMgr { this.layers.push(new ShuizhiLayer()); this.layers.push(new TrsqLayer()); this.layers.push(new ShuichangLayer()); + this.layers.push(new ShuichangQLayer()); this.layers.push(new ShuiyuandiLayer()); + this.layers.push(new ShuiyuandiQLayer()); this.layers.push(new ShuikuLayer()); this.layers.push(new RainDrpLayer()); this.layers.push(new XunchaLayer()); @@ -211,7 +215,9 @@ class LayerMgr { this.layerMap.ShuizhiLayer.getStyle(), this.layerMap.TrsqLayer.getStyle(), this.layerMap.ShuichangLayer.getStyle(), + this.layerMap.ShuichangQLayer.getStyle(), this.layerMap.ShuiyuandiLayer.getStyle(), + this.layerMap.ShuiyuandiQLayer.getStyle(), this.layerMap.ShuikuLayer.getStyle(), this.layerMap.RainDrpLayer.getStyle(), this.layerMap.XunchaLayer.getStyle(), diff --git a/src/views/Home/MapCtrl/mapstyle/shuichangLayer.js b/src/views/Home/MapCtrl/mapstyle/shuichangLayer.js index e3e149a..f37a684 100644 --- a/src/views/Home/MapCtrl/mapstyle/shuichangLayer.js +++ b/src/views/Home/MapCtrl/mapstyle/shuichangLayer.js @@ -45,53 +45,116 @@ const ShapeStyle = { const page1 = [ { - "stcd": "716113001", - "type": "sk", - "hasRz": true, - "stnm": "监测点9", - "adcd": "421181113000", - "wscd": null, - "importancy": 0, - "lgtd": 114.805278, - "lttd": 31.206667, - "elev": 0, - "damel": 104.27, - "dsflz": 102.9, - "fsltdz": 102.36, - "ddz": 90.86, - "zcxsw": 102.36, - "drpTm": "2025-04-11T05:00:00.000Z", - "today": 0, - "h1": 0, - "h3": 0, - "h6": 0, - "h12": 0, - "h24": 0, - "h48": 0, - "drpState": 2, - "rz": 8.19, - "w": 0, - "a_fsltdz": -94.17, - "rzTm": "2025-04-11T05:00:00.000Z", - "rzWarning": 0, - "rzState": 2, - "pic": [ - { - "stcd": "716113001", - "tm": "2023-03-12T07:01:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716113001/20230312150100.jpg" - }, - { - "stcd": "716113001", - "tm": "2023-03-12T07:08:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716113002/20230312150800.jpg" - } - ], - "aRz": -94.17 - }, - - - + "stcd": "61612610", + "type": "sk", + "hasRz": true, + "stnm": "三河口水厂", + "adcd": "421181109000", + "wscd": null, + "importancy": 0, + "lgtd": 115.166667, + "lttd": 31.333333, + "elev": 0, + "damel": 156.8, + "dsflz": 154.99, + "fsltdz": 149, + "ddz": 124, + "zcxsw": 149, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 12.5, + "drpState": 1, + "rz": 141.45, + "w": 77.8, + "a_fsltdz": -7.550000000000011, + "rzTm": "2025-06-03T01:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -7.55 + }, + { + "stcd": "7CS000231", + "type": "sk", + "hasRz": true, + "stnm": "刘集水厂", + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "lgtd": 115.048056, + "lttd": 31.335556, + "elev": 0, + "damel": 79.6, + "dsflz": 78.65, + "fsltdz": 72.05, + "ddz": 69.55, + "zcxsw": 72.05, + "drpTm": "2023-11-20T01:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 76.49, + "w": 0.049, + "a_fsltdz": 4.439999999999998, + "rzTm": "2025-04-11T06:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "7CS000231", + "tm": "2023-11-20T01:04:18.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1120/7CS000231/20231120090418.jpg" + }, + { + "stcd": "7CS000231", + "tm": "2023-11-20T01:07:54.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1120/7CS000232/20231120090754.jpg" + } + ], + "aRz": 4.44 + }, + { + "stcd": "716460001", + "type": "sk", + "hasRz": true, + "stnm": "杉林河水厂", + "adcd": "421181107000", + "wscd": null, + "importancy": 0, + "lgtd": 115.433056, + "lttd": 31.304444, + "elev": 0, + "damel": 236.2, + "dsflz": 233.92, + "fsltdz": 231, + "ddz": 204, + "zcxsw": 231, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 224.31, + "w": 0, + "a_fsltdz": -6.689999999999998, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "aRz": -6.69 + }, { "stcd": "716123001", "type": "sk", @@ -136,330 +199,7 @@ const page1 = [ } ], "aRz": -4.77 - }, - { - "stcd": "716122901", - "type": "sk", - "hasRz": true, - "stnm": "监测点7", - "adcd": "421181112000", - "wscd": null, - "importancy": 0, - "lgtd": 114.905833, - "lttd": 31.339444, - "elev": 0, - "damel": 90.5, - "dsflz": 89.28, - "fsltdz": 88.6, - "ddz": 14.44, - "zcxsw": 88.6, - "drpTm": "2025-04-11T05:00:00.000Z", - "today": 0, - "h1": 0, - "h3": 0, - "h6": 0, - "h12": 0, - "h24": 0, - "h48": 0, - "drpState": 2, - "rz": 87.23, - "w": 0.092, - "a_fsltdz": -1.3699999999999903, - "rzTm": "2025-04-11T05:00:00.000Z", - "rzWarning": 0, - "rzState": 2, - "pic": [ - { - "stcd": "716122901", - "tm": "2023-03-12T07:03:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716122901/20230312150300.jpg" - }, - { - "stcd": "716122901", - "tm": "2023-03-12T07:12:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716122902/20230312151200.jpg" - } - ], - "aRz": -1.37 - }, - { - "stcd": "716123901", - "type": "sk", - "hasRz": true, - "stnm": "监测点6", - "adcd": "421181112000", - "wscd": null, - "importancy": 0, - "lgtd": 114.903056, - "lttd": 31.285833, - "elev": 0, - "damel": 14.2, - "dsflz": 13.88, - "fsltdz": 93.3, - "ddz": 9.4, - "zcxsw": 93.3, - "drpTm": "2025-04-11T05:00:00.000Z", - "today": 0, - "h1": 0, - "h3": 0, - "h6": 0, - "h12": 0, - "h24": 0, - "h48": 0, - "drpState": 2, - "rz": 110.13, - "w": 0, - "a_fsltdz": 16.83, - "rzTm": "2025-04-11T05:00:00.000Z", - "rzWarning": 1, - "rzState": 2, - "pic": [ - { - "stcd": "716123901", - "tm": "2023-03-12T08:01:08.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716123901/20230312160108.jpg" - }, - { - "stcd": "716123901", - "tm": "2023-03-12T07:03:56.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716123902/20230312150356.jpg" - } - ], - "aRz": 16.83 - }, - { - "stcd": "716115801", - "type": "sk", - "hasRz": true, - "stnm": "监测点5", - "adcd": "421181112000", - "wscd": null, - "importancy": 0, - "lgtd": 114.014444, - "lttd": 31.355833, - "elev": 0, - "damel": 134.7, - "dsflz": 133.45, - "fsltdz": 132.6, - "ddz": 124.5, - "zcxsw": 132.6, - "drpTm": "2025-04-11T06:00:00.000Z", - "today": 0, - "h1": 0, - "h3": 0, - "h6": 0, - "h12": 0, - "h24": 0, - "h48": 0, - "drpState": 2, - "rz": 128.72, - "w": 0.054, - "a_fsltdz": -3.8799999999999955, - "rzTm": "2025-04-11T06:00:00.000Z", - "rzWarning": 0, - "rzState": 2, - "pic": [ - { - "stcd": "716115801", - "tm": "2023-03-12T07:03:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115801/20230312150300.jpg" - }, - { - "stcd": "716115801", - "tm": "2023-03-12T07:12:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115802/20230312151200.jpg" - } - ], - "aRz": -3.88 - }, - { - "stcd": "716120401", - "type": "sk", - "hasRz": true, - "stnm": "监测点4", - "adcd": "421181112000", - "wscd": null, - "importancy": 0, - "lgtd": 114.954167, - "lttd": 31.311944, - "elev": 0, - "damel": 100, - "dsflz": 98.46, - "fsltdz": 97.4, - "ddz": 93.2, - "zcxsw": 97.4, - "drpTm": "2024-09-03T02:00:00.000Z", - "today": 0, - "h1": 0, - "h3": 0, - "h6": 0, - "h12": 0, - "h24": 0, - "h48": 0, - "drpState": 2, - "rz": 96.71, - "w": 0, - "a_fsltdz": -0.6900000000000119, - "rzTm": "2024-09-03T02:00:00.000Z", - "rzWarning": 0, - "rzState": 2, - "pic": [ - { - "stcd": "716120401", - "tm": "2023-03-12T08:01:20.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716120401/20230312160120.jpg" - }, - { - "stcd": "716120401", - "tm": "2023-03-12T07:04:03.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716120402/20230312150403.jpg" - } - ], - "aRz": -0.69 - }, - { - "stcd": "716116201", - "type": "sk", - "hasRz": true, - "stnm": "监测点3", - press: '0.91', - flow: 200, - hg: 90, - "adcd": "421181112000", - "wscd": null, - "importancy": 0, - "lgtd": 115.024444, - "lttd": 31.232222, - "elev": 0, - "damel": 140, - "dsflz": 137.65, - "fsltdz": 136.2, - "ddz": 128, - "zcxsw": 136.2, - "drpTm": "2025-04-11T06:00:00.000Z", - "today": 0, - "h1": 0, - "h3": 0, - "h6": 0, - "h12": 0, - "h24": 0, - "h48": 0, - "drpState": 2, - "rz": 131.47, - "w": 0.091, - "a_fsltdz": -4.72999999999999, - "rzTm": "2025-04-11T06:00:00.000Z", - "rzWarning": 0, - "rzState": 2, - "pic": [ - { - "stcd": "716116201", - "tm": "2023-03-12T07:03:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716116201/20230312150300.jpg" - }, - { - "stcd": "716116201", - "tm": "2023-03-12T07:11:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716116202/20230312151100.jpg" - } - ], - "aRz": -4.73 - }, - { - "stcd": "716122701", - "type": "sk", - "hasRz": true, - press: '0.52', - flow: 200, - hg: 90, - "stnm": "监测点2", - "adcd": "421181112000", - "wscd": null, - "importancy": 0, - "lgtd": 114.908889, - "lttd": 31.334167, - "elev": 0, - "damel": 114.6, - "dsflz": 112.89, - "fsltdz": 111.6, - "ddz": 101.8, - "zcxsw": 111.6, - "drpTm": "2025-04-11T05:00:00.000Z", - "today": 0, - "h1": 0, - "h3": 0, - "h6": 0, - "h12": 0, - "h24": 0, - "h48": 0, - "drpState": 2, - "rz": 103.84, - "w": 0.123, - "a_fsltdz": -7.759999999999991, - "rzTm": "2025-04-11T05:00:00.000Z", - "rzWarning": 0, - "rzState": 2, - "pic": [ - { - "stcd": "716122701", - "tm": "2022-02-21T01:05:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2022/0221/716122701/20220221090500.jpg" - }, - { - "stcd": "716122701", - "tm": "2022-02-21T01:30:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2022/0221/716122702/20220221093000.jpg" - } - ], - "aRz": -7.76 - }, - { - "stcd": "716122601", - "type": "sk", - "hasRz": true, - "stnm": "监测点1", press: '0.91', - flow: 200, - hg: 90, - "adcd": "421181112000", - "wscd": null, - "importancy": 0, - "lgtd": 114.891667, - "lttd": 31.346944, - "elev": 0, - "damel": 128, - "dsflz": 125.52, - "fsltdz": 124.4, - "ddz": 117.2, - "zcxsw": 124.4, - "drpTm": "2025-04-11T04:00:00.000Z", - "today": 0, - "h1": 0, - "h3": 0, - "h6": 0, - "h12": 0, - "h24": 0, - "h48": 0, - "drpState": 2, - "rz": 121.77, - "w": 0.057, - "a_fsltdz": -2.6300000000000097, - "rzTm": "2025-04-11T04:00:00.000Z", - "rzWarning": 0, - "rzState": 2, - "pic": [ - { - "stcd": "716122601", - "tm": "2023-03-12T07:27:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716122601/20230312152700.jpg" - }, - { - "stcd": "716122601", - "tm": "2023-03-12T07:39:00.000Z", - "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716122602/20230312153900.jpg" - } - ], - "aRz": -2.63 - }, + }, ] export default class ShuichangLayer extends BaseLayer { @@ -487,7 +227,14 @@ export default class ShuichangLayer extends BaseLayer { async doRefreshLayer(mapCtrl) { const ms = mapCtrl.getSource(SourceName); - let data = page1 + let data = + // await PicStPromise.get(); + [...page1].map((item)=>{ + const obj = {...item} + obj.lgtd = item.lgtd - 0.00122 + obj.lttd = item.lttd + return obj + }) ms.setData(parseGeoJSON(data)); return true; } @@ -497,11 +244,12 @@ export default class ShuichangLayer extends BaseLayer { } featureClicked(properties, dispatch) { - dispatch.runtime.setFeaturePop({ - type: 'shuichang', - properties, - coordinates: [properties.lgtd, properties.lttd], - offsetPop: true, - }); + // dispatch.runtime.setFeaturePop({ + // type: 'shuichang', + // properties, + // coordinates: [properties.lgtd, properties.lttd], + // offsetPop: true, + // }); + dispatch.runtime.setInfoDlg({ layerId: 'ShuichangLayer',properties }) } } diff --git a/src/views/Home/MapCtrl/mapstyle/shuichangQLayer.js b/src/views/Home/MapCtrl/mapstyle/shuichangQLayer.js new file mode 100644 index 0000000..2d1d3a3 --- /dev/null +++ b/src/views/Home/MapCtrl/mapstyle/shuichangQLayer.js @@ -0,0 +1,132 @@ +import clone from "clone"; +import { PicStPromise, TestPicStPromise } from "../../../../models/_/real"; +import { parseGeoJSON } from "../../../../utils/tools"; +import { InfoPopNames } from "../../InfoPops"; +import BaseLayer from "./baselayer"; + +const SourceName = '水厂q'; + +const ShapeStyle = { + id: SourceName, + type: 'symbol', + source: SourceName, + layout: { + 'icon-allow-overlap': true, + 'text-allow-overlap': true, + 'icon-image': '水厂q', + 'icon-size': [ + 'interpolate', ['linear'], ['zoom'], + 10, 0.4, + 14, 0.8, + ], + + 'text-allow-overlap': true, + 'text-size': [ + 'interpolate', ['linear'], ['zoom'], + 10, 10, + 14, 14, + ], + 'text-font': ['Roboto Black'], + 'text-field': [ + 'step', + ['zoom'], + '', + 12, ['get', 'stnm'] + ], + 'text-anchor': 'top', + 'text-offset': [0, 1], + + 'visibility': 'none', + }, + paint: { + 'text-color': '#fff' + } +}; + +const page1 = [ + { + "stcd": "61614200", + "type": "sk", + "hasRz": true, + "stnm": "浮桥河水厂", + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "lgtd": 114.875, + "lttd": 31.166667, + "elev": 0, + "damel": 71.33, + "dsflz": 68.04, + "fsltdz": 64.89, + "ddz": 51.78, + "zcxsw": 64.89, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 16.5, + "drpState": 1, + "rz": 60.71, + "w": 162.8, + "a_fsltdz": -4.18, + "rzTm": "2025-06-03T02:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -4.18 + }, +] + +export default class ShuichangQLayer extends BaseLayer { + + static LayerName = 'ShuichangQLayer'; + + static SourceName = SourceName; + + getStyle() { + + const ret = clone(ShapeStyle); + this._setStyleVisibility(ret); + return ret; + + } + + getName() { + return ShuichangQLayer.LayerName; + } + + getSubLayers() { + return [ShapeStyle.id]; + } + + async doRefreshLayer(mapCtrl) { + const ms = mapCtrl.getSource(SourceName); + + let data = + // await PicStPromise.get(); + [...page1].map((item)=>{ + const obj = {...item} + obj.lgtd = item.lgtd - 0.00122 + obj.lttd = item.lttd + return obj + }) + ms.setData(parseGeoJSON(data)); + return true; + } + + getFeatureTip(record) { + return ''; + } + + featureClicked(properties, dispatch) { + // dispatch.runtime.setFeaturePop({ + // type: 'shuichang', + // properties, + // coordinates: [properties.lgtd, properties.lttd], + // offsetPop: true, + // }); + dispatch.runtime.setInfoDlg({ layerId: 'ShuichangLayer',properties }) + } +} diff --git a/src/views/Home/MapCtrl/mapstyle/shuiyuandiLayer.js b/src/views/Home/MapCtrl/mapstyle/shuiyuandiLayer.js index 259ea63..3b952bd 100644 --- a/src/views/Home/MapCtrl/mapstyle/shuiyuandiLayer.js +++ b/src/views/Home/MapCtrl/mapstyle/shuiyuandiLayer.js @@ -44,161 +44,129 @@ const ShapeStyle = { }; const page1 = [ - { - "addvcd": "420800000000000", - "moditime": "2022-05-01 21:00:00", - "comments": "漳河遥测", - "src": "zhzj", - "esstym": "", - "mvalue": { - "slmmmt": null, - "slm60": 0, - "exkey": "@", - "slm80": 0, - "hitrsn": null, - "crpty": null, - "crpgrwprd": null, - "srlslm": null, - "stcd": "ZH201417", - "slm10": 24, - "slm20": 5.3, - "slm30": 44.3, - "slm40": 44.3, - "tm": "2024-08-03 05:00", - "slm100": 0, - "vtavslm": null, - "slmAvg": 24.5 - }, - "lttd": 30.8456, - "sttp": "SS", - "irrCode": "D00000010", - "sort": 9999, - "hasImg": false, - "stlc": "荆门市", - "dtmel": 0, - "stcd": "ZH201417", - "stnm": "马山二组(墒情)", - "addvcd_dictText": "荆门市", - "lgtd": 112.2321, - "irrCode_dictText": "漳河实验站", - "bsnm": "漳河流域" - }, - { - "addvcd": "420800000000000", - "moditime": "2022-05-01 21:00:00", - "comments": "漳河遥测", - "src": "zhzj", - "esstym": "", - "mvalue": { - "slmmmt": null, - "slm60": 0, - "exkey": "@", - "slm80": 0, - "hitrsn": null, - "crpty": null, - "crpgrwprd": null, - "srlslm": null, - "stcd": "ZH201421", - "slm10": 12.1, - "slm20": 16.2, - "slm30": 12.8, - "slm40": 12.8, - "tm": "2024-08-15 08:00", - "slm100": 0, - "vtavslm": null, - "slmAvg": 13.7 - }, - "lttd": 30.8446, - "sttp": "SS", - "irrCode": "D00000010", - "sort": 9999, - "hasImg": false, - "stlc": "荆门市", - "dtmel": 0, - "stcd": "ZH201421", - "stnm": "槐桥四组(墒情)", - "addvcd_dictText": "荆门市", - "lgtd": 112.203, - "irrCode_dictText": "漳河实验站", - "bsnm": "漳河流域" - }, - { - "addvcd": "420800000000000", - "moditime": "2022-05-01 21:00:00", - "src": "zhzj", - "esstym": "", - "mvalue": { - "slmmmt": null, - "slm60": 0, - "exkey": "@", - "slm80": 0, - "hitrsn": null, - "crpty": null, - "crpgrwprd": null, - "srlslm": null, - "stcd": "ZH201418", - "slm10": 16.5, - "slm20": 12.5, - "slm30": 0, - "slm40": 0, - "tm": "2024-09-19 11:00", - "slm100": 0, - "vtavslm": null, - "slmAvg": 14.5 - }, - "lttd": 30.8866, - "sttp": "SS", - "irrCode": "D00000010", - "sort": 9999, - "hasImg": false, - "stlc": "荆门市", - "dtmel": 0, - "stcd": "ZH201418", - "stnm": "双碑一组(墒情)", - "addvcd_dictText": "荆门市", - "lgtd": 112.2006, - "irrCode_dictText": "漳河实验站", - "bsnm": "漳河流域" - }, - { - "addvcd": "420800000000000", - "moditime": "2022-05-01 21:00:00", - "comments": "水资源多孔闸门控制系统", - "src": "zhzj", - "esstym": "", - "mvalue": { - "slmmmt": null, - "slm60": null, - "exkey": "@", - "slm80": null, - "hitrsn": null, - "crpty": null, - "crpgrwprd": null, - "srlslm": null, - "stcd": "4211221031", - "slm10": 31, - "slm20": 42.6, - "slm30": null, - "slm40": 26.6, - "tm": "2025-05-26 09:00", - "slm100": null, - "vtavslm": null, - "slmAvg": 33.4 - }, - "lttd": 30.904191, - "sttp": "SS", - "irrCode": "D00000010", - "sort": 9999, - "hasImg": false, - "stlc": "荆门市", - "stcd": "4211221031", - "stnm": "试验站墒情", - "addvcd_dictText": "荆门市", - "lgtd": 112.087806, - "irrCode_dictText": "漳河实验站", - "bsnm": "漳河流域" - } -] + { + "stcd": "716115301", + "type": "sk", + "hasRz": true, + "stnm": "葡萄冲水库", + "adcd": "421181110000", + "wscd": null, + "importancy": 0, + "lgtd": 115.051389, + "lttd": 31.423333, + "elev": 0, + "damel": 15.8, + "dsflz": 14.73, + "fsltdz": 14.3, + "ddz": 9.48, + "zcxsw": 14.3, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 213.75, + "w": 0.04, + "a_fsltdz": 199.45, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716115301", + "tm": "2023-03-12T08:02:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115301/20230312160200.jpg" + }, + { + "stcd": "716115301", + "tm": "2023-03-12T07:11:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115302/20230312151100.jpg" + } + ], + "aRz": 199.45 + }, + { + "stcd": "716115701", + "type": "sk", + "hasRz": true, + "stnm": "二五冲水库", + "adcd": "421181110000", + "wscd": null, + "importancy": 0, + "lgtd": 115.087222, + "lttd": 31.378333, + "elev": 0, + "damel": 11.2, + "dsflz": 10.07, + "fsltdz": 108.55, + "ddz": 1.5, + "zcxsw": 108.55, + "drpTm": "2025-03-22T08:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 99.65, + "w": 0.038, + "a_fsltdz": -8.899999999999991, + "rzTm": "2025-03-22T08:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "pic": [ + { + "stcd": "716115701", + "tm": "2025-03-06T23:01:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2025/0307/716115701/20250307070100.jpg" + }, + { + "stcd": "716115701", + "tm": "2024-10-18T06:28:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/1018/716115702/20241018142800.jpg" + } + ], + "aRz": -8.9 + }, + { + "stcd": "61614200", + "type": "sk", + "hasRz": true, + "stnm": "浮桥河水库", + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "lgtd": 114.875, + "lttd": 31.166667, + "elev": 0, + "damel": 71.33, + "dsflz": 68.04, + "fsltdz": 64.89, + "ddz": 51.78, + "zcxsw": 64.89, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 16.5, + "drpState": 1, + "rz": 60.71, + "w": 162.8, + "a_fsltdz": -4.18, + "rzTm": "2025-06-03T02:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -4.18 + }] export default class ShuiyuandiLayer extends BaseLayer { @@ -229,8 +197,8 @@ export default class ShuiyuandiLayer extends BaseLayer { // await PicStPromise.get(); [...page1].map((item)=>{ const obj = {...item} - obj.lgtd = item.lgtd + 2.9619 - obj.lttd = item.lttd + 0.2002 + obj.lgtd = item.lgtd + obj.lttd = item.lttd return obj }) ms.setData(parseGeoJSON(data)); @@ -248,5 +216,7 @@ export default class ShuiyuandiLayer extends BaseLayer { // coordinates: [properties.lgtd, properties.lttd], // offsetPop: true, // }); + dispatch.runtime.setInfoDlg({ layerId: 'ShuiyuandiLayer',properties }) + } } diff --git a/src/views/Home/MapCtrl/mapstyle/shuiyuandiQLayer.js b/src/views/Home/MapCtrl/mapstyle/shuiyuandiQLayer.js new file mode 100644 index 0000000..10e3fa4 --- /dev/null +++ b/src/views/Home/MapCtrl/mapstyle/shuiyuandiQLayer.js @@ -0,0 +1,143 @@ +import clone from "clone"; +import { PicStPromise, TestPicStPromise } from "../../../../models/_/real"; +import { parseGeoJSON } from "../../../../utils/tools"; +import { InfoPopNames } from "../../InfoPops"; +import BaseLayer from "./baselayer"; + +const SourceName = '水源地q'; + +const ShapeStyle = { + id: SourceName, + type: 'symbol', + source: SourceName, + layout: { + 'icon-allow-overlap': true, + 'text-allow-overlap': true, + 'icon-image': '水源地q', + 'icon-size': [ + 'interpolate', ['linear'], ['zoom'], + 10, 0.4, + 14, 0.8, + ], + + 'text-allow-overlap': true, + 'text-size': [ + 'interpolate', ['linear'], ['zoom'], + 10, 10, + 14, 14, + ], + 'text-font': ['Roboto Black'], + 'text-field': [ + 'step', + ['zoom'], + '', + 12, ['get', 'stnm'] + ], + 'text-anchor': 'top', + 'text-offset': [0, 1], + + 'visibility': 'none', + }, + paint: { + 'text-color': '#fff' + } +}; + +const page1 = [{ + "stcd": "716115401", + "type": "sk", + "hasRz": true, + "stnm": "长冲水库", + "adcd": "421181110000", + "wscd": null, + "importancy": 0, + "lgtd": 115.061389, + "lttd": 31.408611, + "elev": 0, + "damel": 21.6, + "dsflz": 20.15, + "fsltdz": 130.8, + "ddz": 0, + "zcxsw": 130.8, + "drpTm": "2024-05-17T08:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 126.41, + "w": 0.374, + "a_fsltdz": -4.390000000000015, + "rzTm": "2024-05-17T06:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "pic": [ + { + "stcd": "716115401", + "tm": "2024-05-17T08:05:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/0517/716115401/20240517160500.jpg" + }, + { + "stcd": "716115401", + "tm": "2024-05-17T08:20:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/0517/716115402/20240517162000.jpg" + } + ], + "aRz": -4.39 + }] + +export default class ShuiyuandiQLayer extends BaseLayer { + + static LayerName = 'ShuiyuandiQLayer'; + + static SourceName = SourceName; + + getStyle() { + + const ret = clone(ShapeStyle); + this._setStyleVisibility(ret); + return ret; + + } + + getName() { + return ShuiyuandiQLayer.LayerName; + } + + getSubLayers() { + return [ShapeStyle.id]; + } + + async doRefreshLayer(mapCtrl) { + const ms = mapCtrl.getSource(SourceName); + + let data = + // await PicStPromise.get(); + [...page1].map((item)=>{ + const obj = {...item} + obj.lgtd = item.lgtd + obj.lttd = item.lttd + return obj + }) + ms.setData(parseGeoJSON(data)); + return true; + } + + getFeatureTip(record) { + return ''; + } + + featureClicked(properties, dispatch) { + // dispatch.runtime.setFeaturePop({ + // type: InfoPopNames.PicStPop, + // properties, + // coordinates: [properties.lgtd, properties.lttd], + // offsetPop: true, + // }); + dispatch.runtime.setInfoDlg({ layerId: 'ShuiyuandiLayer',properties }) + + } +} diff --git a/src/views/Home/MapCtrl/mapstyle/sources.js b/src/views/Home/MapCtrl/mapstyle/sources.js index f00d00b..eb40bf5 100644 --- a/src/views/Home/MapCtrl/mapstyle/sources.js +++ b/src/views/Home/MapCtrl/mapstyle/sources.js @@ -23,7 +23,9 @@ import QdLayer from "./qdlayer"; import ShuizhiLayer from "./shuizhilayer"; import TrsqLayer from "./trsqlayer"; import ShuichangLayer from "./shuichangLayer"; +import ShuichangQLayer from "./shuichangQLayer"; import ShuiyuandiLayer from "./shuiyuandiLayer"; +import ShuiyuandiQLayer from "./shuiyuandiQLayer"; import ShuikuLayer from "./shuikuLayer"; import RainDrpLayer from "./rainDrpLayer" import XunchaLayer from "./xunchalayer" @@ -217,10 +219,18 @@ const sources = { [ShuichangLayer.SourceName]: { type: 'geojson', data: { type: 'FeatureCollection', features: [] }, + }, + [ShuichangQLayer.SourceName]: { + type: 'geojson', + data: { type: 'FeatureCollection', features: [] }, }, [ShuiyuandiLayer.SourceName]: { type: 'geojson', data: { type: 'FeatureCollection', features: [] }, + }, + [ShuiyuandiQLayer.SourceName]: { + type: 'geojson', + data: { type: 'FeatureCollection', features: [] }, }, [ShuikuLayer.SourceName]: { type: 'geojson', diff --git a/src/views/Home/PanelIndex.js b/src/views/Home/PanelIndex.js index 2063048..7abd59a 100644 --- a/src/views/Home/PanelIndex.js +++ b/src/views/Home/PanelIndex.js @@ -128,6 +128,11 @@ import Sljc from './panels/Sljc' import Byjc from './panels/Byjc' import Shuikusp from './panels/ShuikuSp' import JcGJ from './panels/Jcgj' + + +import YjList from './panels/YjList' +import Yjsj from './panels/Yjsj' + export default function PanelIndex({ name, style, ...params }) { if (name === '天气') { return ( @@ -268,6 +273,8 @@ export default function PanelIndex({ name, style, ...params }) { return } else if (name === '供水覆盖率') { return + } else if (name === '预警列表') { + return } else if (name === '日供水量') { return } else if (name === '对比分析') { @@ -326,6 +333,8 @@ export default function PanelIndex({ name, style, ...params }) { return } else if (name === '应急指挥调度') { return + } else if (name === '应急事件') { + return } else if (name === "网格") { return } else if (name === "降雨分析") { diff --git a/src/views/Home/components/ShuichangInfo/SkPlan.js b/src/views/Home/components/ShuichangInfo/SkPlan.js new file mode 100644 index 0000000..c11cb58 --- /dev/null +++ b/src/views/Home/components/ShuichangInfo/SkPlan.js @@ -0,0 +1,60 @@ +import React, { useMemo } from 'react' +import config from '../../../../config'; +import { skInfo } from '../../../../models/_/search'; +import useRequest from '../../../../utils/useRequest'; +import DpAlert from '../../../../layouts/mui/DpAlert'; + +function SkPlan({ record }) { + + let { data } = useRequest(() => skInfo(record)); + const { hasFile, path, url, info } = useMemo(() => { + if (!data) { + return {}; + } + + if (!data.plan) { + return { info: '未上传预案' } + } + + const plan = data.plan; + const path = `${config.OSS_BASE}/skyuan/${plan.stcd}/`; + const filename = plan.filename; + const hasFile = filename.endsWith('doc') || filename.endsWith('docx') || filename.endsWith('pdf'); + let url; + if (hasFile) { + if (filename.endsWith('pdf')) { + url = path + filename; + } else { + const filefolder = filename.replace('.docx', '').replace('.doc', ''); + url = path + filefolder + '/' + filefolder + '.html'; + } + } + return { + path, + filename: plan.filename, + url, + hasFile, + info: !hasFile ? '未上传预案' : null + }; + }, [data]); + + return ( +
+ {/* { info ? {info} : null} +
+ { + hasFile && ( +
+ ) +} + +export default SkPlan diff --git a/src/views/Home/components/ShuichangInfo/index.js b/src/views/Home/components/ShuichangInfo/index.js new file mode 100644 index 0000000..9bc2b78 --- /dev/null +++ b/src/views/Home/components/ShuichangInfo/index.js @@ -0,0 +1,47 @@ +import { Grid } from '@material-ui/core'; +import React from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import DescriptionItem from '../DescrptionItem'; + + +function Personel({ data }) { + return ( + + + {data.name}: + {data.zw && {data.zw};} + {data.zz && {data.zz};} + {data.dw && {data.dw};} + {data.phone && {data.phone}} + + ) +} + + +function SkInfo({ record }) { + let { data } = useRequest(() => skInfo(record)); + data = data || {}; + + return ( +
+ + {data.stnm} + 用水协会 + 800吨 + 山泉水、新水厂 + 陈刚 + 13647186235 + + + {/* {adnmZhen(data.adcd)}{adnmCun(data.adcd)} */} + 林寨村村民、桃园村村民、果园村 + + +
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/components/ShuiyuandiInfo/SkPlan.js b/src/views/Home/components/ShuiyuandiInfo/SkPlan.js new file mode 100644 index 0000000..c11cb58 --- /dev/null +++ b/src/views/Home/components/ShuiyuandiInfo/SkPlan.js @@ -0,0 +1,60 @@ +import React, { useMemo } from 'react' +import config from '../../../../config'; +import { skInfo } from '../../../../models/_/search'; +import useRequest from '../../../../utils/useRequest'; +import DpAlert from '../../../../layouts/mui/DpAlert'; + +function SkPlan({ record }) { + + let { data } = useRequest(() => skInfo(record)); + const { hasFile, path, url, info } = useMemo(() => { + if (!data) { + return {}; + } + + if (!data.plan) { + return { info: '未上传预案' } + } + + const plan = data.plan; + const path = `${config.OSS_BASE}/skyuan/${plan.stcd}/`; + const filename = plan.filename; + const hasFile = filename.endsWith('doc') || filename.endsWith('docx') || filename.endsWith('pdf'); + let url; + if (hasFile) { + if (filename.endsWith('pdf')) { + url = path + filename; + } else { + const filefolder = filename.replace('.docx', '').replace('.doc', ''); + url = path + filefolder + '/' + filefolder + '.html'; + } + } + return { + path, + filename: plan.filename, + url, + hasFile, + info: !hasFile ? '未上传预案' : null + }; + }, [data]); + + return ( +
+ {/* { info ? {info} : null} +
+ { + hasFile && ( +
+ ) +} + +export default SkPlan diff --git a/src/views/Home/components/ShuiyuandiInfo/index.js b/src/views/Home/components/ShuiyuandiInfo/index.js new file mode 100644 index 0000000..3d279a2 --- /dev/null +++ b/src/views/Home/components/ShuiyuandiInfo/index.js @@ -0,0 +1,47 @@ +import { Grid } from '@material-ui/core'; +import React from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import DescriptionItem from '../DescrptionItem'; + + +function Personel({ data }) { + return ( + + + {data.name}: + {data.zw && {data.zw};} + {data.zz && {data.zz};} + {data.dw && {data.dw};} + {data.phone && {data.phone}} + + ) +} + + +function SkInfo({ record }) { + let { data } = useRequest(() => skInfo(record)); + data = data || {}; + + return ( +
+ + {data.stnm} + {data.dsflz} + {data.HJHSW} + {data.ZCXSW} + {data.ddz} + {data.fsltdz} + {data.ZKR} + {data.FHKR} + {data.XLKR} + + + +
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/components/Sksjjg/SkPlan.js b/src/views/Home/components/Sksjjg/SkPlan.js new file mode 100644 index 0000000..c11cb58 --- /dev/null +++ b/src/views/Home/components/Sksjjg/SkPlan.js @@ -0,0 +1,60 @@ +import React, { useMemo } from 'react' +import config from '../../../../config'; +import { skInfo } from '../../../../models/_/search'; +import useRequest from '../../../../utils/useRequest'; +import DpAlert from '../../../../layouts/mui/DpAlert'; + +function SkPlan({ record }) { + + let { data } = useRequest(() => skInfo(record)); + const { hasFile, path, url, info } = useMemo(() => { + if (!data) { + return {}; + } + + if (!data.plan) { + return { info: '未上传预案' } + } + + const plan = data.plan; + const path = `${config.OSS_BASE}/skyuan/${plan.stcd}/`; + const filename = plan.filename; + const hasFile = filename.endsWith('doc') || filename.endsWith('docx') || filename.endsWith('pdf'); + let url; + if (hasFile) { + if (filename.endsWith('pdf')) { + url = path + filename; + } else { + const filefolder = filename.replace('.docx', '').replace('.doc', ''); + url = path + filefolder + '/' + filefolder + '.html'; + } + } + return { + path, + filename: plan.filename, + url, + hasFile, + info: !hasFile ? '未上传预案' : null + }; + }, [data]); + + return ( +
+ {/* { info ? {info} : null} +
+ { + hasFile && ( +
+ ) +} + +export default SkPlan diff --git a/src/views/Home/components/Sksjjg/index.js b/src/views/Home/components/Sksjjg/index.js new file mode 100644 index 0000000..9c8bcc2 --- /dev/null +++ b/src/views/Home/components/Sksjjg/index.js @@ -0,0 +1,45 @@ +import { Grid } from '@material-ui/core'; +import React from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { skInfo } from '../../../../models/_/search'; +import { adnmCun, adnmZhen } from '../../../../models/_/adcd'; +import { Person } from '@material-ui/icons'; +import DescriptionItem from '../DescrptionItem'; +import moment from 'moment'; + +function Personel({ data }) { + return ( + + + {data.name}: + {data.zw && {data.zw};} + {data.zz && {data.zz};} + {data.dw && {data.dw};} + {data.phone && {data.phone}} + + ) +} + + +function SkInfo({ record }) { + let { data } = useRequest(() => skInfo(record)); + data = data || {}; + + return ( +
+ + {record.event} + {record.types} + {/* {adnmZhen(data.adcd)}{adnmCun(data.adcd)} */} + {moment(record.drpTm).format('YYYY-MM-DD HH:mm:ss')} + 王强 + 2025-06-06 16:32:12 + 立即启动东部备用水源,补充供水量的30%,缓解供水压力。 + 主要影响城北区域约5万户居民,部分高层建筑在高峰时段可能出现水压不足情况。已通知受影响区域居民做好储水准备。 + 通过启用备用水源和调度其他水源,目前供水系统压力已趋于稳定,供水量恢复到正常水平的85%。预计今晚可完全恢复。 + +
+ ) +} + +export default SkInfo; diff --git a/src/views/Home/index.js b/src/views/Home/index.js index b75d07f..b8b7dd7 100644 --- a/src/views/Home/index.js +++ b/src/views/Home/index.js @@ -45,9 +45,9 @@ export default function Demo1() { // } - { + {/* { isSc && - } + } */}
diff --git a/src/views/Home/panels/Bjfx/chart.js b/src/views/Home/panels/Bjfx/chart.js index 53e0088..8780fc4 100644 --- a/src/views/Home/panels/Bjfx/chart.js +++ b/src/views/Home/panels/Bjfx/chart.js @@ -1,171 +1,137 @@ -import React, { useMemo } from 'react'; -import echarts from 'echarts/lib/echarts'; -import ReactEcharts from 'echarts-for-react'; +import React from 'react'; +import ReactECharts from 'echarts-for-react'; +import { makeStyles } from '@material-ui/core/styles'; +const useStyles = makeStyles({ + chartContainer: { + width: '100%', + height: '400px', + // backgroundColor: '#0d1117', + } +}); -const pallete = [ - ['#177ab3', '#51c3e7'], - ['#9976dc', '#c792ee'], - ['#94a1eb', '#a7caf8'], - ['#7ae5c3', '#c9f4ea'], - ['#c7dca5', '#f5fcd5'], - ['#7988d9', '#9dc6f1'], - ['#d9ed8f', '#d3f89b'], -]; - -const palleteLen = pallete.length; - - -const AreaDrpChart = () => { - const x = ['清泉水厂','南湖水厂','东郊水厂','西山水厂'] - const y1 = [612, 601, 630, 640] - const y2 = [624, 645, 665, 656] - - - - var option = { +const WaterSourceChart = () => { + const classes = useStyles(); + const option = { + // backgroundColor: '#0d1117', tooltip: { trigger: 'axis', axisPointer: { - type: 'shadow', - label: { - show: false - } + type: 'shadow' }, - valueFormatter: (value) => value + ' 万m³' - }, - grid: { - top: 42, - left: 50, - right: 0, - bottom: 27, + formatter: function (params) { + let total = 0; + let result = `${params[0].axisValue}
`; + + // 按数值从大到小排序并只显示有预警的水源地 + const sortedParams = params + .filter(param => param.value > 0) + .sort((a, b) => b.value - a.value); + + sortedParams.forEach(param => { + total += param.value; + result += `${param.seriesName}: ${param.value}
`; + }); + + result += `总计: ${total}`; + return result; + } }, legend: { - data: ['设计产能', '实际产水'], - top: '8', - left: 'center', - itemWidth: 11,//11, - itemHeight: 11,//11, + data: ['浮桥河水厂', '三河口水厂', '刘集水厂', '杉林河水厂', ], textStyle: { - color: '#B9BFC9', - fontSize: 12,//12 - } + color: '#c9d1d9' + }, + top: 10 }, - xAxis: [ - { - type: 'category', - data: x, - splitLine: { - show: true, //隐藏X轴轴线 - lineStyle: { - color: 'rgba(255,255,255,0.2)', - width: 0 - } - }, - axisLabel: { - show: true, - textStyle: { - color: '#B9BFC9' //X轴文字颜色 - }, - // rotate: 20, // 角度值:Number - fontSize: 10,//10 - }, - axisLine: { - show: true, //隐藏X轴轴线 - lineStyle: { - color: 'rgba(255,255,255,0.2)', - width: 0 - } - }, - axisTick: { - show: true, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + top: '15%', + containLabel: true + }, + xAxis: { + type: 'category', + data: ['2025-06-01', '2025-06-02', '2025-06-03', '2025-06-04', '2025-06-05', '2025-06-06'], + axisLabel: { + color: '#fff', + rotate: 45 + }, + axisLine: { + lineStyle: { + color: '#c9d1d9' } } - ], - yAxis: [ - { - type: 'value', - position: 'left', - name: '产水量m³', - nameTextStyle: { - color: '#B9BFC9', - fontSize: 10,//10, - padding: [0, 0, 0, -30],//[0, 0, 0, -30]//控制y轴标题位置 - }, - nameGap: 17, - - splitLine: { - show: true, - lineStyle: { - width: 1, - color: 'rgba(255,255,255,0.2)' - } - }, - axisLabel: { - show: true, - textStyle: { - color: '#B9BFC9', - fontSize: 11,//11 - } - }, - axisLine: { - show: false - }, - axisTick: { - show: false, - }, - min: 200, - max: 800, + }, + yAxis: { + type: 'value', + name: '预警数量', + nameTextStyle: { + color: '#fff' + }, + axisLabel: { + color: '#fff' + }, + axisLine: { + lineStyle: { + color: '#c9d1d9' + } + }, + splitLine: { + lineStyle: { + color: '#30363d', + type: 'dashed' + } } - ], + }, series: [ { - name: '设计产能', + name: '浮桥河水厂', type: 'bar', - barWidth: 10, - data: y1, - itemStyle: { - normal: { - color: '#56b38b' - }, - }, - // label: { - // show: true, - // position: 'top', - // color: '#bbb', - // fontSize: 12, - // textShadowBlur: 4, - // textShadowColor: '#6ab', - // }, + barWidth: 30, + stack: 'total', + + data: [45, 52, 65, 70, 75, 79] }, { - name: '实际产水', + name: '三河口水厂', type: 'bar', - barWidth: 10, - data: y2, - itemStyle: { - normal: { - color: '#3860d0' - }, - }, - // label: { - // show: true, - // position: 'top', - // color: '#bbb', - // fontSize: 12, - // textShadowBlur: 4, - // textShadowColor: '#6ab', - // }, - } - ] + barWidth: 30, + stack: 'total', + + data: [15, 18, 20, 22, 23, 24] + }, + { + name: '刘集水厂', + type: 'bar', + barWidth: 30, + stack: 'total', + + data: [10, 12, 14, 16, 17, 19] + }, + { + name: '杉林河水厂', + type: 'bar', + barWidth: 30, + stack: 'total', + + data: [8, 10, 12, 14, 15, 17] + }, + ], + color: ['#fac858', '#ee6666', '#73c0de', '#3ba272'] + }; return ( - - ) -} +
+ +
+ ); +}; -export default React.memo(AreaDrpChart); +export default WaterSourceChart; \ No newline at end of file diff --git a/src/views/Home/panels/Bjfx/chart1.js b/src/views/Home/panels/Bjfx/chart1.js new file mode 100644 index 0000000..548542d --- /dev/null +++ b/src/views/Home/panels/Bjfx/chart1.js @@ -0,0 +1,140 @@ +import React from 'react'; +import ReactECharts from 'echarts-for-react'; + +const WaterSourceChart = () => { + const dates = ['2025-06-01', '2025-06-02', '2025-06-03', '2025-06-04', '2025-06-05', '2025-06-06']; + const waterSources = ['浮桥河水库', '长冲水库', '葡萄冲水库', '二五冲水库']; + + // 使用固定的示例数据 + const series = [ + { + name: '浮桥河水库', + type: 'bar', + stack: 'total', + barWidth: 30, + emphasis: { + focus: 'series' + }, + data: [15, 18, 12, 20, 16, 22] + }, + { + name: '长冲水库', + type: 'bar', + stack: 'total', + barWidth: 30, + emphasis: { + focus: 'series' + }, + data: [10, 12, 8, 15, 11, 14] + }, + { + name: '葡萄冲水库', + type: 'bar', + stack: 'total', + barWidth: 30, + emphasis: { + focus: 'series' + }, + data: [8, 10, 6, 12, 9, 11] + }, + { + name: '二五冲水库', + type: 'bar', + stack: 'total', + barWidth: 30, + emphasis: { + focus: 'series' + }, + data: [5, 7, 4, 8, 6, 9] + } + ]; + + const option = { + + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + }, + formatter: function (params) { + let total = 0; + let result = `${params[0].axisValue}
`; + + // 按数值从大到小排序并只显示有预警的水源地 + const sortedParams = params + .filter(param => param.value > 0) + .sort((a, b) => b.value - a.value); + + sortedParams.forEach(param => { + total += param.value; + result += `${param.seriesName}: ${param.value}
`; + }); + + result += `总计: ${total}`; + return result; + } + }, + legend: { + data: waterSources, + top: 10, + textStyle: { + color: '#fff' + } + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + top: '15%', + containLabel: true + }, + xAxis: { + type: 'category', + data: dates, + axisLabel: { + color: '#fff', + rotate: 45 + }, + axisLine: { + lineStyle: { + color: '#fff' + } + } + }, + yAxis: { + type: 'value', + name: '预警数量', + nameTextStyle: { + color: '#fff' + }, + axisLabel: { + color: '#fff' + }, + axisLine: { + lineStyle: { + color: '#fff' + } + }, + splitLine: { + lineStyle: { + type: 'dashed', + color: 'rgba(255, 255, 255, 0.2)' + } + } + }, + series: series, + color: ['#fac858', '#ee6666', '#73c0de', '#3ba272'] + }; + + return ( +
+ +
+ ); +}; + +export default WaterSourceChart; \ No newline at end of file diff --git a/src/views/Home/panels/Bjfx/index.js b/src/views/Home/panels/Bjfx/index.js index 72d11a5..834cef9 100644 --- a/src/views/Home/panels/Bjfx/index.js +++ b/src/views/Home/panels/Bjfx/index.js @@ -2,23 +2,34 @@ import React, { useMemo, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import PanelBox from '../../components/PanelBox'; import AreaDrpChart from './chart'; - - +import ShuiyuandiChart from './chart1' +import clsx from 'clsx'; function DrpReal({ style }) { - const dispatch = useDispatch(); - +const [type, setType] = useState('sc') + const dispatch = useDispatch(); + const toggleStType = (type) => { + setType(type) + + } return ( -
dispatch?.runtime.setInfoDlg({ layerId: 'BjLayer', properties: {} })}>更多
+ {/*
dispatch?.runtime.setInfoDlg({ layerId: 'BjLayer', properties: {} })}>更多
*/} + + toggleStType('sc')}>水厂 + toggleStType('syd')}>水源地 + } - > - + >{ + type == 'sc' ?: + } + + {/* */}
) } diff --git a/src/views/Home/panels/Scszjc/index.js b/src/views/Home/panels/Scszjc/index.js index d046c3d..1f61163 100644 --- a/src/views/Home/panels/Scszjc/index.js +++ b/src/views/Home/panels/Scszjc/index.js @@ -1,21 +1,416 @@ -import React, { useMemo, useState } from 'react'; +import React, { useMemo, useState,useEffect } from 'react'; 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 config from '../../../../config'; +import clsx from 'clsx'; function DrpReal({ style }) { +const [type, setType] = useState('sc') + const dispatch = useDispatch(); + const toggleStType = (type) => { + setType(type) + + } + const scData = [ + { + "stcd": "61614200", + "type": "sk", + "hasRz": true, + "stnm": "浮桥河水厂", + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "lgtd": 114.875, + "lttd": 31.166667, + "elev": 0, + "damel": 71.33, + "dsflz": 68.04, + "fsltdz": 64.89, + "ddz": 51.78, + "zcxsw": 64.89, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 16.5, + "drpState": 1, + "rz": 60.71, + "w": 162.8, + "a_fsltdz": -4.18, + "rzTm": "2025-06-03T02:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -4.18, + percent:98.20 + }, + { + "stcd": "61612610", + "type": "sk", + "hasRz": true, + "stnm": "三河口水厂", + "adcd": "421181109000", + "wscd": null, + percent:94.29, + "importancy": 0, + "lgtd": 115.166667, + "lttd": 31.333333, + "elev": 0, + "damel": 156.8, + "dsflz": 154.99, + "fsltdz": 149, + "ddz": 124, + "zcxsw": 149, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 12.5, + "drpState": 1, + "rz": 141.45, + "w": 77.8, + "a_fsltdz": -7.550000000000011, + "rzTm": "2025-06-03T01:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -7.55 + }, + { + "stcd": "7CS000231", + "type": "sk", + "hasRz": true, + "stnm": "刘集水厂", + percent:56.98, + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "lgtd": 115.048056, + "lttd": 31.335556, + "elev": 0, + "damel": 79.6, + "dsflz": 78.65, + "fsltdz": 72.05, + "ddz": 69.55, + "zcxsw": 72.05, + "drpTm": "2023-11-20T01:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 76.49, + "w": 0.049, + "a_fsltdz": 4.439999999999998, + "rzTm": "2025-04-11T06:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "7CS000231", + "tm": "2023-11-20T01:04:18.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1120/7CS000231/20231120090418.jpg" + }, + { + "stcd": "7CS000231", + "tm": "2023-11-20T01:07:54.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1120/7CS000232/20231120090754.jpg" + } + ], + "aRz": 4.44 + }, + { + "stcd": "716460001", + "type": "sk", + "hasRz": true, + "stnm": "杉林河水厂", + "adcd": "421181107000", + "wscd": null, + percent:42.14, + "importancy": 0, + "lgtd": 115.433056, + "lttd": 31.304444, + "elev": 0, + "damel": 236.2, + "dsflz": 233.92, + "fsltdz": 231, + "ddz": 204, + "zcxsw": 231, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 224.31, + "w": 0, + "a_fsltdz": -6.689999999999998, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "aRz": -6.69 + }, + ] + const page1 = [ + { + "stcd": "61614200", + "type": "sk", + "hasRz": true, + "stnm": "浮桥河水库", + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "lgtd": 114.875, + "lttd": 31.166667, + "elev": 0, + "damel": 71.33, + "dsflz": 68.04, + "fsltdz": 64.89, + "ddz": 51.78, + "zcxsw": 64.89, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 16.5, + "drpState": 1, + "rz": 60.71, + "w": 162.8, + "a_fsltdz": -4.18, + "rzTm": "2025-06-03T02:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -4.18, + percent:98.21 + }, + { + "stcd": "716115401", + "type": "sk", + "hasRz": true, + "stnm": "长冲水库", + "adcd": "421181110000", + "wscd": null, + "importancy": 0, + "lgtd": 115.061389, + "lttd": 31.408611, + "elev": 0, + "damel": 21.6, + "dsflz": 20.15, + "fsltdz": 130.8, + "ddz": 0, + "zcxsw": 130.8, + "drpTm": "2024-05-17T08:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 126.41, + "w": 0.374, + "a_fsltdz": -4.390000000000015, + "rzTm": "2024-05-17T06:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "pic": [ + { + "stcd": "716115401", + "tm": "2024-05-17T08:05:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/0517/716115401/20240517160500.jpg" + }, + { + "stcd": "716115401", + "tm": "2024-05-17T08:20:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/0517/716115402/20240517162000.jpg" + } + ], + "aRz": -4.39, + percent:96.12 + }, + { + "stcd": "716115301", + "type": "sk", + "hasRz": true, + "stnm": "葡萄冲水库", + "adcd": "421181110000", + "wscd": null, + "importancy": 0, + "lgtd": 115.051389, + "lttd": 31.423333, + "elev": 0, + "damel": 15.8, + "dsflz": 14.73, + "fsltdz": 14.3, + "ddz": 9.48, + "zcxsw": 14.3, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 213.75, + "w": 0.04, + "a_fsltdz": 199.45, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716115301", + "tm": "2023-03-12T08:02:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115301/20230312160200.jpg" + }, + { + "stcd": "716115301", + "tm": "2023-03-12T07:11:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115302/20230312151100.jpg" + } + ], + "aRz": 199.45, + percent:89.21 + }, + { + "stcd": "716115701", + "type": "sk", + "hasRz": true, + "stnm": "二五冲水库", + "adcd": "421181110000", + "wscd": null, + "importancy": 0, + "lgtd": 115.087222, + "lttd": 31.378333, + "elev": 0, + "damel": 11.2, + "dsflz": 10.07, + "fsltdz": 108.55, + "ddz": 1.5, + "zcxsw": 108.55, + "drpTm": "2025-03-22T08:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 99.65, + "w": 0.038, + "a_fsltdz": -8.899999999999991, + "rzTm": "2025-03-22T08:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "pic": [ + { + "stcd": "716115701", + "tm": "2025-03-06T23:01:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2025/0307/716115701/20250307070100.jpg" + }, + { + "stcd": "716115701", + "tm": "2024-10-18T06:28:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/1018/716115702/20241018142800.jpg" + } + ], + "aRz": -8.9, + percent:58.2 + }, + + ] + + const flyTo = (record) => { + const { lgtd, lttd } = record; + if (lgtd && lttd) { + const newLgtd = type == 'sc' ? lgtd - 0.00122 : lgtd; + // dispatch.runtime.setFeaturePop({ type, properties: record, coordinates: [lgtd, lttd] }); + dispatch.runtime.setCameraTarget({ + center: [newLgtd, lttd + config.poiPositionOffsetY.hd], + zoom: config.poiPositionZoom.hd, + pitch: config.poiPitch, + }); + } + } + const [data, setData] = useState([]) + useEffect(() => { + if (type == 'sc') { + setData(scData) + } else { + setData(page1) + } + }, [type]) + return ( - - - + tabs={ + // <> + // + // + // + + toggleStType('sc')}>水厂 + toggleStType('syd')}>水源地 + } > - +
+
+ + 综合达标率 +
+ + + + + + 名称 + 达标率(%) + + + + { + data.map((row) => ( + flyTo(row)}> + + {row.stnm} + + + {row.percent} + + + ))} + +
+
+
) } diff --git a/src/views/Home/panels/YjList/index.js b/src/views/Home/panels/YjList/index.js new file mode 100644 index 0000000..275dc2f --- /dev/null +++ b/src/views/Home/panels/YjList/index.js @@ -0,0 +1,453 @@ +import React, { useMemo, useState, useEffect } from 'react'; +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 config from '../../../../config'; +import clsx from 'clsx'; +import moment from 'moment'; +function DrpReal({ style }) { + const [type, setType] = useState('sc') + const dispatch = useDispatch(); + const toggleStType = (type) => { + setType(type) + + } + const scData = [ + { + "stcd": "61614200", + "type": "sk", + "hasRz": true, + "stnm": "浮桥河水厂", + zb: '浊度', + yjvalue: 0.6, + status:1, + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "lgtd": 114.875, + "lttd": 31.166667, + "elev": 0, + "damel": 71.33, + "dsflz": 68.04, + "fsltdz": 64.89, + "ddz": 51.78, + "zcxsw": 64.89, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 16.5, + "drpState": 1, + "rz": 60.71, + "w": 162.8, + "a_fsltdz": -4.18, + "rzTm": "2025-06-03T02:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -4.18, + percent: 98.20 + }, + { + "stcd": "61612610", + "type": "sk", + "hasRz": true, + "stnm": "三河口水厂", + zb: '余氯', + yjvalue: 0.25, + "adcd": "421181109000", + "wscd": null, + percent: 94.29, + "importancy": 0, + "lgtd": 115.166667, + "lttd": 31.333333, + "elev": 0, + "damel": 156.8, + "dsflz": 154.99, + "fsltdz": 149, + "ddz": 124, + "zcxsw": 149, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 12.5, + "drpState": 1, + "rz": 141.45, + "w": 77.8, + "a_fsltdz": -7.550000000000011, + "rzTm": "2025-06-03T01:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -7.55 + }, + { + "stcd": "7CS000231", + "type": "sk", + "hasRz": true, + "stnm": "刘集水厂", + zb: 'PH值', + yjvalue: 7.4, + percent: 56.98, + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "lgtd": 115.048056, + "lttd": 31.335556, + "elev": 0, + "damel": 79.6, + "dsflz": 78.65, + "fsltdz": 72.05, + "ddz": 69.55, + "zcxsw": 72.05, + "drpTm": "2023-11-20T01:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 76.49, + "w": 0.049, + "a_fsltdz": 4.439999999999998, + "rzTm": "2025-04-11T06:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "7CS000231", + "tm": "2023-11-20T01:04:18.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1120/7CS000231/20231120090418.jpg" + }, + { + "stcd": "7CS000231", + "tm": "2023-11-20T01:07:54.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1120/7CS000232/20231120090754.jpg" + } + ], + "aRz": 4.44 + }, + { + "stcd": "716460001", + "type": "sk", + "hasRz": true, + "stnm": "杉林河水厂", + zb: 'PH值', + yjvalue: 6.3, + "adcd": "421181107000", + "wscd": null, + percent: 42.14, + "importancy": 0, + "lgtd": 115.433056, + "lttd": 31.304444, + "elev": 0, + "damel": 236.2, + "dsflz": 233.92, + "fsltdz": 231, + "ddz": 204, + "zcxsw": 231, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 224.31, + "w": 0, + "a_fsltdz": -6.689999999999998, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "aRz": -6.69 + }, + ] + + const page1 = [ + { + "stcd": "716115401", + "type": "sk", + "hasRz": true, + "stnm": "长冲水库", + "adcd": "421181110000", + "wscd": null, + zb: '氨氮', + yjvalue: 1.3, + status:1, + "importancy": 0, + "lgtd": 115.061389, + "lttd": 31.408611, + "elev": 0, + "damel": 21.6, + "dsflz": 20.15, + "fsltdz": 130.8, + "ddz": 0, + "zcxsw": 130.8, + "drpTm": "2024-05-17T08:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 126.41, + "w": 0.374, + "a_fsltdz": -4.390000000000015, + "rzTm": "2024-05-17T06:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "pic": [ + { + "stcd": "716115401", + "tm": "2024-05-17T08:05:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/0517/716115401/20240517160500.jpg" + }, + { + "stcd": "716115401", + "tm": "2024-05-17T08:20:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/0517/716115402/20240517162000.jpg" + } + ], + "aRz": -4.39, + percent: 96.12 + }, + { + "stcd": "61614200", + "type": "sk", + "hasRz": true, + "stnm": "浮桥河水库", + "adcd": "421181100000", + "wscd": null, + zb: '浊度', + yjvalue: 0.4, + + "importancy": 0, + "lgtd": 114.875, + "lttd": 31.166667, + "elev": 0, + "damel": 71.33, + "dsflz": 68.04, + "fsltdz": 64.89, + "ddz": 51.78, + "zcxsw": 64.89, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 16.5, + "drpState": 1, + "rz": 60.71, + "w": 162.8, + "a_fsltdz": -4.18, + "rzTm": "2025-06-03T02:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -4.18, + percent: 98.21 + }, + + { + "stcd": "716115301", + "type": "sk", + "hasRz": true, + "stnm": "葡萄冲水库", + "adcd": "421181110000", + zb: '总磷', + yjvalue: 0.09, + "wscd": null, + "importancy": 0, + "lgtd": 115.051389, + "lttd": 31.423333, + "elev": 0, + "damel": 15.8, + "dsflz": 14.73, + "fsltdz": 14.3, + "ddz": 9.48, + "zcxsw": 14.3, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 213.75, + "w": 0.04, + "a_fsltdz": 199.45, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716115301", + "tm": "2023-03-12T08:02:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115301/20230312160200.jpg" + }, + { + "stcd": "716115301", + "tm": "2023-03-12T07:11:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716115302/20230312151100.jpg" + } + ], + "aRz": 199.45, + percent: 89.21 + }, + { + "stcd": "716115701", + "type": "sk", + zb: 'PH值', + yjvalue: 7.1, + "hasRz": true, + "stnm": "二五冲水库", + "adcd": "421181110000", + "wscd": null, + "importancy": 0, + "lgtd": 115.087222, + "lttd": 31.378333, + "elev": 0, + "damel": 11.2, + "dsflz": 10.07, + "fsltdz": 108.55, + "ddz": 1.5, + "zcxsw": 108.55, + "drpTm": "2025-03-22T08:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 99.65, + "w": 0.038, + "a_fsltdz": -8.899999999999991, + "rzTm": "2025-03-22T08:00:00.000Z", + "rzWarning": 0, + "rzState": 2, + "pic": [ + { + "stcd": "716115701", + "tm": "2025-03-06T23:01:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2025/0307/716115701/20250307070100.jpg" + }, + { + "stcd": "716115701", + "tm": "2024-10-18T06:28:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/1018/716115702/20241018142800.jpg" + } + ], + "aRz": -8.9, + percent: 58.2 + }, + + ] + + const flyTo = (record) => { + const { lgtd, lttd } = record; + if (lgtd && lttd) { + const newLgtd = type == 'sc' ? lgtd - 0.00122 : lgtd; + // dispatch.runtime.setFeaturePop({ type, properties: record, coordinates: [lgtd, lttd] }); + dispatch.runtime.setCameraTarget({ + center: [newLgtd, lttd + config.poiPositionOffsetY.hd], + zoom: config.poiPositionZoom.hd, + pitch: config.poiPitch, + }); + } + } + const [data, setData] = useState([]) + useEffect(() => { + if (type == 'sc') { + setData(scData) + } else { + setData(page1) + } + }, [type]) + + return ( + + // + // + // + + toggleStType('sc')}>水厂 + toggleStType('syd')}>水源地 + + } + > +
+ + + + + 序号 + 水厂名称 + 预警指标 + 预警数值 + 预警时间 + + + + { + data.map((row, i) => ( + flyTo(row)}> + + {i + 1} + + +
{row.stnm}
+ +
+ + {row.zb} + + + {row.yjvalue} + + +
{moment(row.drpTm).format('YYYY-MM-DD HH:mm:ss')}
+
+
+ ))} +
+
+
+
+
+ ) +} + +export default DrpReal; diff --git a/src/views/Home/panels/Yjdd/index.js b/src/views/Home/panels/Yjdd/index.js index 755c38b..c167c2b 100644 --- a/src/views/Home/panels/Yjdd/index.js +++ b/src/views/Home/panels/Yjdd/index.js @@ -11,1449 +11,313 @@ import DpTableCell from '../../../../layouts/mui/DpTableCell'; import DpTableRow from '../../../../layouts/mui/DpTableRow'; import clsx from 'clsx'; import { renderDrp } from '../../../../utils/renutils'; + +const emergencyTeamData = [ + { + id: 1, + type: '应急指挥官', + department: '麻城市水务应急指挥中心', + name: '张伟', + duty: '统筹全局应急响应、协调跨部门资源', + contact: '138XXXX1234', + note: '持有应急管理师资格证' + }, + { + id: 2, + type: '抢修技术专家', + department: '麻城市第一水厂', + name: '李强', + duty: '主导管网爆管、设备故障等抢修工作', + contact: '137XXXX5678', + note: '10年管网维修经验' + }, + { + id: 3, + type: '水质监测员', + department: '麻城市水质检测中心', + name: '王芳', + duty: '实时监测水源、管网水质,预警污染事件', + contact: '137XXXX9012', + note: '持有水质检测高级证书' + }, + { + id: 4, + type: '防汛应急组组长', + department: '麻城市第二水厂', + name: '陈刚', + duty: '负责洪涝期间水厂防汛设施巡查与应急排水', + contact: '136XXXX4456', + note: '曾参与2020年麻城抗洪抢险' + }, + { + id: 5, + type: '后勤保障员', + department: '麻城市水务局后勤部', + name: '刘敏', + duty: '调配应急物资(沙袋、发电机、净水剂等)', + contact: '135XXXX7890', + note: '熟悉全市应急物资储备分布' + }, + { + id: 6, + type: '医疗救护员', + department: '麻城市卫生应急分队', + name: '赵静', + duty: '处理现场人员伤亡、提供急救支持', + contact: '134XXXX2345', + note: '执业医师、急救培训导师' + }, + { + id: 7, + type: '通讯联络员', + department: '麻城市水务应急指挥中心', + name: '吴昊', + duty: '保障应急通讯畅通、协调多方信息传递', + contact: '133XXXX6789', + note: '熟悉卫星电话、对讲机操作' + }, + { + id: 8, + type: '安全监督员', + department: '麻城市第三水厂', + name: '孙磊', + duty: '监督现场安全作业、防范次生灾害', + contact: '132XXXX1234', + note: '注册安全工程师' + }, + { + id: 9, + type: '无人机操作员', + department: '麻城市水务信息化中心', + name: '周婷', + duty: '使用无人机巡查管网、监测洪涝积水点', + contact: '131XXXX5678', + note: '持有无人机驾驶员执照' + }, + { + id: 10, + type: '群众疏散引导员', + department: '麻城市社区应急服务队', + name: '何军', + duty: '负责受影响区域群群众疏散与安置引导', + contact: '130XXXX9012', + note: '熟悉麻城市各社区分布' + } +]; +const emergencySuppliesData = [ + { + id: 1, + name: '防汛沙袋', + quantity: 1200, + unit: '个', + location: '麻城市第一水厂应急仓库', + status: '正常', + note: '近期未使用,维护整齐' + }, + { + id: 2, + name: '抽水泵', + quantity: 8, + unit: '台', + location: '麻城市第二水厂设备间', + status: '正常', + note: '3台为备用,定期维护' + }, + { + id: 3, + name: '消毒药剂(次氯酸钠)', + quantity: 450, + unit: 'kg', + location: '麻城市水质检测中心仓库', + status: '库存不足(需补充至550kg)', + note: '有效期至2024年12月' + }, + { + id: 4, + name: '应急发电设备', + quantity: 5, + unit: '台(30kW)', + location: '麻城市水务局总仓库', + status: '正常', + note: '2台为移动式,可快速部署' + }, + { + id: 5, + name: '水质检测仪器', + quantity: 3, + unit: '套', + location: '麻城市水质检测中心实验室', + status: '正常', + note: '含性能试剂与在线测量设备' + }, + { + id: 6, + name: '移动式净水设备', + quantity: 2, + unit: '套', + location: '麻城市应急物资储备中心', + status: '正常', + note: '日处理能力50吨/台' + }, + { + id: 7, + name: '应急照明灯', + quantity: 18, + unit: '盏', + location: '麻城市第二水厂值班室', + status: '库存不足(需补充至32盏)', + note: '电池续航28小时' + }, + { + id: 8, + name: '救生衣', + quantity: 50, + unit: '件', + location: '麻城市第一水厂防汛物资库', + status: '正常', + note: '反光条清晰,适合夜间使用' + }, + { + id: 9, + name: '管网检修配件', + quantity: null, + unit: '若干套', + location: '麻城市第一水厂维修车间', + status: '正常', + note: '含阀门、管路、密封胶等' + }, + { + id: 10, + name: '防汛挡水板', + quantity: 15, + unit: '块', + location: '麻城市水务局总仓库', + status: '正常', + note: '可拼接使用,高度可调' + } +]; +const emergencyVehiclesData = [ + { + id: 1, + type: '消防车', + location: '城城市第一水厂应急车库', + status: '正常', + specs: { + model: '东风市场专用消防车', + capacity: '3000L', + tank: '500L', + power: '150kW', + features: '水炮管路' + }, + usage: '应对水厂火灾、洪涝灾害中紧急排水、救援和人员疏散' + }, + { + id: 2, + type: '救护车', + location: '城城市水务局总仓库', + status: '正常', + specs: { + model: '奔驰ICU型救护车', + features: ['呼吸机', '心电监护仪', '除颤器', '急救药品'] + }, + usage: '应急救援时对受伤人员、特别是处理化学药剂时的中毒及其他紧急医疗事件' + }, + { + id: 3, + type: '水质监测车', + location: '城城市水质检测中心', + status: '维护中', + specs: { + model: '专用水质检测车', + equipment: ['便携式水质检测仪', '便携式浊度检测仪', '便携式水质采样分析仪'] + }, + usage: '快速响应水质污染突发事件,现场检测和水质采样分析' + }, + { + id: 4, + type: '移动泵站', + location: '城城市第一水厂设备间', + status: '正常', + specs: { + model: '移动式抽水泵车', + flow: '200m³/h', + lift: '10m', + power: '75kW' + }, + usage: '洪涝灾害中快速排水、园区水厂供水中断时应急供水、补水' + }, + { + id: 5, + type: '防汛排涝综合车', + location: '城城市城市管理执法局仓库', + status: '正常', + specs: { + model: '防汛排涝综合车', + equipment: ['大功率抽水泵', '发电机', '照明设备'] + }, + usage: '应对城市内涝、快速排除积水、保障水厂及周边区域安全' + }, + { + id: 6, + type: '应急发电车', + location: '城城市水务局总仓库', + status: '正常', + specs: { + model: '300kW应急发电车', + power: '300kW', + runtime: '8小时' + }, + usage: '停电时为水厂设备供电、保障供水系统的持续运行' + }, + { + id: 7, + type: '管网检修车', + location: '城城市第一水厂维修车间', + status: '在用', + specs: { + model: '专用管网检修车', + equipment: ['管材', '水表', '阀门', '焊接设备等'] + }, + usage: '快速响应管网检修、维护等建设工作' + }, + { + id: 8, + type: '水质检测无人机', + location: '城城市水信息中心控制室', + status: '正常', + specs: { + model: '多旋翼无人机', + equipment: ['水质多参数分析仪', '高清摄像头'] + }, + usage: '空中巡查水质、快速发现内部管网泄漏' + }, + { + id: 9, + type: '应急照明车', + location: '城城市第一水厂值班室', + status: '正常', + specs: { + model: '移动式应急照明车', + power: '300W', + runtime: '12小时' + }, + usage: '夜间应急抢修、救援时提供照明支持' + }, + { + id: 10, + type: '防化服巡视器', + location: '城城市水质检测中心仓库', + status: '正常', + specs: { + model: 'RHF-1防化服', + level: 'RH2级8.8正压呼吸器', + protection: 'A级' + }, + usage: '处理化学药剂和油脂泄漏、水质污染等事件时,保护现场人员安全' + } +]; + -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" - } -] -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 - } -] -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 -}] -const data4 = [ - { - "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": 5821, - "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": 5820, - "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": 5819, - "cd_nm": "游家冲水库", - "termite_status": "n", - "tm": "2025-05-21 04:25:56", - "is_main_cd": "y" - } - ] - }, - { - "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": null - }, - { - "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": null - } -] function DrpReal({ style }) { const [tab,setTab] = useState('1') @@ -1465,10 +329,10 @@ function DrpReal({ style }) { color="green" tabs={ - setTab('1')}>物资仓库 - setTab('2')}>应急队伍 + setTab('1')}>人员资源 + setTab('2')}>物资资源 {/* setTab('3')}>闸门 */} - setTab('4')}>安置点 + setTab('4')}>设备资源 } > @@ -1478,21 +342,33 @@ function DrpReal({ style }) { - 仓库名称 - 仓库地址 + 序号 + 人员类型 + 所属单位 + 姓名 + 职责描述 + 联系方式 + 备注 - {/* {data1.map((row,index) => ( + {emergencyTeamData.map((row,index) => ( {index+1} - {row.res_nm} + {row.type} + +
+ {row.department} +
+
+ {row.name} +
+ {row.duty} +
+ {row.contact} + {row.note}
- ))} */} - - 麻城市应急物资储备中心 - 麻城市京广大道与金交汇处 - + ))}
:null } @@ -1501,51 +377,35 @@ function DrpReal({ style }) { - 队伍名称 - 人员总数 - 地址 - 管理单位 + 序号 + 物资种类 + 数量(单位) + 储备地点 + 可用状态 + 备注 - {/* {data2.map((row,index) => ( - + {emergencySuppliesData.map((row,index) => ( + {index+1} - {row.res_nm} - {row.town_nm} - {row.cd_nm} - {row.value} - - ))} */} - - 乡镇应急救援中队 - 20 - 麻城市京广大道与金交汇处 - 麻城市水利局 - - -
:null - } - { - tab==='3'? - - - - 序号 - 水库名称 - 行政区 - 测点 - 渗流量 - - - - {data3.map((row,index) => ( - - {index+1} - {row.res_nm} - {row.town_nm} - {row.cd_nm} - {row.value} + {row.name} {row.unit} + {row.quantity} + +
+ {row.location} +
+
+ +
+ {row.status} +
+
+ +
+ {row.note} +
+
))}
@@ -1556,28 +416,41 @@ function DrpReal({ style }) {
- 安置点名称 - 容纳人数 - 地址 - 管理单位 + 序号 + 设备类型 + 位置 + 运行状态 + 技术参数 + 适用场景 - {/* {data4.map((row,index) => ( - + {emergencyVehiclesData.map((row,index) => ( + {index+1} - {row.res_nm} - {row.town_nm} - {row.res_nm} - {row?.children?.[0]?.termite_status==='y'?'有白蚁':'无白蚁'} + {row.type} + +
+ {row.location} +
+
+ +
+ {row.status} +
+
+ +
+ {row.specs.model} +
+
+ +
+ {row.usage} +
+
- ))} */} - - 阎家河镇 - 1800 - 麻城市京广大道与金交汇处 - 麻城市水利局 - + ))}
:null } diff --git a/src/views/Home/panels/Yjsj/Setting.js b/src/views/Home/panels/Yjsj/Setting.js new file mode 100644 index 0000000..a3055ef --- /dev/null +++ b/src/views/Home/panels/Yjsj/Setting.js @@ -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 ( + +
+ + 实时雨量显示设置 + +
+ +
+ 地图实时雨量显示雨量时段 + +
+
+ 显示实时雨量图层 + dispath.map.setLayerVisible({ RealDrpLayer: e.target.checked })} + /> +
+
+
+
+
+
+ ) +} + +export default Setting; diff --git a/src/views/Home/panels/Yjsj/index.js b/src/views/Home/panels/Yjsj/index.js new file mode 100644 index 0000000..1544e3b --- /dev/null +++ b/src/views/Home/panels/Yjsj/index.js @@ -0,0 +1,179 @@ +import React, { useMemo, useState } from 'react'; +import useRequest from '../../../../utils/useRequest'; +import PanelBox from '../../components/PanelBox'; +import { useDispatch, useSelector } from 'react-redux'; +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'; +import moment from 'moment'; +import config from '../../../../config'; + +const data = [ + { + "stcd": "716129061", + "type": "sk", + "hasRz": true, + "stnm": "仰天窝水库", + event: '仰天窝水库蓄水量<30%', + types:'干旱', + "adcd": "421181201000", + "wscd": null, + "importancy": 0, + "lgtd": 115.106667, + "lttd": 31.126389, + "elev": 0, + "damel": 325.08, + "dsflz": 324.18, + "fsltdz": 323.5, + "ddz": 319.5, + "zcxsw": 323.5, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 325.16, + "w": 0.132, + "a_fsltdz": 4.660000000000025, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716129061", + "tm": "2023-03-12T06:05:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716129061/20230312140500.jpg" + }, + { + "stcd": "716129061", + "tm": "2023-03-12T07:25:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716129062/20230312152500.jpg" + } + ], + "aRz": 4.66 + }, + + { + "stcd": "61612910", + "stnm": "桃林河(阎河)", + "adcd": "421181000000000", + event: '桃林河河道水位超警', + types: '洪涝', + + "wscd": null, + "importancy": 0, + "lgtd": 115.087777777, + "lttd": 31.164444444, + "elev": null, + "hasRz": true, + "wrz": null, + "wrq": null, + "grz": null, + "grq": null, + "sfz": null, + "sfq": null, + "type": "sh", + "tm": "2025-06-03T02:35:00.000Z", + "rz": 55.67, + "trend": 0, + "state": 1, + "warning": 0, + "maxRz": 55.67, + "maxDate": "2025-06-03T02:00:00.000Z", + "warndes": null + }, + { + "stcd": "61612610", + "type": "sk", + "hasRz": true, + "stnm": "三河口水库", + event: '三河口水库水源地水质突变', + types:'水质污染', + "adcd": "421181109000", + "wscd": null, + "importancy": 0, + "lgtd": 115.166667, + "lttd": 31.333333, + "elev": 0, + "damel": 156.8, + "dsflz": 154.99, + "fsltdz": 149, + "ddz": 124, + "zcxsw": 149, + "drpTm": "2025-06-03T02:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 12.5, + "drpState": 1, + "rz": 141.45, + "w": 77.8, + "a_fsltdz": -7.550000000000011, + "rzTm": "2025-06-03T01:00:00.000Z", + "rzWarning": 0, + "rzState": 1, + "aRz": -7.55 + }, +] + +function DrpReal({ style }) { + const dispatch = useDispatch(); + const flyTo = (record) => { + const { lgtd, lttd } = record; + const types = record.type == 'sk' ? 'RealSkPop' :'RealHDPop' + if (lgtd && lttd) { + dispatch.runtime.setFeaturePop({ type:types, properties: {...record,events:1}, coordinates: [lgtd, lttd] }); + dispatch.runtime.setCameraTarget({ + center: [lgtd, lttd + config.poiPositionOffsetY.hd], + zoom: config.poiPositionZoom.hd, + pitch: config.poiPitch, + }); + } + } + + return ( + + + + + + 序号 + 事件名称 + 事件类型 + 发生时间 + + + + {data.map((row,index) => ( + flyTo(row)}> + {index+1} + {row.event} + {row.types} + {moment(row.drpTm).format('YYYY-MM-DD HH:mm:ss')} + + ))} + +
+
+
+ ) +} + +export default DrpReal;