From 30b5d176733393835f32a8a3e01fadba75d3ad6e Mon Sep 17 00:00:00 2001 From: lishenfeng Date: Thu, 29 May 2025 11:46:29 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E7=81=8C=E5=8C=BA=E5=9B=BE=E5=B1=82?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/gqbg.png | Bin 10879 -> 12263 bytes public/assets/tl.png | Bin 0 -> 21736 bytes src/models/map/index.js | 2 +- src/models/map/layout.js | 27 +- src/views/Home/MapCtrl/mapstyle/sources.js | 23 +- src/views/Home/PanelIndex.js | 6 + src/views/Home/panels/Gqdd/index.js | 130 +- src/views/Home/panels/Gwjc/index.js | 4 +- src/views/Home/panels/Gwxs/Setting.js | 51 + src/views/Home/panels/Gwxs/index.js | 286 ++++ src/views/Home/panels/Gwxs/index.less | 90 ++ src/views/Home/panels/Gxzxll/index.js | 40 +- src/views/Home/panels/SzWatch/index.js | 15 +- src/views/Home/panels/Szwtqytj/index.js | 17 +- src/views/Home/panels/Szzdd/index.js | 21 +- src/views/Home/panels/WhSta/index.js | 21 +- src/views/Home/panels/Yakgl/index.js | 183 ++- src/views/Home/panels/Yjdd/Setting.js | 67 + src/views/Home/panels/Yjdd/index.js | 1589 ++++++++++++++++++++ src/views/Home/panels/Yyfa/index.js | 17 +- src/views/Home/panels/lsphb/index.js | 95 +- 21 files changed, 2546 insertions(+), 138 deletions(-) create mode 100644 public/assets/tl.png create mode 100644 src/views/Home/panels/Gwxs/Setting.js create mode 100644 src/views/Home/panels/Gwxs/index.js create mode 100644 src/views/Home/panels/Gwxs/index.less create mode 100644 src/views/Home/panels/Yjdd/Setting.js create mode 100644 src/views/Home/panels/Yjdd/index.js diff --git a/public/assets/gqbg.png b/public/assets/gqbg.png index 2633600017b5f5e516ab23df2f5caad7bb990314..573f63095e5ed45c11070580a4c6fb1e0b61c4c4 100644 GIT binary patch literal 12263 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 z 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 literal 10879 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 Vg^HDbq&NTo002ovPDHLkV1nRqL~j59 diff --git a/public/assets/tl.png b/public/assets/tl.png new file mode 100644 index 0000000000000000000000000000000000000000..363874bc324947e62d5b0d8713ac731ab1bb3224 GIT binary patch literal 21736 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 } else if (name === '电耗分析') { return + } else if (name === '24h用水') { + return } else if (name === '药耗分析') { return } else if (name === '报警统计') { @@ -259,6 +263,8 @@ export default function PanelIndex({ name, style, ...params }) { } else if (name === '信息总览') { return + }else if (name === '应急指挥调度') { + return } diff --git a/src/views/Home/panels/Gqdd/index.js b/src/views/Home/panels/Gqdd/index.js index 34a8062..bfbc2ce 100644 --- a/src/views/Home/panels/Gqdd/index.js +++ b/src/views/Home/panels/Gqdd/index.js @@ -17,7 +17,7 @@ import { renderHDRz } from '../../../../utils/renutils'; import Setting from './Setting'; import { InfoPopNames } from '../../InfoPops'; import config from '../../../../config'; -import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index' +import { Switch, FormControlLabel, InputLabel, Select, MenuItem, FormControl } from '@material-ui/core/index' import { styled } from '@material-ui/styles'; function HDReal({ style }) { @@ -81,28 +81,42 @@ function HDReal({ style }) { } const CustomSwitch = styled(Switch)({ - '& .MuiSwitch-switchBase': { - color: '#fff', - '&.Mui-checked': { - color: '#1890ff', - '& + .MuiSwitch-track': { - backgroundColor: '#1890ff', - opacity: 0.5, + '& .MuiSwitch-switchBase': { + color: '#fff', + '&.Mui-checked': { + color: '#1890ff', + '& + .MuiSwitch-track': { + backgroundColor: '#1890ff', + opacity: 0.5, + }, }, }, - }, - '& .MuiSwitch-track': { - backgroundColor: 'rgba(255, 255, 255, 0.3)', - }, -}); + '& .MuiSwitch-track': { + backgroundColor: 'rgba(255, 255, 255, 0.3)', + }, + }); -const StyledFormControlLabel = styled(FormControlLabel)({ - '& .MuiFormControlLabel-label': { - color: '#fff' + const StyledFormControlLabel = styled(FormControlLabel)({ + '& .MuiFormControlLabel-label': { + color: '#fff' + } + }); + const [dimension, setDimension] = useState('fqh'); + + const switchChange = (e) => { + const val = e.target.checked + setChecked(val) + if (val) { + dispatch.runtime.setCameraTarget({ + center: [114.81944, 31.12068], + zoom: 13, + pitch: 60, + }); + } else { + dispatch.runtime.setHome(); + + } } -}); - const [dimension, setDimension] =useState('fqh'); - return ( - + { setting && showSetting(false)} /> } -
- - + + setChecked(e.target.checked)} + onChange={switchChange} + /> + } + label="多灌区模式" /> - } - label="多灌区模式" - /> - {checked &&
+ {checked &&
- - + +
} -
+
) } diff --git a/src/views/Home/panels/Gwjc/index.js b/src/views/Home/panels/Gwjc/index.js index f90ffb9..55e45ed 100644 --- a/src/views/Home/panels/Gwjc/index.js +++ b/src/views/Home/panels/Gwjc/index.js @@ -130,8 +130,8 @@ function HDReal({ style }) { 监测点 压力(Mpa) - 流量(m³/h) - 水质合格率(%) + 流量(m³/h) + 水质合格率(%) {/* 警戒水位 */} diff --git a/src/views/Home/panels/Gwxs/Setting.js b/src/views/Home/panels/Gwxs/Setting.js new file mode 100644 index 0000000..fd1c4ef --- /dev/null +++ b/src/views/Home/panels/Gwxs/Setting.js @@ -0,0 +1,51 @@ +import React from 'react'; + +import Dialog from '@material-ui/core/Dialog'; +import DialogContent from '@material-ui/core/DialogContent'; +import DpPaperComponent from '../../../../layouts/mui/DpPaperCompanent'; +import { FormGroup, MenuItem, Select, Switch, Typography } from '@material-ui/core'; +import DpDialogTitle from '../../../../layouts/mui/DpDialogTitle'; +import { useDispatch, useSelector } from 'react-redux'; +import { getLayerSetting, getLayerVisible } from '../../../../models/map/selectors'; +import DpBackgroundDrop from '../../../../layouts/mui/DpBackdrop'; + + +function Setting({ onClose }) { + const layerVisible = useSelector(getLayerVisible); + const layerSetting = useSelector(getLayerSetting); + + const dispath = useDispatch(); + + return ( + +
+ + 河道水位显示设置 + +
+ +
+ 显示河道水位图层 + dispath.map.setLayerVisible({ RealHDLayer: e.target.checked })} + /> +
+
+
+
+
+
+ ) +} + +export default Setting; diff --git a/src/views/Home/panels/Gwxs/index.js b/src/views/Home/panels/Gwxs/index.js new file mode 100644 index 0000000..a669bb9 --- /dev/null +++ b/src/views/Home/panels/Gwxs/index.js @@ -0,0 +1,286 @@ +import React, { useMemo, useState,useEffect } from 'react'; +import useRequest from '../../../../utils/useRequest'; +import PanelBox from '../../components/PanelBox'; + +import Table from '@material-ui/core/Table'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableBody from '@material-ui/core/TableBody'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import DpTableCell from '../../../../layouts/mui/DpTableCell'; +import DpTableRow from '../../../../layouts/mui/DpTableRow'; +import { useDispatch, useSelector } from 'react-redux'; +import useRefresh from '../../../../utils/useRefresh'; +import { HDRealPromise } from '../../../../models/_/real'; +import clsx from 'clsx'; +import { renderHDRz } from '../../../../utils/renutils'; +import Setting from './Setting'; +import { InfoPopNames } from '../../InfoPops'; +import config from '../../../../config'; +import { DatePicker } from 'antd'; +import moment from 'moment'; +import './index.less' +import ReactEcharts from 'echarts-for-react'; + +import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index' +const { RangePicker } = DatePicker; + +function rzRender(rz, base) { + return ( + = base ? 'red' : '#fff' }}> + {typeof base === 'number' ? base.toFixed(2) : ''} + + ); +} + +function HDReal({ style }) { + const dispatch = useDispatch(); + const tableRzFilter = useSelector(s => s.realview.tableRzFilter); + const hdAutoRefresh = useSelector(s => s.realview.hdAutoRefresh); + // const t = useRefresh(hdAutoRefresh ? 60 * 1000 : 0); + // let { data } = useRequest(HDRealPromise.get, t); + const [setting, showSetting] = useState(false); + const [dimension, setDimension] =useState('ft'); + + // const showData = useMemo(() => { + // if (!data) { + // return []; + // } + // let ret = []; + // data.forEach(o => { + // if (!tableRzFilter[o.type]) { + // return; + // } + // o.status = Math.floor(Math.random() * (4 - 0 + 1)) + 0 + // o.kd = (Math.random() * 100).toFixed(2); + // o.ll = (Math.random() * 100).toFixed(1); + // ret.push(o); + // }); + // return ret; + // }, [data, tableRzFilter]); + + const showData = Array(1).fill(0).map((o,i) => ({ + date: '2025-05-26', + event: '侵占河道', + type: '侵占河道', + status: '待处理', + place:'浮桥河灌区' + })) + + const flyTo = (record) => { + const { lgtd, lttd } = record; + if (lgtd && lttd) { + dispatch.runtime.setFeaturePop({ type: InfoPopNames.RealHDPop, properties: record, coordinates: [lgtd, lttd] }); + dispatch.runtime.setCameraTarget({ + center: [lgtd, lttd + config.poiPositionOffsetY.hd], + zoom: config.poiPositionZoom.hd, + pitch: config.poiPitch, + }); + } + } + + + const data = [ + { town: '宋埠镇', waterUsage: 440, supplyCapacity: 380 }, + { town: '龟山镇', waterUsage: 430, supplyCapacity: 380 }, + { town: '黄土岗镇', waterUsage: 320, supplyCapacity: 300 }, + { town: '白果镇', waterUsage: 310, supplyCapacity: 300 }, + { town: '福田河镇', waterUsage: 380, supplyCapacity: 480 }, + { town: '张家畈镇', waterUsage: 380, supplyCapacity: 460 }, + { town: '乘马岗镇', waterUsage: 280, supplyCapacity: 340 }, + { town: '木子店镇', waterUsage: 370, supplyCapacity: 450 }, + { town: '盐田河镇', waterUsage: 360, supplyCapacity: 430 } + ]; + const option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + legend: { + data: ['未来24小时用水', '供水能力'], + textStyle: { + color: '#fff' + }, + top: 10 + }, + grid: { + left: '3%', + right: '4%', + bottom: '10%', + containLabel: true + }, + xAxis: [ + { + type: 'category', + data: data.map(item => item.town), + axisLine: { + lineStyle: { + color: '#fff' + } + }, + axisLabel: { + color: '#fff' + } + } + ], + yAxis: [ + { + type: 'value', + name: '水量 (吨/小时)', + nameTextStyle: { + color: '#fff' + }, + axisLine: { + lineStyle: { + color: '#fff' + } + }, + axisLabel: { + color: '#fff' + }, + splitLine: { + lineStyle: { + color: 'rgba(255, 255, 255, 0.1)' + } + } + } + ], + series: [ + { + name: '未来24小时用水', + type: 'bar', + barWidth: '20%', + data: data.map(item => item.waterUsage), + itemStyle: { + color: '#87CEEB' + } + }, + { + name: '供水能力', + type: 'bar', + barWidth: '20%', + data: data.map(item => item.supplyCapacity), + itemStyle: { + color: '#0066CC' + } + } + ] + }; + + const toggleStType = (type) => { + const visible = !tableRzFilter[type]; + dispatch.realview.setTableRzFilter({ [type]: visible }); + } + const [params, setParams] = useState({ tm: [] }) + const toggleAutoRefresh = () => { + dispatch.realview.setHdAutoRefresh(!hdAutoRefresh); + } + + const searchTm = (e) => { + setParams({ + ...params, + stm: e[0].format("YYYY-MM-DD HH:mm"), + etm: e[1].format("YYYY-MM-DD HH:mm"), + tm:e, + }) + }; + useEffect(() => { + let options = ""; + options = { + etm: moment().add(1, 'hour').set({minute: 0, second: 0}).format("YYYY-MM-DD HH:mm"), + stm: moment().subtract(7, 'days').add(1, 'hour').set({minute: 0, second: 0}).format("YYYY-MM-DD HH:mm"), + tm: [ + moment().subtract(7, 'days').add(1, 'hour').set({ minute: 0, second: 0 }), + moment().add(1, 'hour').set({ minute: 0, second: 0 }), + ], + } + + setParams(options) + + }, []) + return ( + + // toggleStType('sh')}>山洪 + // toggleStType('sw')}>水文 + // + // } + extra={ + <> + {/* */} + {/* showSetting(true)}> */} + + } + > +
+
+ trigger.parentElement} + /> +
+
+ + + + +
+
+ + { + setting && showSetting(false)} /> + } +
+ ) +} + +export default HDReal; diff --git a/src/views/Home/panels/Gwxs/index.less b/src/views/Home/panels/Gwxs/index.less new file mode 100644 index 0000000..a91a889 --- /dev/null +++ b/src/views/Home/panels/Gwxs/index.less @@ -0,0 +1,90 @@ + + .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; + } + } + + + +.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/panels/Gxzxll/index.js b/src/views/Home/panels/Gxzxll/index.js index 4560f56..b07fe18 100644 --- a/src/views/Home/panels/Gxzxll/index.js +++ b/src/views/Home/panels/Gxzxll/index.js @@ -20,7 +20,8 @@ import config from '../../../../config'; import moment from 'moment'; import showData from './constant' import ReactECharts from 'echarts-for-react'; - +import {TextField} from '@material-ui/core/index'; +import { styled } from '@material-ui/styles'; function rzRender(rz, base) { return ( = base ? 'red' : '#fff' }}> @@ -30,6 +31,37 @@ function rzRender(rz, base) { } function HDReal({ style }) { + const StyledTextField = styled(TextField)({ + '& .MuiOutlinedInput-root': { + '& fieldset': { + borderColor: 'rgba(255, 255, 255, 0.23)', + }, + '&:hover fieldset': { + borderColor: 'rgba(255, 255, 255, 0.5)', + }, + '&.Mui-focused fieldset': { + borderColor: '#1976d2', + }, + }, + '& .MuiInputLabel-root': { + color: 'rgba(255, 255, 255, 0.7)', + '&.Mui-focused': { + color: '#1976d2', + }, + }, + '& .MuiInputBase-input': { + color: '#fff', + }, + }); + const CustomTextField = (props) => { + return ( + + ); +}; const dispatch = useDispatch(); const tableRzFilter = useSelector(s => s.realview.tableRzFilter); const hdAutoRefresh = useSelector(s => s.realview.hdAutoRefresh); @@ -193,6 +225,12 @@ const option = { } > +
+ console.log(e.target.value)} + /> +
{ + const val = e.target.checked + setChecked(val) + if (val) { + dispatch.runtime.setCameraTarget({ + center: [114.81944, 31.12068], + zoom: 13, + pitch: 60, + }); + } else { + dispatch.runtime.setHome(); + } + } return ( setChecked(e.target.checked)} + onChange={switchChange} /> } label="多灌区模式" diff --git a/src/views/Home/panels/Szwtqytj/index.js b/src/views/Home/panels/Szwtqytj/index.js index 84bcafe..a4ac895 100644 --- a/src/views/Home/panels/Szwtqytj/index.js +++ b/src/views/Home/panels/Szwtqytj/index.js @@ -109,6 +109,21 @@ function HDReal({ style }) { const toggleAutoRefresh = () => { dispatch.realview.setHdAutoRefresh(!hdAutoRefresh); } + const switchChange = (e) => { + const val = e.target.checked + setChecked(val) + if (val) { + dispatch.runtime.setCameraTarget({ + center: [114.81944, 31.12068], + zoom: 13, + pitch: 60, + }); + } else { + dispatch.runtime.setHome(); + + } + } + const [params, setParams] = useState({ tm: [] }) const searchTm = (e) => { @@ -212,7 +227,7 @@ function HDReal({ style }) { control={ setChecked(e.target.checked)} + onChange={switchChange} /> } label="多灌区模式" diff --git a/src/views/Home/panels/Szzdd/index.js b/src/views/Home/panels/Szzdd/index.js index 6e0069e..ea9f826 100644 --- a/src/views/Home/panels/Szzdd/index.js +++ b/src/views/Home/panels/Szzdd/index.js @@ -4,9 +4,11 @@ import MiniSinglePie from './MiniSinglePie' import clsx from 'clsx'; import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index' import { styled } from '@material-ui/styles'; - +import { useDispatch, useSelector } from 'react-redux'; export default function GQ({ style }) { + const dispatch = useDispatch(); + const v1 = 20; const v2 = 32; const r = (v1 * 100 / v2).toFixed(1); @@ -38,7 +40,20 @@ export default function GQ({ style }) { }); const [dimension, setDimension] = useState('fqh'); const [checked, setChecked] = React.useState(false); - + const switchChange = (e) => { + const val = e.target.checked + setChecked(val) + if (val) { + dispatch.runtime.setCameraTarget({ + center: [114.81944, 31.12068], + zoom: 13, + pitch: 60, + }); + } else { + dispatch.runtime.setHome(); + + } + } return ( setChecked(e.target.checked)} + onChange={switchChange} /> } label="多灌区模式" diff --git a/src/views/Home/panels/WhSta/index.js b/src/views/Home/panels/WhSta/index.js index 3e30632..9555a04 100644 --- a/src/views/Home/panels/WhSta/index.js +++ b/src/views/Home/panels/WhSta/index.js @@ -5,7 +5,10 @@ import PanelBox from '../../components/PanelBox'; import OverallContent from './OverallContent'; import { Switch, FormControlLabel,InputLabel, Select, MenuItem,FormControl } from '@material-ui/core/index' import { styled } from '@material-ui/styles'; +import { useDispatch, useSelector } from 'react-redux'; + export default function Overall({ style }) { + const dispatch = useDispatch(); const { data } = useRequest(OverallPromise.get); const CustomSwitch = styled(Switch)({ @@ -30,7 +33,21 @@ export default function Overall({ style }) { } }); const [dimension, setDimension] = useState('fqh'); - const [checked, setChecked] = React.useState(false); + const [checked, setChecked] = React.useState(false); + const switchChange = (e) => { + const val = e.target.checked + setChecked(val) + if (val) { + dispatch.runtime.setCameraTarget({ + center: [114.81944, 31.12068], + zoom: 13, + pitch: 60, + }); + } else { + dispatch.runtime.setHome(); + + } + } return ( setChecked(e.target.checked)} + onChange={switchChange} /> } label="多灌区模式" diff --git a/src/views/Home/panels/Yakgl/index.js b/src/views/Home/panels/Yakgl/index.js index 8939984..dd00fd8 100644 --- a/src/views/Home/panels/Yakgl/index.js +++ b/src/views/Home/panels/Yakgl/index.js @@ -1937,10 +1937,189 @@ const data4 = [ } ] +const data5 = [ + { + "id": 125973, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 16:09:53", + "del": "0", + "planId": "421181000000000", + "planName": "黄土岗镇干旱天气供水应急调度与推演预案", + "levels": "2", + "year": "2025", + "adnm": "麻城市", + "adcd": "421181000000000", + "attachUpdateTime": "2025-05-15 16:09:53", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181000000000", + "url": "dplan/2025/421181000000000/麻城市山洪灾害防御预案.pdf" + }, + { + "id": 125974, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 10:01:56", + "del": "0", + "planId": "421181001000000", + "planName": "宋埠镇洪涝天气水厂防淹应急调度与推演预案", + "levels": "1", + "year": "2025", + "adnm": "龙池桥街道", + "adcd": "421181001000000", + "attachUpdateTime": "2025-05-15 10:01:55", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001000000", + "url": "dplan/2025/421181001000000/龙池桥街道山洪灾害防御预案.pdf" + }, + { + "id": 125975, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:35:33", + "del": "0", + "planId": "421181001001000", + "planName": "木子店镇水质污染应急切换水源与推演预案", + "levels": "0", + "year": "2025", + "adnm": "园林社区居民委员会", + "adcd": "421181001001000", + "attachUpdateTime": "2025-05-15 15:35:33", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001001000", + "url": "dplan/2025/421181001001000/园林社区居民委员会山洪灾害防御预案.pdf" + }, + { + "id": 125975, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:35:33", + "del": "0", + "planId": "421181001001000", + "planName": "龙池桥镇水质污染应急切换水源与推演预案", + "levels": "0", + "year": "2025", + "adnm": "园林社区居民委员会", + "adcd": "421181001001000", + "attachUpdateTime": "2025-05-15 15:35:33", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001001000", + "url": "dplan/2025/421181001001000/园林社区居民委员会山洪灾害防御预案.pdf" + }, { + "id": 125975, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:35:33", + "del": "0", + "planId": "421181001001000", + "planName": "福田镇水质污染应急切换水源与推演预案", + "levels": "0", + "year": "2025", + "adnm": "园林社区居民委员会", + "adcd": "421181001001000", + "attachUpdateTime": "2025-05-15 15:35:33", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001001000", + "url": "dplan/2025/421181001001000/园林社区居民委员会山洪灾害防御预案.pdf" + }, +] +const country =['中馆驿镇', '宋埠镇', '歧亭镇', '白果镇', '夫子河镇', '阎家河镇', '龟山镇', '盐田河镇', '张家畈镇', '木子店镇', '三河口镇', '黄土岗镇', '福田河镇', '乘马岗镇', '顺河镇']; +const ghData = Array(13).fill(0).map((item,i) => ( + { + "id": 125973, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 16:09:53", + "del": "0", + "planId": "421181000000000", + "planName": `${country[i]}干旱天气供水应急调度与推演预案`, + "levels": "2", + "year": "2025", + "adnm": "麻城市", + "adcd": "421181000000000", + "attachUpdateTime": "2025-05-15 16:09:53", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181000000000", + "url": "dplan/2025/421181000000000/麻城市山洪灾害防御预案.pdf" + } +)) + +const hlData = Array(13).fill(0).map((item,i) => ( + { + "id": 125973, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 16:09:53", + "del": "0", + "planId": "421181000000000", + "planName": `${country[i]}洪涝天气水厂防淹应急调度与推演预案`, + "levels": "2", + "year": "2025", + "adnm": "麻城市", + "adcd": "421181000000000", + "attachUpdateTime": "2025-05-15 16:09:53", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181000000000", + "url": "dplan/2025/421181000000000/麻城市山洪灾害防御预案.pdf" + } +)) +const szData = Array(13).fill(0).map((item,i) => ( + { + "id": 125973, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 16:09:53", + "del": "0", + "planId": "421181000000000", + "planName": `${country[i]}水质污染应急切换水源与推演预案`, + "levels": "2", + "year": "2025", + "adnm": "麻城市", + "adcd": "421181000000000", + "attachUpdateTime": "2025-05-15 16:09:53", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181000000000", + "url": "dplan/2025/421181000000000/麻城市山洪灾害防御预案.pdf" + } +)) function DrpReal({ style }) { const [tab,setTab] = useState('1') const dispatch = useDispatch(); - + const rep = useMemo(() => { + if (tab == 1) { + return ghData; + } else if (tab == 2) { + return hlData + } else if (tab == 3) { + return szData + } else { + return []; + } +},[tab]) return ( - {data4.map((row,index) => ( + {rep.map((row,index) => ( {index+1} diff --git a/src/views/Home/panels/Yjdd/Setting.js b/src/views/Home/panels/Yjdd/Setting.js new file mode 100644 index 0000000..a3055ef --- /dev/null +++ b/src/views/Home/panels/Yjdd/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/Yjdd/index.js b/src/views/Home/panels/Yjdd/index.js new file mode 100644 index 0000000..755c38b --- /dev/null +++ b/src/views/Home/panels/Yjdd/index.js @@ -0,0 +1,1589 @@ +import React, { useMemo, useState } from 'react'; +import useRequest from '../../../../utils/useRequest'; +import PanelBox from '../../components/PanelBox'; + +import Table from '@material-ui/core/Table'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableBody from '@material-ui/core/TableBody'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import DpTableCell from '../../../../layouts/mui/DpTableCell'; +import DpTableRow from '../../../../layouts/mui/DpTableRow'; +import clsx from 'clsx'; +import { renderDrp } from '../../../../utils/renutils'; + +const data1 = [ + { + "res_cd": "42118140035", + "res_lon": 115.14137, + "res_lat": 31.55095, + "cd": "01", + "cd_nm": "GN1", + "res_reg_cd": "42118140006-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181112000", + "town_nm": "福田河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "大堰口水库", + "de_value": -4.2885, + "dn_value": -13.5384, + "du_value": 132.4892, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 1.0981, + "max_dn": -2.3255, + "max_du": 132.4892, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140035", + "res_lon": 115.14137, + "res_lat": 31.55095, + "cd": "03", + "cd_nm": "GN3", + "res_reg_cd": "42118140006-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181112000", + "town_nm": "福田河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "大堰口水库", + "de_value": -10.73, + "dn_value": -9.8975, + "du_value": 121.3495, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 1.0981, + "max_dn": -2.3255, + "max_du": 132.4892, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140035", + "res_lon": 115.14137, + "res_lat": 31.55095, + "cd": "02", + "cd_nm": "GN2", + "res_reg_cd": "42118140006-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181112000", + "town_nm": "福田河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "大堰口水库", + "de_value": 1.0981, + "dn_value": -7.0736, + "du_value": 75.4661, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 1.0981, + "max_dn": -2.3255, + "max_du": 132.4892, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140035", + "res_lon": 115.14137, + "res_lat": 31.55095, + "cd": "04", + "cd_nm": "GN4", + "res_reg_cd": "42118140006-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181112000", + "town_nm": "福田河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "大堰口水库", + "de_value": -6.469, + "dn_value": -2.3255, + "du_value": 47.1633, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 1.0981, + "max_dn": -2.3255, + "max_du": 132.4892, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140011", + "res_lon": 115.11878, + "res_lat": 30.88904, + "cd": "01", + "cd_nm": "GN1", + "res_reg_cd": "42118140019-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181104000", + "town_nm": "夫子河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "黄麻坳水库", + "de_value": -5.5809, + "dn_value": 4.6055, + "du_value": -13.083, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": -5.1079, + "max_dn": 4.6055, + "max_du": -11.1644, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140011", + "res_lon": 115.11878, + "res_lat": 30.88904, + "cd": "02", + "cd_nm": "GN2", + "res_reg_cd": "42118140019-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181104000", + "town_nm": "夫子河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "黄麻坳水库", + "de_value": -5.1079, + "dn_value": 3.9064, + "du_value": -12.2936, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": -5.1079, + "max_dn": 4.6055, + "max_du": -11.1644, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140017", + "res_lon": 115.14545, + "res_lat": 30.95398, + "cd": "03", + "cd_nm": "GN3", + "res_reg_cd": "42118140031-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181107000", + "town_nm": "盐田河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "群建水库", + "de_value": 1.166, + "dn_value": 2.1274, + "du_value": 11.5948, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 2.6901, + "max_dn": 3.7945, + "max_du": 11.5948, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140011", + "res_lon": 115.11878, + "res_lat": 30.88904, + "cd": "03", + "cd_nm": "GN3", + "res_reg_cd": "42118140019-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181104000", + "town_nm": "夫子河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "黄麻坳水库", + "de_value": -5.1345, + "dn_value": 3.7423, + "du_value": -11.5382, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": -5.1079, + "max_dn": 4.6055, + "max_du": -11.1644, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140022", + "res_lon": 115.39612, + "res_lat": 31.1526, + "cd": "02", + "cd_nm": "GN2", + "res_reg_cd": "42118140014-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181109000", + "town_nm": "木子店镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "何门咀水库", + "de_value": -0.7313, + "dn_value": 2.702, + "du_value": -11.493, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": -0.4931, + "max_dn": 4.3759, + "max_du": -10.0925, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140011", + "res_lon": 115.11878, + "res_lat": 30.88904, + "cd": "04", + "cd_nm": "GN4", + "res_reg_cd": "42118140019-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181104000", + "town_nm": "夫子河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "黄麻坳水库", + "de_value": -5.7038, + "dn_value": 3.3505, + "du_value": -11.1644, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": -5.1079, + "max_dn": 4.6055, + "max_du": -11.1644, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140017", + "res_lon": 115.14545, + "res_lat": 30.95398, + "cd": "04", + "cd_nm": "GN4", + "res_reg_cd": "42118140031-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181107000", + "town_nm": "盐田河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "群建水库", + "de_value": 1.3441, + "dn_value": 3.3718, + "du_value": 10.8126, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 2.6901, + "max_dn": 3.7945, + "max_du": 11.5948, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140022", + "res_lon": 115.39612, + "res_lat": 31.1526, + "cd": "01", + "cd_nm": "GN1", + "res_reg_cd": "42118140014-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181109000", + "town_nm": "木子店镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "何门咀水库", + "de_value": -0.4931, + "dn_value": 4.3759, + "du_value": -10.0925, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": -0.4931, + "max_dn": 4.3759, + "max_du": -10.0925, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140017", + "res_lon": 115.14545, + "res_lat": 30.95398, + "cd": "01", + "cd_nm": "GN1", + "res_reg_cd": "42118140031-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181107000", + "town_nm": "盐田河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "群建水库", + "de_value": 2.6901, + "dn_value": 3.7368, + "du_value": 8.7918, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 2.6901, + "max_dn": 3.7945, + "max_du": 11.5948, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140017", + "res_lon": 115.14545, + "res_lat": 30.95398, + "cd": "02", + "cd_nm": "GN2", + "res_reg_cd": "42118140031-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181107000", + "town_nm": "盐田河镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "群建水库", + "de_value": 1.5528, + "dn_value": 3.7945, + "du_value": 7.5172, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 2.6901, + "max_dn": 3.7945, + "max_du": 11.5948, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140009", + "res_lon": 114.73138, + "res_lat": 31.01948, + "cd": "04", + "cd_nm": "GN4", + "res_reg_cd": "42118140028-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181102000", + "town_nm": "歧亭镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "鲇鱼坝水库", + "de_value": -2.3116, + "dn_value": -7.9976, + "du_value": -6.8754, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": -1.4148, + "max_dn": -7.6521, + "max_du": -3.4337, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140032", + "res_lon": 115.13073, + "res_lat": 31.35489, + "cd": "02", + "cd_nm": "GN2", + "res_reg_cd": "42118140020-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181111000", + "town_nm": "黄土岗镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "待除险加固", + "label": "2023高标准", + "res_nm": "鸡翅关水库", + "de_value": -4.2641, + "dn_value": -1.5343, + "du_value": -6.8233, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 1.346, + "max_dn": -1.5343, + "max_du": -3.1838, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140032", + "res_lon": 115.13073, + "res_lat": 31.35489, + "cd": "03", + "cd_nm": "GN3", + "res_reg_cd": "42118140020-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181111000", + "town_nm": "黄土岗镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "待除险加固", + "label": "2023高标准", + "res_nm": "鸡翅关水库", + "de_value": -1.1126, + "dn_value": -1.7529, + "du_value": -5.7066, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": 1.346, + "max_dn": -1.5343, + "max_du": -3.1838, + "dt": "2025-05-20", + "is_has_data": "y" + }, + { + "res_cd": "42118140009", + "res_lon": 114.73138, + "res_lat": 31.01948, + "cd": "01", + "cd_nm": "GN1", + "res_reg_cd": "42118140028-A4", + "ch": "0+000", + "province_cd": "420000000000", + "province_nm": "湖北省", + "city_cd": "421100000000", + "city_nm": "黄冈市", + "county_cd": "421181000000", + "county_nm": "麻城市", + "town_cd": "421181102000", + "town_nm": "歧亭镇", + "bas_guid": "鄂东五河片区", + "eng_scal": "小(1)型", + "danger_stat": "非病险水库", + "label": "2023高标准", + "res_nm": "鲇鱼坝水库", + "de_value": -1.4148, + "dn_value": -10.2713, + "du_value": -5.146, + "de_trend": null, + "dn_trend": null, + "du_trend": null, + "max_de": -1.4148, + "max_dn": -7.6521, + "max_du": -3.4337, + "dt": "2025-05-20", + "is_has_data": "y" + } +] +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') + + return ( + + setTab('1')}>物资仓库 + setTab('2')}>应急队伍 + {/* setTab('3')}>闸门 */} + setTab('4')}>安置点 + + } + > + + { + tab==='1'? + + + + 仓库名称 + 仓库地址 + + + + {/* {data1.map((row,index) => ( + + {index+1} + {row.res_nm} + + ))} */} + + 麻城市应急物资储备中心 + 麻城市京广大道与金交汇处 + + +
:null + } + { + tab==='2'? + + + + 队伍名称 + 人员总数 + 地址 + 管理单位 + + + + {/* {data2.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} + + ))} + +
:null + } + { + tab==='4'? + + + + 安置点名称 + 容纳人数 + 地址 + 管理单位 + + + + {/* {data4.map((row,index) => ( + + {index+1} + {row.res_nm} + {row.town_nm} + {row.res_nm} + {row?.children?.[0]?.termite_status==='y'?'有白蚁':'无白蚁'} + + ))} */} + + 阎家河镇 + 1800 + 麻城市京广大道与金交汇处 + 麻城市水利局 + + +
:null + } +
+
+ ) +} + +export default DrpReal; diff --git a/src/views/Home/panels/Yyfa/index.js b/src/views/Home/panels/Yyfa/index.js index fa973d5..f375e8f 100644 --- a/src/views/Home/panels/Yyfa/index.js +++ b/src/views/Home/panels/Yyfa/index.js @@ -72,7 +72,20 @@ const [yyValue, setYyValue] = React.useState(false); useEffect(() => { setValue(res.yy) }, [res]) - + const switchChange = (e) => { + const val = e.target.checked + setChecked(val) + if (val) { + dispatch.runtime.setCameraTarget({ + center: [114.81944, 31.12068], + zoom: 13, + pitch: 60, + }); + } else { + dispatch.runtime.setHome(); + + } + } return ( setChecked(e.target.checked)} + onChange={switchChange} /> } label="多灌区模式" diff --git a/src/views/Home/panels/lsphb/index.js b/src/views/Home/panels/lsphb/index.js index 554e4b7..e61b373 100644 --- a/src/views/Home/panels/lsphb/index.js +++ b/src/views/Home/panels/lsphb/index.js @@ -1,4 +1,4 @@ -import React, { useMemo, useState,useEffect } from 'react'; +import React, { useMemo, useState, useEffect } from 'react'; import useRequest from '../../../../utils/useRequest'; import PanelBox from '../../components/PanelBox'; @@ -55,12 +55,12 @@ function HDReal({ style }) { // return ret; // }, [data, tableRzFilter]); - const showData = Array(1).fill(0).map((o,i) => ({ + const showData = Array(1).fill(0).map((o, i) => ({ date: '2025-05-26', event: '侵占河道', type: '侵占河道', status: '待处理', - place:'浮桥河灌区' + place: '浮桥河灌区' })) const flyTo = (record) => { @@ -76,7 +76,7 @@ function HDReal({ style }) { } - const data = [ + const data = [ { name: '福田镇中心区', leakage: '1258.6', supply: '3526.8', rate: 35.6 }, { name: '木子店镇区', leakage: '986.3', supply: '2832.7', rate: 34.8 }, { name: '龙池桥镇区', leakage: '1485.5', supply: '4482.5', rate: 33.1 }, @@ -97,28 +97,28 @@ function HDReal({ style }) { dispatch.realview.setHdAutoRefresh(!hdAutoRefresh); } - const searchTm = (e) => { - setParams({ - ...params, - stm: e[0].format("YYYY-MM-DD HH:mm"), - etm: e[1].format("YYYY-MM-DD HH:mm"), - tm:e, - }) - }; - useEffect(() => { - let options = ""; - options = { - etm: moment().add(1, 'hour').set({minute: 0, second: 0}).format("YYYY-MM-DD HH:mm"), - stm: moment().subtract(7, 'days').add(1, 'hour').set({minute: 0, second: 0}).format("YYYY-MM-DD HH:mm"), - tm: [ - moment().subtract(7, 'days').add(1, 'hour').set({ minute: 0, second: 0 }), - moment().add(1, 'hour').set({ minute: 0, second: 0 }), - ], - } - - setParams(options) - - }, []) + const searchTm = (e) => { + setParams({ + ...params, + stm: e[0].format("YYYY-MM-DD HH:mm"), + etm: e[1].format("YYYY-MM-DD HH:mm"), + tm: e, + }) + }; + useEffect(() => { + let options = ""; + options = { + etm: moment().add(1, 'hour').set({ minute: 0, second: 0 }).format("YYYY-MM-DD HH:mm"), + stm: moment().subtract(7, 'days').add(1, 'hour').set({ minute: 0, second: 0 }).format("YYYY-MM-DD HH:mm"), + tm: [ + moment().subtract(7, 'days').add(1, 'hour').set({ minute: 0, second: 0 }), + moment().add(1, 'hour').set({ minute: 0, second: 0 }), + ], + } + + setParams(options) + + }, []) return ( } > -
- trigger.parentElement} - /> -
- +
+ trigger.parentElement} + /> +
+ @@ -188,6 +188,7 @@ function HDReal({ style }) { { setting && showSetting(false)} /> } + ) }