diff --git a/public/assets/scdd.jpg b/public/assets/scdd.jpg new file mode 100644 index 0000000..4f5130e Binary files /dev/null and b/public/assets/scdd.jpg differ diff --git a/src/models/map/layout.js b/src/models/map/layout.js index 6ab7a8d..5f3ab3c 100644 --- a/src/models/map/layout.js +++ b/src/models/map/layout.js @@ -96,7 +96,27 @@ export default function calcLayout(view, rightStack, hidePanels) { { key: '日供水量',style: { height: '16rem', flexGrow: 1 } }, { key: '供水覆盖率',style: { height: '16rem', flexGrow: 1 } }, ]; - } else if (view === 501) { + }else if (view === 305) { + left = [ + { key: '供水量统计', style: { height: '30rem', flexGrow: 1 } }, + { key: '取水量统计', style: { height: '40rem', flexGrow: 1 } }, + ]; + leftFullHeight = true; + } + else if (view === 306) { + left = [ + { key: '管线', style: { height: '30rem', flexGrow: 1 } }, + { key: '数量及里程分布', style: { height: '40rem', flexGrow: 1 } }, + { key: '管网监测数据', style: { height: '40rem', flexGrow: 1 } }, + ]; + leftFullHeight = true; + } + else if (view === 307) { + left = [ + { key: '预案库管理', style: { height: '40rem', flexGrow: 1 } }, + ]; + leftFullHeight = true; + }else if (view === 501) { left = [ { key: '雨量监测',style: { height: '33%', flexGrow: 1 } }, { key: '水情监测', style: { height: '33%', flexGrow: 1 } }, @@ -209,7 +229,20 @@ export default function calcLayout(view, rightStack, hidePanels) { { key: '供水监控', style: { flexGrow: 1 } }, rightFullHeight = true ]; - } else if (view === 501) { + }else if (view === 305) { + right = [ + { key: '电耗统计', style: { height: '100%', flexGrow: 1 } }, + ]; + rightFullHeight = true; + } + else if (view === 306) { + right = [ + { key: '漏损排行榜', style: { height: '50%', flexGrow: 1 } }, + { key: '最小流量', style: { height: '50%', flexGrow: 1 } }, + ]; + rightFullHeight = true; + } + else if (view === 501) { right = [ { key: '水质监测',style: { height: '33%', flexGrow: 1 } }, { key: '土壤墒情监测', style: { height: '33%', flexGrow: 1 } }, diff --git a/src/models/runtime/index.js b/src/models/runtime/index.js index f3ee764..3586aae 100644 --- a/src/models/runtime/index.js +++ b/src/models/runtime/index.js @@ -13,9 +13,10 @@ function initState() { featurePops: [], layerSetting: { }, - yyObj:{}, + yyObj: {}, + gwobj:undefined, markers: {}, // type -> [{ id, lgtd, lttd, elev }] - + scya:undefined, warnresp: {}, warnrespTick: 1, } @@ -30,6 +31,12 @@ const runtime = { setYyfa(state, props) { return { ...state, yyObj: props } }, + setGwtc(state, props) { + return { ...state, gwobj: props } + }, + setScya(state, props) { + return { ...state, scya: props } + }, setLogoDisplaying(state, val) { return { ...state, logoDisplaying: val } }, diff --git a/src/views/Home/InfoDlg/LayersDlg/index.js b/src/views/Home/InfoDlg/LayersDlg/index.js index f06dfa9..2406128 100644 --- a/src/views/Home/InfoDlg/LayersDlg/index.js +++ b/src/views/Home/InfoDlg/LayersDlg/index.js @@ -29,7 +29,7 @@ import SbLayer from '../../MapCtrl/mapstyle/sblayer'; import QdLayer from '../../MapCtrl/mapstyle/qdlayer'; import ShuizhiLayer from '../../MapCtrl/mapstyle/shuizhilayer'; import TrsqLayer from '../../MapCtrl/mapstyle/trsqlayer'; - +import ScjcLayer from '../../MapCtrl/mapstyle/scjclayer' @@ -142,6 +142,9 @@ function LayersDlg({ onClose }) {
+
+ +
diff --git a/src/views/Home/InfoDlg/OverallSmtp/index.js b/src/views/Home/InfoDlg/OverallSmtp/index.js index 132e188..4df9289 100644 --- a/src/views/Home/InfoDlg/OverallSmtp/index.js +++ b/src/views/Home/InfoDlg/OverallSmtp/index.js @@ -29,7 +29,7 @@ function OverallSmtp({ record, onClose }) {
- + 24时报讯 diff --git a/src/views/Home/InfoPops/ScJcPop/HDChart.js b/src/views/Home/InfoPops/ScJcPop/HDChart.js new file mode 100644 index 0000000..37ee598 --- /dev/null +++ b/src/views/Home/InfoPops/ScJcPop/HDChart.js @@ -0,0 +1,223 @@ +import React, { useEffect, useMemo, useState } from 'react' +import echarts from 'echarts/lib/echarts'; +import ReactEcharts from 'echarts-for-react'; +import { makeStyles, Typography } from '@material-ui/core'; +import moment from 'moment'; +import { hdyjColor, renderHDRz } from '../../../../utils/renutils'; +import { normalizeSearchTmRange } from '../../../../utils/tools'; +import { rzSearch } from '../../../../models/_/search'; + + +const useStyles = makeStyles({ + grid: { + color: '#fff', + padding: '1rem', + }, + + realdrpgrid: { + display: 'flex', + justifyContent: 'space-between', + textAlign: 'center', + margin: '0.5rem 0' + } +}) + +function HDChart({ record }) { + const classes = useStyles(); + + const [data, setData] = useState([]); + + const tm = [moment().add(-24, 'hour'), moment()]; + const resultTm = normalizeSearchTmRange(tm, 'h'); + + useEffect(() => { + rzSearch(record.type, record.stcd, 'h', resultTm, record.countycode).then((data) => { + setData(data || []); + }); + }, []) + + const option = useMemo(() => { + const serialData = data.map(obj => [obj.tm, obj.z || 0]); + + let sorted = data.map(o => o.z); + + const markLine = []; + const { sfz, wrz, grz } = record; + + if (sfz) { + sorted.push(sfz); + markLine.push({ name: '设防', yAxis: sfz, lineStyle: { color: hdyjColor[1] } }); + } + if (wrz) { + sorted.push(wrz); + markLine.push({ name: '警戒', yAxis: wrz, lineStyle: { color: hdyjColor[2] } }); + } + if (grz) { + sorted.push(grz); + markLine.push({ name: '保证', yAxis: grz, lineStyle: { color: hdyjColor[3] } }); + } + + + sorted = sorted.sort(); + let minVal = sorted[0] || 0; + let maxVal = sorted[sorted.length - 1] || 0; + let dz = 0.5; + maxVal = Math.ceil(maxVal / dz) * dz; + minVal = Math.floor(minVal / dz) * dz; + + return { + tooltip: { + trigger: 'axis', + axisPointer: { + lineStyle: { + color: '#fff' + } + } + }, + grid: { + x: markLine.length > 0 ? 64 : 24, + y: 24, + x2: 38, + y2: 42, + borderWidth: 0 + }, + calculable: true, + xAxis: [ + { + type: 'time', + splitLine: { + show: false + }, + axisLabel: { + color: '#bbb', + fontSize: 9, + textShadowBlur: 4, + textShadowColor: '#6ab', + // formatter: val => val.substr('2020-10-14 '.length, 2) + }, + axisLine: { + lineStyle: { + color: '#07a6ff', + width: 0.5, + } + }, + axisTick: { + show: false, + } + } + ], + yAxis: [ + { + type: 'value', + position: 'right', + splitLine: { + show: true, + lineStyle: { + color: '#07a6ff', + width: 0.25, + type: 'dashed' + } + }, + axisLabel: { + color: '#bbb', + fontSize: 10, + textShadowBlur: 4, + textShadowColor: '#6ab', + }, + axisLine: { + show: false + }, + axisTick: { + show: false, + }, + min: minVal, + max: maxVal + } + ], + series: [ + { + name: '水位', + type: 'line', + showSymbol: false, + label: { + show: false, + }, + data: serialData, + lineStyle: { + normal: { + width: 1, + } + }, + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 0, + color: 'rgba(3, 194, 236, 0.3)' + }, { + offset: 0.8, + color: 'rgba(3, 194, 236, 0)' + } + ], false), + shadowColor: 'rgba(0, 0, 0, 0.1)', + shadowBlur: 10 + } + }, + itemStyle: { + normal: { + color: '#03C2EC' + } + }, + markPoint: { + data: [ + { type: 'max', name: '最大值', symbol: 'circle', symbolSize: 1, symbolOffset: [0, -12] }, + { type: 'min', name: '最小值', symbol: 'circle', symbolSize: 1, symbolOffset: [0, 12] } + ] + }, + markLine: { + silent: true, + symbol: 'none', + label: { + position: 'start', + formatter: (p) => p?.name + ' ' + p?.value, + }, + data: markLine + } + } + ] + }; + }, [data]); + + const rtm = record.rzTm || record.tm; + + return ( + <> + +
+ 上报时间: {rtm ? moment(rtm).format('YYYY-MM-DD HH:mm:ss') : '-'} +
+
+ 水位 + {renderHDRz(record)} +
+
+ 设防水位 + {record.sfz || '--'} +
+
+ 警戒水位 + {record.wrz || '--'} +
+
+ 保证水位 + {record.grz || '--'} +
+
+
+ + ) +} + +export default React.memo(HDChart); diff --git a/src/views/Home/InfoPops/ScJcPop/index.js b/src/views/Home/InfoPops/ScJcPop/index.js new file mode 100644 index 0000000..ea016de --- /dev/null +++ b/src/views/Home/InfoPops/ScJcPop/index.js @@ -0,0 +1,41 @@ +import React from 'react' +import { makeStyles } from '@material-ui/core'; +import HDChart from './HDChart'; +import { Grid } from '@material-ui/core'; +import useDescStyle from '../_/descstyle'; + + + + +function RealHDTip({ record, dispatch }) { + const classes = useDescStyle(); + const viewInfo = () => { + dispatch?.runtime.setInfoDlg({ layerId: 'llsbLayer', properties: record }) + } + + return ( + <> +
+
+
{record.stnm}
+ {/*
详细
*/} +
+
+ + 压力: + {record.press}(Mpa) + 流量: + {record.flow}(m³/h) + 水质合格率: + {record.hg}% + 采集时间: + 2025-05-27 15::25::00 + +
+ +
+ + ) +} + +export default React.memo(RealHDTip); diff --git a/src/views/Home/InfoPops/_/layericons.js b/src/views/Home/InfoPops/_/layericons.js index 5f8ff12..d43eb32 100644 --- a/src/views/Home/InfoPops/_/layericons.js +++ b/src/views/Home/InfoPops/_/layericons.js @@ -81,6 +81,7 @@ export const iconstyles = { 渠道: { backgroundPosition: '30.5% -40%',backgroundSize: '3295% 1650%' }, 水质: { backgroundPosition: '33.5% -40%',backgroundSize: '3295% 1650%' }, 土壤墒情: { backgroundPosition: '37.5% -40%',backgroundSize: '1895% 1650%' }, + 水厂监测: { backgroundPosition: '37.5% -40%',backgroundSize: '1895% 1650%' }, diff --git a/src/views/Home/InfoPops/index.js b/src/views/Home/InfoPops/index.js index 33b45f8..d5d06a2 100644 --- a/src/views/Home/InfoPops/index.js +++ b/src/views/Home/InfoPops/index.js @@ -26,6 +26,7 @@ import SzPop from './SzPop' import SqPop from './SqPop'; import LlqdPop from './LlqdPop'; import LlsbPop from './LlsbPop'; +import ScjcPop from './ScJcPop'; export const InfoPopNames = { RealSkPop: 'RealSkPop', RealHDPop: 'RealHDPop', @@ -89,6 +90,8 @@ export const InfoPops = ({ type, properties, dispatch }) => { return }else if (type === '流量水表站') { return + }else if (type === '监测站') { + return } return null; diff --git a/src/views/Home/MapCtrl/mapstyle/scjclayer.js b/src/views/Home/MapCtrl/mapstyle/scjclayer.js new file mode 100644 index 0000000..c6eb41d --- /dev/null +++ b/src/views/Home/MapCtrl/mapstyle/scjclayer.js @@ -0,0 +1,252 @@ +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 = '水厂监测'; + +const ShapeStyle = { + id: SourceName, + type: 'symbol', + source: SourceName, + layout: { + 'icon-allow-overlap': true, + 'text-allow-overlap': true, + 'icon-image': '水厂监测', + '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 = [ + { + "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": "漳河流域" + } +] + +export default class TrsqLayer extends BaseLayer { + + static LayerName = 'ScjcLayer'; + + static SourceName = SourceName; + + getStyle() { + + const ret = clone(ShapeStyle); + this._setStyleVisibility(ret); + return ret; + + } + + getName() { + return TrsqLayer.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 + 2.9619 + obj.lttd = item.lttd + 0.2002 + return obj + }) + ms.setData(parseGeoJSON(data)); + return true; + } + + getFeatureTip(record) { + return record.stnm; + } + + featureClicked(properties, dispatch) { + dispatch.runtime.setFeaturePop({ + type: InfoPopNames.PicStPop, + properties, + coordinates: [properties.lgtd, properties.lttd], + offsetPop: true, + }); + } +} diff --git a/src/views/Home/PanelIndex.js b/src/views/Home/PanelIndex.js index a833e83..0cef648 100644 --- a/src/views/Home/PanelIndex.js +++ b/src/views/Home/PanelIndex.js @@ -61,6 +61,15 @@ import Rgsl from './panels/Rgsl' import Dbfx from './panels/Dbfx' import Gsjk from './panels/Gsjk' import YaRes from './panels/YaRes' +import Yakgl from './panels/Yakgl' +import Gwjc from './panels/Gwjc' +import Gx from './panels/Gx' +import Gwsllc from './panels/Gwsllc' +import Lsphb from './panels/lsphb' +import Gxzxll from './panels/Gxzxll' +import Gsl from './panels/Gwgsl' +import Qsl from './panels/Gwqsl' +import Dhtj from './panels/Gwdh' export default function PanelIndex({ name, style, ...params }) { if (name === '天气') { return ( @@ -156,6 +165,8 @@ export default function PanelIndex({ name, style, ...params }) { return } else if (name === '水库管理') { return + }else if (name === '预案库管理') { + return } else if (name === '防汛调度') { return }else if (name === '灌区统计') { @@ -186,6 +197,22 @@ export default function PanelIndex({ name, style, ...params }) { return } else if (name === '供水监控') { return + } else if (name == '管网监测数据') { + return + } else if (name == '管线') { + return + }else if (name == '数量及里程分布') { + return + }else if (name == '漏损排行榜') { + return + }else if (name == '最小流量') { + return + }else if (name == '供水量统计') { + return + }else if (name == '取水量统计') { + return + }else if (name == '电耗统计') { + return } return ( diff --git a/src/views/Home/components/ActionDock/index.js b/src/views/Home/components/ActionDock/index.js index 16d9f7f..0aa82b2 100644 --- a/src/views/Home/components/ActionDock/index.js +++ b/src/views/Home/components/ActionDock/index.js @@ -5,51 +5,64 @@ import { useDispatch, useSelector } from 'react-redux'; import { makeStyles, Tooltip, Typography } from '@material-ui/core'; const VIEWS = [ - { id: 100, title: '防汛', img: '/assets/menu/防洪形势.png',children:[ - { id: 0, title: '防洪形势', img: '/assets/menu/防洪形势.png' }, - { id: 1, title: '实时数据', img: '/assets/menu/实时数据.png' }, - { id: 6, title: '水库调度', img: '/assets/menu/病险水库.png' }, - { id: 2, title: '水利设施', img: '/assets/menu/水利设施.png' }, - { id: 3, title: '辅助决策', img: '/assets/menu/辅助决策.png' }, - { id: 4, title: '降雨中心', img: '/assets/menu/预警分析.png' }, - { id: 5, title: '天气预报', img: '/assets/menu/降雨中心.png' }, - ] }, - { id: 200, title: '水库', img: '/assets/menu/实时数据.png',children:[ - { id: 201, title: '雨情监测', img: '/assets/menu/降雨中心.png' }, - { id: 202, title: '水情监测', img: '/assets/menu/水利设施.png' }, - { id: 203, title: '安全监测', img: '/assets/menu/降雨中心.png' }, - { id: 204, title: '视频监控', img: '/assets/menu/辅助决策.png' }, - { id: 205, title: '防汛调度', img: '/assets/menu/辅助决策.png' }, - { id: 206, title: '水库管理', img: '/assets/menu/病险水库.png' }, - ] }, - { id: 300, title: '水厂', img: '/assets/menu/水利设施.png',children:[ - { id: 301, title: '供水态势', img: '/assets/menu/降雨中心.png' }, + { + id: 100, title: '防汛', img: '/assets/menu/防洪形势.png', children: [ + { id: 0, title: '防洪形势', img: '/assets/menu/防洪形势.png' }, + { id: 1, title: '实时数据', img: '/assets/menu/实时数据.png' }, + { id: 6, title: '水库调度', img: '/assets/menu/病险水库.png' }, + { id: 2, title: '水利设施', img: '/assets/menu/水利设施.png' }, + { id: 3, title: '辅助决策', img: '/assets/menu/辅助决策.png' }, + { id: 4, title: '降雨中心', img: '/assets/menu/预警分析.png' }, + { id: 5, title: '天气预报', img: '/assets/menu/降雨中心.png' }, + ] + }, + { + id: 200, title: '水库', img: '/assets/menu/实时数据.png', children: [ + { id: 201, title: '雨情监测', img: '/assets/menu/降雨中心.png' }, + { id: 202, title: '水情监测', img: '/assets/menu/水利设施.png' }, + { id: 203, title: '安全监测', img: '/assets/menu/降雨中心.png' }, + { id: 204, title: '视频监控', img: '/assets/menu/辅助决策.png' }, + { id: 205, title: '防汛调度', img: '/assets/menu/辅助决策.png' }, + { id: 206, title: '水库管理', img: '/assets/menu/病险水库.png' }, + ] + }, + { + id: 300, title: '水厂', img: '/assets/menu/水利设施.png', children: [ + { id: 301, title: '供水态势', img: '/assets/menu/降雨中心.png' }, - // 供水态势 - // 水质安全 - // 水厂运行 - // 管网健康诊断 - // 应急指挥调度 - // 决策支持与报表 - ] }, + + + + { id: 306, title: '管网健康诊断', img: '/assets/menu/水利设施.png' }, + { id: 307, title: '应急指挥调度', img: '/assets/menu/病险水库.png' }, + { id: 305, title: '决策支持与报表', img: '/assets/menu/辅助决策.png' }, + // 供水态势 + // 水质安全 + // 水厂运行 + // 管网健康诊断 + // 应急指挥调度 + // 决策支持与报表 + ] + }, { id: 400, title: '灌区', img: '/assets/menu/预警分析.png', children: [ { id: 501, title: '灌区监测', img: '/assets/menu/防洪形势.png' }, { id: 504, title: '水旱灾害防御', img: '/assets/menu/水利设施.png' }, - // { id: 502, title: '预警信息管理', img: '/assets/menu/实时数据.png' }, - { id: 503, title: '水资源调度', img: '/assets/menu/病险水库.png' }, - { id: 505, title: '量测水管理', img: '/assets/menu/辅助决策.png' }, - { id: 506, title: '水政管理', img: '/assets/menu/预警分析.png' }, - { id: 507, title: '工程管理', img: '/assets/menu/降雨中心.png' }, - // 图层控制 - // 灌区监测 - // 预警信息管理 - // 水旱灾害防御 - // 水资源调度 - // 量测水管理 - // 水政管理 - // 工程管理 - ] }, + // { id: 502, title: '预警信息管理', img: '/assets/menu/实时数据.png' }, + { id: 503, title: '水资源调度', img: '/assets/menu/病险水库.png' }, + { id: 505, title: '量测水管理', img: '/assets/menu/辅助决策.png' }, + { id: 506, title: '水政管理', img: '/assets/menu/预警分析.png' }, + { id: 507, title: '工程管理', img: '/assets/menu/降雨中心.png' }, + // 图层控制 + // 灌区监测 + // 预警信息管理 + // 水旱灾害防御 + // 水资源调度 + // 量测水管理 + // 水政管理 + // 工程管理 + ] + }, ]; @@ -73,8 +86,8 @@ function BootstrapTooltip(props) { export default function ActionDock({ }) { const view = useSelector(s => s.map.view); - const [viewKey,setViewKey] = useState(null) - const viewItem = useMemo(()=>viewKey?VIEWS.filter(o=>o.id===viewKey)[0].children:VIEWS,[viewKey,VIEWS]) + const [viewKey, setViewKey] = useState(null) + const viewItem = useMemo(() => viewKey ? VIEWS.filter(o => o.id === viewKey)[0].children : VIEWS, [viewKey, VIEWS]) const dispatch = useDispatch(); @@ -82,30 +95,48 @@ export default function ActionDock({ }) { return (
{ - viewKey? - 返回}> -
{ - // dispatch.map.setView(o.id) 这里不知道用哪个,等问好在弄 - setViewKey(null) - }}> -
- + viewKey ? + 返回}> +
{ + // dispatch.map.setView(o.id) 这里不知道用哪个,等问好在弄 + setViewKey(null) + dispatch.runtime.setScya(false) + dispatch.runtime.setGwtc(false) + }}> +
+ +
-
- - :null + + : null } { viewItem.map(o => ( - {o.title}}> + {o.title}}>
{ - if(o.children){ + if (o.children) { //一级菜单 dispatch.map.setView(o.children[0].id) setViewKey(o.id) - }else{ + dispatch.runtime.setScya(false) + dispatch.runtime.setGwtc(false) + + } else { + + // 判断水厂资源调度切换图层 + if (o.id == 307) { + dispatch.runtime.setScya(true) + } else { + dispatch.runtime.setScya(false) + } + // if (o.id == 307) { + // dispatch.runtime.setGwtc(true) + // } else { + // dispatch.runtime.setGwtc(true) + // } //二级菜单 dispatch.map.setView(o.id) + } }}>
diff --git a/src/views/Home/components/Llqdjcsj/drpOption.js b/src/views/Home/components/Llqdjcsj/drpOption.js index cc0daf0..14e768b 100644 --- a/src/views/Home/components/Llqdjcsj/drpOption.js +++ b/src/views/Home/components/Llqdjcsj/drpOption.js @@ -1,5 +1,4 @@ export default function drpOption({ data, wrz, grz }) { - debugger console.log("data",wrz); const maxVal = Math.max(...data.map(obj => obj.drp)) const maxSw = Math.max(...data.map(obj => obj.deep)) diff --git a/src/views/Home/index.js b/src/views/Home/index.js index 3b2331b..178ac33 100644 --- a/src/views/Home/index.js +++ b/src/views/Home/index.js @@ -17,7 +17,8 @@ export default function Demo1() { const layout = useSelector(getLayout); const hp = useSelector(hidePanels); console.log("hp",hp); - const yyRes = useSelector(s => s.runtime.yyObj); + const yyRes = useSelector(s => s.runtime.yyObj); + const isSc = useSelector(s => s.runtime.scya); return (
@@ -30,7 +31,11 @@ export default function Demo1() { - } + } + + { + isSc && + }
diff --git a/src/views/Home/panels/GqWeatherForcast/index.js b/src/views/Home/panels/GqWeatherForcast/index.js index 65fe21e..4a31cfb 100644 --- a/src/views/Home/panels/GqWeatherForcast/index.js +++ b/src/views/Home/panels/GqWeatherForcast/index.js @@ -15,7 +15,7 @@ export default function WeatherForcast({ style }) { return ( diff --git a/src/views/Home/panels/Gqdb/index.js b/src/views/Home/panels/Gqdb/index.js index 499bd27..8ee152a 100644 --- a/src/views/Home/panels/Gqdb/index.js +++ b/src/views/Home/panels/Gqdb/index.js @@ -20,9 +20,9 @@ const analysisData = { waterUsage: Array.from({ length: 7 }, (_, i) => ({ date: moment().subtract(i, 'days').format('YYYY-MM-DD'), areas: [ - { name: '东部灌区', value: 85 + Math.random() * 10 }, - { name: '西部灌区', value: 92 + Math.random() * 10 }, - { name: '南部灌区', value: 78 + Math.random() * 10 } + { name: '浮桥河灌区', value: 85 + Math.random() * 10 }, + { name: '群建水库灌区', value: 92 + Math.random() * 10 }, + { name: '大石板灌区', value: 78 + Math.random() * 10 } ] })).reverse(), @@ -30,9 +30,9 @@ const analysisData = { efficiency: Array.from({ length: 7 }, (_, i) => ({ date: moment().subtract(i, 'days').format('YYYY-MM-DD'), areas: [ - { name: '东部灌区', value: 0.82 + Math.random() * 0.05 }, - { name: '西部灌区', value: 0.78 + Math.random() * 0.05 }, - { name: '南部灌区', value: 0.85 + Math.random() * 0.05 } + { name: '浮桥河灌区', value: 0.82 + Math.random() * 0.05 }, + { name: '群建水库灌区', value: 0.78 + Math.random() * 0.05 }, + { name: '大石板灌区', value: 0.85 + Math.random() * 0.05 } ] })).reverse(), @@ -40,16 +40,16 @@ const analysisData = { waterSaving: Array.from({ length: 7 }, (_, i) => ({ date: moment().subtract(i, 'days').format('YYYY-MM-DD'), areas: [ - { name: '东部灌区', value: 12.5 + Math.random() * 5 }, - { name: '西部灌区', value: 10.2 + Math.random() * 5 }, - { name: '南部灌区', value: 15.6 + Math.random() * 5 } + { name: '浮桥河灌区', value: 12.5 + Math.random() * 5 }, + { name: '群建水库灌区', value: 10.2 + Math.random() * 5 }, + { name: '大石板灌区', value: 15.6 + Math.random() * 5 } ] })).reverse() }; const dimensionConfig = { waterUsage: { - title: '用水量对比', - unit: 'm³/s' + title: '用水量', + unit: 'm³' }, efficiency: { title: '输水效率对比', @@ -66,13 +66,6 @@ const getOption = (type) => { const config = dimensionConfig[type]; return { - title: { - text: config.title, - textStyle: { - color: '#fff', - fontSize: 14 - } - }, tooltip: { trigger: 'axis', formatter: (params) => { @@ -87,7 +80,7 @@ const getOption = (type) => { } }, legend: { - data: ['东部灌区', '西部灌区', '南部灌区'], + data: ['浮桥河灌区', '群建水库灌区', '大石板灌区'], textStyle: { color: '#fff' }, right: '10%' }, @@ -104,11 +97,12 @@ const getOption = (type) => { }, yAxis: { type: 'value', - name: config.unit, - nameTextStyle: { color: '#fff' }, + name: '用水量m³', + nameTextStyle: { color: '#fff', // 调整内边距 + }, axisLabel: { color: '#fff' } }, - series: ['东部灌区', '西部灌区', '南部灌区'].map(area => ({ + series: ['浮桥河灌区', '群建水库灌区', '大石板灌区'].map(area => ({ name: area, type: 'line', smooth: true, @@ -148,7 +142,7 @@ function HDReal({ style }) { extra={ <> - + {/* */} } > @@ -159,35 +153,7 @@ function HDReal({ style }) { marginTop: '10px', paddingRight: '20px' }}> - - 分析维度 - - +
- + {/* */} {/* showSetting(true)}> */} } diff --git a/src/views/Home/panels/Gqycqd/index.js b/src/views/Home/panels/Gqycqd/index.js index e98145d..429e982 100644 --- a/src/views/Home/panels/Gqycqd/index.js +++ b/src/views/Home/panels/Gqycqd/index.js @@ -131,7 +131,7 @@ function HDReal({ style }) { // } extra={ <> - + {/* */} {/* showSetting(true)}> */} } diff --git a/src/views/Home/panels/Gwdh/Setting.js b/src/views/Home/panels/Gwdh/Setting.js new file mode 100644 index 0000000..fd1c4ef --- /dev/null +++ b/src/views/Home/panels/Gwdh/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/Gwdh/index.js b/src/views/Home/panels/Gwdh/index.js new file mode 100644 index 0000000..ee1271f --- /dev/null +++ b/src/views/Home/panels/Gwdh/index.js @@ -0,0 +1,191 @@ +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' +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 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 = [ + { key: '0', date: '合计', power: '0' }, + { key: '1', date: '2025-05-01', power: '0' }, + { key: '2', date: '2025-05-02', power: '0' }, + { key: '3', date: '2025-05-03', power: '0' }, + { key: '4', date: '2025-05-04', power: '0' }, + { key: '5', date: '2025-05-05', power: '0' }, + { key: '6', date: '2025-05-06', power: '0' }, + { key: '7', date: '2025-05-07', power: '0' }, + { key: '8', date: '2025-05-08', power: '0' }, + { key: '9', date: '2025-05-09', power: '0' } + ]; + 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} + /> +
+ + + + + 日期 + 电耗(kWh) + + + + {data.map((row) => ( + + +
{row.date}
+
+ {row.power} + {/* {rzRender(row.rz, row.grz)} + {rzRender(row.rz, row.wrz)} */} +
+ ))} +
+
+
+ { + setting && showSetting(false)} /> + } +
+ ) +} + +export default HDReal; diff --git a/src/views/Home/panels/Gwdh/index.less b/src/views/Home/panels/Gwdh/index.less new file mode 100644 index 0000000..a91a889 --- /dev/null +++ b/src/views/Home/panels/Gwdh/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/Gwgsl/Setting.js b/src/views/Home/panels/Gwgsl/Setting.js new file mode 100644 index 0000000..fd1c4ef --- /dev/null +++ b/src/views/Home/panels/Gwgsl/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/Gwgsl/index.js b/src/views/Home/panels/Gwgsl/index.js new file mode 100644 index 0000000..bc9998a --- /dev/null +++ b/src/views/Home/panels/Gwgsl/index.js @@ -0,0 +1,189 @@ +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' +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 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 = [ + { key: '0', date: '合计', supply: '15402.15', lastMonth: '14725.78' }, + { key: '1', date: '2025-05-01', supply: '643.91', lastMonth: '446.78' }, + { key: '2', date: '2025-05-02', supply: '654.94', lastMonth: '527.03' }, + { key: '3', date: '2025-05-03', supply: '674.31', lastMonth: '528.33' }, + { key: '4', date: '2025-05-04', supply: '619.43', lastMonth: '448.18' }, + { key: '5', date: '2025-05-05', supply: '537.5', lastMonth: '483.9' } + ]; + 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} + /> +
+ + + + + 日期 + 供水量(m³) + 上月对比(m³) + + + + {data.map((row) => ( + + +
{row.date}
+
+ {row.supply} + {row.lastMonth} + {/* {rzRender(row.rz, row.grz)} + {rzRender(row.rz, row.wrz)} */} +
+ ))} +
+
+
+ { + setting && showSetting(false)} /> + } +
+ ) +} + +export default HDReal; diff --git a/src/views/Home/panels/Gwgsl/index.less b/src/views/Home/panels/Gwgsl/index.less new file mode 100644 index 0000000..a91a889 --- /dev/null +++ b/src/views/Home/panels/Gwgsl/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/Gwjc/Setting.js b/src/views/Home/panels/Gwjc/Setting.js new file mode 100644 index 0000000..fd1c4ef --- /dev/null +++ b/src/views/Home/panels/Gwjc/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/Gwjc/constant.js b/src/views/Home/panels/Gwjc/constant.js new file mode 100644 index 0000000..a6f9200 --- /dev/null +++ b/src/views/Home/panels/Gwjc/constant.js @@ -0,0 +1,157 @@ +const data = [ + { + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201417", + "stnm": "马山二组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.2321 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201421", + "stnm": "槐桥四组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.203 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201418", + "stnm": "双碑一组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.2006 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "stcd": "4211221031", + "stnm": "试验站墒情", + "addvcd_dictText": "荆门市", + "lgtd": 112.087806 +2.9619, + "irrCode_dictText": "漳河实验站", + "bsnm": "漳河流域" + } +] +export default data; \ No newline at end of file diff --git a/src/views/Home/panels/Gwjc/index.js b/src/views/Home/panels/Gwjc/index.js new file mode 100644 index 0000000..62e8019 --- /dev/null +++ b/src/views/Home/panels/Gwjc/index.js @@ -0,0 +1,167 @@ +import React, { useMemo, useState } from 'react'; +import useRequest from '../../../../utils/useRequest'; +import PanelBox from '../../components/PanelBox'; + +import Table from '@material-ui/core/Table'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableBody from '@material-ui/core/TableBody'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import DpTableCell from '../../../../layouts/mui/DpTableCell'; +import DpTableRow from '../../../../layouts/mui/DpTableRow'; +import { useDispatch, useSelector } from 'react-redux'; +import useRefresh from '../../../../utils/useRefresh'; +import { HDRealPromise } from '../../../../models/_/real'; +import clsx from 'clsx'; +import { renderHDRz } from '../../../../utils/renutils'; +import Setting from './Setting'; +import { InfoPopNames } from '../../InfoPops'; +import config from '../../../../config'; +import moment from 'moment'; +import showData from './constant' +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 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 randomMinutes = Math.floor(Math.random() * 60) + 1; + const format = 'YYYY-MM-DD HH:mm'; + + const showData = [ + { + stnm: '监测点1', + press: '0.52', + flow: 200, + hg: 90, + "lttd": 30.8456 +0.2002, + "lgtd": 112.2321 +2.9619, + + }, + { + stnm: '监测点2', + press: '0.52', + flow: 200, + hg: 90, + "lttd": 30.8446 +0.2002, + "lgtd": 112.203 +2.9619, + + },{ + stnm: '监测点3', + press: '0.52', + flow: 200, + hg: 90, + "lttd": 30.8866 +0.2002, + "lgtd": 112.2006 +2.9619, + + } + ] + + const flyTo = (record) => { + const { lgtd, lttd } = record; + if (lgtd && lttd) { + dispatch.runtime.setFeaturePop({ type: '监测站', properties: record, coordinates: [lgtd, lttd] }); + dispatch.runtime.setCameraTarget({ + center: [lgtd, lttd + config.poiPositionOffsetY.hd], + zoom: config.poiPositionZoom.hd, + pitch: config.poiPitch, + }); + } + } + + const toggleStType = (type) => { + const visible = !tableRzFilter[type]; + dispatch.realview.setTableRzFilter({ [type]: visible }); + } + + const toggleAutoRefresh = () => { + dispatch.realview.setHdAutoRefresh(!hdAutoRefresh); + } + + + + return ( + + // toggleStType('sh')}>山洪 + // toggleStType('sw')}>水文 + // + // } + extra={ + <> + {/* */} + {/* showSetting(true)}> */} + + } + > + + + + + 监测点 + 压力(Mpa) + 流量(m³/h) + 水质合格率(%) + {/* 警戒水位 */} + + + + {showData.map((row) => ( + flyTo(row)}> + +
{row.stnm}
+
+ +
{row.press}
+
+ {row.flow} + {row.hg} + {/* {rzRender(row.rz, row.grz)} + {rzRender(row.rz, row.wrz)} */} +
+ ))} +
+
+
+ { + setting && showSetting(false)} /> + } +
+ ) +} + +export default HDReal; diff --git a/src/views/Home/panels/Gwqsl/Setting.js b/src/views/Home/panels/Gwqsl/Setting.js new file mode 100644 index 0000000..fd1c4ef --- /dev/null +++ b/src/views/Home/panels/Gwqsl/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/Gwqsl/index.js b/src/views/Home/panels/Gwqsl/index.js new file mode 100644 index 0000000..357f19e --- /dev/null +++ b/src/views/Home/panels/Gwqsl/index.js @@ -0,0 +1,193 @@ +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' +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 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 = [ + { key: '0', date: '合计', intake: '20959.07', lastMonth: '22558.47' }, + { key: '1', date: '2025-05-01', intake: '754.77', lastMonth: '704.77' }, + { key: '2', date: '2025-05-02', intake: '940.93', lastMonth: '713.9' }, + { key: '3', date: '2025-05-03', intake: '891.67', lastMonth: '526.83' }, + { key: '4', date: '2025-05-04', intake: '888.15', lastMonth: '577.1' }, + { key: '5', date: '2025-05-05', intake: '813.27', lastMonth: '780.13' }, + { key: '6', date: '2025-05-06', intake: '875.79', lastMonth: '850.83' }, + { key: '7', date: '2025-05-07', intake: '743.86', lastMonth: '862.48' }, + { key: '8', date: '2025-05-08', intake: '728.14', lastMonth: '853.63' }, + { key: '9', date: '2025-05-09', intake: '738.43', lastMonth: '890.43' } + ]; + 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} + /> +
+ + + + + 日期 + 取水量(m³) + 上月对比(m³) + + + + {data.map((row) => ( + + +
{row.date}
+
+ {row.intake} + {row.lastMonth} + {/* {rzRender(row.rz, row.grz)} + {rzRender(row.rz, row.wrz)} */} +
+ ))} +
+
+
+ { + setting && showSetting(false)} /> + } +
+ ) +} + +export default HDReal; diff --git a/src/views/Home/panels/Gwqsl/index.less b/src/views/Home/panels/Gwqsl/index.less new file mode 100644 index 0000000..a91a889 --- /dev/null +++ b/src/views/Home/panels/Gwqsl/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/Gwsllc/Setting.js b/src/views/Home/panels/Gwsllc/Setting.js new file mode 100644 index 0000000..fd1c4ef --- /dev/null +++ b/src/views/Home/panels/Gwsllc/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/Gwsllc/constant.js b/src/views/Home/panels/Gwsllc/constant.js new file mode 100644 index 0000000..a6f9200 --- /dev/null +++ b/src/views/Home/panels/Gwsllc/constant.js @@ -0,0 +1,157 @@ +const data = [ + { + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201417", + "stnm": "马山二组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.2321 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201421", + "stnm": "槐桥四组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.203 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201418", + "stnm": "双碑一组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.2006 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "stcd": "4211221031", + "stnm": "试验站墒情", + "addvcd_dictText": "荆门市", + "lgtd": 112.087806 +2.9619, + "irrCode_dictText": "漳河实验站", + "bsnm": "漳河流域" + } +] +export default data; \ No newline at end of file diff --git a/src/views/Home/panels/Gwsllc/index.js b/src/views/Home/panels/Gwsllc/index.js new file mode 100644 index 0000000..0cd365c --- /dev/null +++ b/src/views/Home/panels/Gwsllc/index.js @@ -0,0 +1,202 @@ +import React, { useMemo, useState } from 'react'; +import useRequest from '../../../../utils/useRequest'; +import PanelBox from '../../components/PanelBox'; + +import Table from '@material-ui/core/Table'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableBody from '@material-ui/core/TableBody'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import DpTableCell from '../../../../layouts/mui/DpTableCell'; +import DpTableRow from '../../../../layouts/mui/DpTableRow'; +import { useDispatch, useSelector } from 'react-redux'; +import useRefresh from '../../../../utils/useRefresh'; +import { HDRealPromise } from '../../../../models/_/real'; +import clsx from 'clsx'; +import { renderHDRz } from '../../../../utils/renutils'; +import Setting from './Setting'; +import { InfoPopNames } from '../../InfoPops'; +import config from '../../../../config'; +import moment from 'moment'; +import showData from './constant' +import ReactECharts from 'echarts-for-react'; + +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 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 randomMinutes = Math.floor(Math.random() * 60) + 1; + const format = 'YYYY-MM-DD HH:mm'; + + const showData = [ + { + stnm: '监测点1', + press: '0.52', + flow: 200, + hg:90 + }, + { + stnm: '监测点2', + press: '0.52', + flow: 200, + hg:90 + },{ + stnm: '监测点3', + press: '0.52', + flow: 200, + hg:90 + } + ] + + const flyTo = (record) => { + dispatch.map.setLayerVisible({'TrsqLayer':true}) + const { lgtd, lttd } = record; + if (lgtd && lttd) { + dispatch.runtime.setFeaturePop({ type: '墒情站', properties: record, coordinates: [lgtd, lttd] }); + dispatch.runtime.setCameraTarget({ + center: [lgtd, lttd + config.poiPositionOffsetY.hd], + zoom: config.poiPositionZoom.hd, + pitch: config.poiPitch, + }); + } + } + + const toggleStType = (type) => { + const visible = !tableRzFilter[type]; + dispatch.realview.setTableRzFilter({ [type]: visible }); + } + + const toggleAutoRefresh = () => { + dispatch.realview.setHdAutoRefresh(!hdAutoRefresh); + } +const option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + legend: { + data: ['数字分布', '里程分布'], + textStyle: { + color: '#fff' + }, + top: 10 + }, + grid: { + top:'13%', + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + xAxis: { + type: 'category', + data: ['福田镇', '龙池桥镇', '木子店镇', '宋埠镇', '黄土岗镇', '铁门岗镇', '乘马岗镇', '白果镇', '张家畈镇', '顺河镇'], + axisLine: { + lineStyle: { + color: '#fff' + } + }, + axisLabel: { + color: '#fff', + interval: 0, + rotate: 45 + } + }, + yAxis: { + type: 'value', + name: '数量', + nameTextStyle: { + color: '#fff' + }, + axisLine: { + lineStyle: { + color: '#fff' + } + }, + axisLabel: { + color: '#fff' + }, + splitLine: { + lineStyle: { + type: 'dashed', + color: 'rgba(255,255,255,0.2)' + } + } + }, + series: [ + { + name: '数字分布', + type: 'bar', + data: [2050, 2250, 1300, 2100, 1950, 1100, 2150, 2400, 1950, 2100], + itemStyle: { + color: '#36a4eb' + }, + barWidth: '20%' + }, + { + name: '里程分布', + type: 'bar', + data: [1100, 1300, 1200, 1300, 1000, 1100, 1200, 1100, 1000, 1600], + itemStyle: { + color: '#4b5cc4' + }, + barWidth: '20%' + } + ] + }; + + + return ( + + {/* */} + {/* showSetting(true)}> */} + + } + > + + { + setting && showSetting(false)} /> + } + + ) +} + +export default HDReal; diff --git a/src/views/Home/panels/Gx/OverallContent.js b/src/views/Home/panels/Gx/OverallContent.js new file mode 100644 index 0000000..77e27af --- /dev/null +++ b/src/views/Home/panels/Gx/OverallContent.js @@ -0,0 +1,139 @@ +import { Button, makeStyles } from '@material-ui/core'; +import { Email } from '@material-ui/icons'; +import React from 'react'; +import { useDispatch } from 'react-redux'; +import config from '../../../../config'; +import { bxstr, drpRealGet, skRealGet } from '../../../../models/_/real'; +import { strNumber } from '../../../../utils/tools'; +import { InfoPopNames } from '../../InfoPops'; + +const useStyles = makeStyles({ + root: { + padding: '1.5rem 0.75rem 0.75rem 0.75rem', + color: 'rgb(224, 246, 247)', + fontSize: '0.9rem', + lineHeight: '1.8rem', + }, + + titleDate: { + fontSize: '1.2rem', + margin: '0.2rem', + color: '#00deff', + }, + + number: { + color: '#ffd220', + fontSize: '1.2rem', + margin: '0.2rem', + }, + + sttype: { + color: '#92f0ff', + }, + stname: { + fontWeight: 'bold', + fontSize: '1rem', + margin: '0.25rem', + cursor: 'pointer' + }, + + grid: { + display: 'flex', + justifyContent: 'space-around', + marginBottom: '1rem', + textAlign: 'center', + + '& .value': { + fontSize: '1.8rem', + color: '#6fe9fd', + lineHeight: '2rem' + }, + + + '& .key': { + fontSize: '0.8rem', + color: '#aaa', + }, + }, + + action: { + textAlign: 'right', + color: '#fff', + } +}) + +export default function OverallContent({ data }) { + const classes = useStyles(); + const dispatch = useDispatch(); + + const { + drpInfo, + skInfo, + tm1, tm2, + } = data || {}; + + const { h24, h1, h3, h6 } = drpInfo || {}; + + const _showRecord = (record, poptype) => { + if (record) { + const { lgtd, lttd } = record; + if (lgtd && lttd) { + dispatch.runtime.setFeaturePop({ type: poptype, properties: record, coordinates: [lgtd, lttd] }); + dispatch.runtime.setCameraTarget({ + center: [lgtd, lttd], + zoom: 15, + pitch: config.poiPitch, + }); + } + } + } + + const showRecord = (obj) => { + if (!obj) { + return; + } + + const { type } = obj; + if (type === 'sk') { + skRealGet(obj.stcd).then((record) => { + _showRecord(record, InfoPopNames.RealSkPop) + }) + } else { + drpRealGet(obj).then((record) => { + _showRecord(record, InfoPopNames.RealDrpPop) + }); + } + } + + const doBx = () => { + bxstr().then((data) => { + dispatch.runtime.setInfoDlg({ + layerId: 'OverallSmtp', + properties: { txt: data } + }) + }); + } + + return ( +
+
+
+
14700
+
总数量
+
+
+
12875公里
+
总里程
+
+ {/*
+
9876
+
累计用水量
+
+
+
85.6%
+
渠系利用率
+
*/} +
+
+ ) +} diff --git a/src/views/Home/panels/Gx/index.js b/src/views/Home/panels/Gx/index.js new file mode 100644 index 0000000..13b2421 --- /dev/null +++ b/src/views/Home/panels/Gx/index.js @@ -0,0 +1,20 @@ +import React from 'react'; +import { OverallPromise } from '../../../../models/_/real'; +import useRequest from '../../../../utils/useRequest'; +import PanelBox from '../../components/PanelBox'; +import OverallContent from './OverallContent'; + +export default function Overall({ style }) { + + const { data } = useRequest(OverallPromise.get); + + return ( + + + + ) +} diff --git a/src/views/Home/panels/Gx/index.less b/src/views/Home/panels/Gx/index.less new file mode 100644 index 0000000..ee34c9b --- /dev/null +++ b/src/views/Home/panels/Gx/index.less @@ -0,0 +1,38 @@ +.dppanel-overall { + padding: 0.75rem; + color: rgb(224, 246, 247); + font-size: 0.8rem; + line-height: 1.8rem; + + .title-date { + font-size: 1.2rem; + margin: 0.2rem; + color: #00deff; + } + + .number { + color: #ffd220; + font-size: 1.2rem; + margin: 0.2rem; + } + + .sttype { + color: #92f0ff; + } + .stname { + font-weight: bold; + font-size: 1rem; + margin: 0.25rem; + } + + .sycm { + height: 5rem; + padding-top: 0.75rem; + ul{ margin-left:-.5rem;margin-right:-.5rem; padding: .16rem 0;} + li{ float: left; width: 33.33%; text-align: center; position: relative} + li:before{ position:absolute; content: ""; height:30%; width: 1px; background: rgba(255,255,255,.1); right: 0; top: 15%;} + li:last-child:before{ width: 0;} + li h2{ font-size:2rem; color: #6fe9fd; margin: 0; font-family: 'electronicFont';margin-bottom: 0.5rem;} + li span{ font-size:1rem; color: #fff; opacity: .5;} + } +} \ No newline at end of file diff --git a/src/views/Home/panels/Gxzxll/Setting.js b/src/views/Home/panels/Gxzxll/Setting.js new file mode 100644 index 0000000..fd1c4ef --- /dev/null +++ b/src/views/Home/panels/Gxzxll/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/Gxzxll/constant.js b/src/views/Home/panels/Gxzxll/constant.js new file mode 100644 index 0000000..a6f9200 --- /dev/null +++ b/src/views/Home/panels/Gxzxll/constant.js @@ -0,0 +1,157 @@ +const data = [ + { + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201417", + "stnm": "马山二组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.2321 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201421", + "stnm": "槐桥四组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.203 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "dtmel": 0, + "stcd": "ZH201418", + "stnm": "双碑一组(墒情)", + "addvcd_dictText": "荆门市", + "lgtd": 112.2006 +2.9619, + "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 +0.2002, + "sttp": "SS", + "irrCode": "D00000010", + "sort": 9999, + "hasImg": false, + "stlc": "荆门市", + "stcd": "4211221031", + "stnm": "试验站墒情", + "addvcd_dictText": "荆门市", + "lgtd": 112.087806 +2.9619, + "irrCode_dictText": "漳河实验站", + "bsnm": "漳河流域" + } +] +export default data; \ No newline at end of file diff --git a/src/views/Home/panels/Gxzxll/index.js b/src/views/Home/panels/Gxzxll/index.js new file mode 100644 index 0000000..4560f56 --- /dev/null +++ b/src/views/Home/panels/Gxzxll/index.js @@ -0,0 +1,207 @@ +import React, { useMemo, useState } from 'react'; +import useRequest from '../../../../utils/useRequest'; +import PanelBox from '../../components/PanelBox'; + +import Table from '@material-ui/core/Table'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableBody from '@material-ui/core/TableBody'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import DpTableCell from '../../../../layouts/mui/DpTableCell'; +import DpTableRow from '../../../../layouts/mui/DpTableRow'; +import { useDispatch, useSelector } from 'react-redux'; +import useRefresh from '../../../../utils/useRefresh'; +import { HDRealPromise } from '../../../../models/_/real'; +import clsx from 'clsx'; +import { renderHDRz } from '../../../../utils/renutils'; +import Setting from './Setting'; +import { InfoPopNames } from '../../InfoPops'; +import config from '../../../../config'; +import moment from 'moment'; +import showData from './constant' +import ReactECharts from 'echarts-for-react'; + +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 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 randomMinutes = Math.floor(Math.random() * 60) + 1; + const format = 'YYYY-MM-DD HH:mm'; + + const showData = [ + { + stnm: '监测点1', + press: '0.52', + flow: 200, + hg:90 + }, + { + stnm: '监测点2', + press: '0.52', + flow: 200, + hg:90 + },{ + stnm: '监测点3', + press: '0.52', + flow: 200, + hg:90 + } + ] + + const flyTo = (record) => { + dispatch.map.setLayerVisible({'TrsqLayer':true}) + const { lgtd, lttd } = record; + if (lgtd && lttd) { + dispatch.runtime.setFeaturePop({ type: '墒情站', properties: record, coordinates: [lgtd, lttd] }); + dispatch.runtime.setCameraTarget({ + center: [lgtd, lttd + config.poiPositionOffsetY.hd], + zoom: config.poiPositionZoom.hd, + pitch: config.poiPitch, + }); + } + } + + const toggleStType = (type) => { + const visible = !tableRzFilter[type]; + dispatch.realview.setTableRzFilter({ [type]: visible }); + } + + const toggleAutoRefresh = () => { + dispatch.realview.setHdAutoRefresh(!hdAutoRefresh); + } +const option = { + + tooltip: { + trigger: 'axis' + }, + grid: { + top: '15%', + left: '3%', + right: '8%', + bottom: '3%', + containLabel: true + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: ['04-20', '04-21', '04-22', '04-23', '04-24', '04-25', '04-26'], + axisLine: { + lineStyle: { + color: '#fff' + } + }, + axisLabel: { + color: '#fff' + } + }, + yAxis: { + type: 'value', + name: '流量', + splitLine: { + lineStyle: { + type: 'dashed', + color: 'rgba(255,255,255,0.2)' + } + }, + axisLine: { + lineStyle: { + color: '#fff' + } + }, + axisLabel: { + color: '#fff' + } + }, + series: [ + { + name: '夜间流量', + type: 'line', + smooth: true, + areaStyle: { + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, + color: 'rgba(0,255,255,0.3)' + }, { + offset: 1, + color: 'rgba(0,255,255,0)' + }] + } + }, + lineStyle: { + color: '#00ffff' + }, + data: [180, 205, 135, 150, 180, 120, 190], + markLine: { + silent: true, + lineStyle: { + color: '#ffd700', + type: 'dashed' + }, + data: [{ + yAxis: 180, + name: '安全流量上限' + }] + } + } + ] + }; + + + return ( + + {/* */} + {/* showSetting(true)}> */} + + } + > + + { + setting && showSetting(false)} /> + } + + ) +} + +export default HDReal; diff --git a/src/views/Home/panels/LlWatch/constant.js b/src/views/Home/panels/LlWatch/constant.js index ac021a1..48fdf3f 100644 --- a/src/views/Home/panels/LlWatch/constant.js +++ b/src/views/Home/panels/LlWatch/constant.js @@ -1,69 +1,4 @@ const data =[ - { - "addvcd": "420800000000000", - "moditime": "2022-10-01 21:00:00", - "comments": "水资源多孔闸门控制系统", - "src": "zhzj", - "esstym": "", - "mvalue": { - "formatTm": null, - "formatHq": "0.000", - "vol": 0, - "formatAccq": null, - "stcd": "4211221029", - "rz": 1.129, - "tm": "2025-05-26 11:00", - "hq": 0, - "fr": null, - "chan": "1", - "accq": 120057496 - }, - "lttd": 31.240848 +0.2002, - "sttp": "QQ", - "irrCode": "D00001300", - "sort": 6001, - "hasImg": false, - "stlc": "荆门市", - "dtmel": 0, - "stcd": "4211221029", - "stnm": "口泉测流站", - "addvcd_dictText": "荆门市", - "lgtd": 111.826413 +2.9619, - "irrCode_dictText": "水库枢纽", - "bsnm": "漳河流域" - }, - { - "addvcd": "420800000000000", - "moditime": "2022-10-26 21:00:00", - "comments": "水资源多孔闸门控制系统", - "src": "zhzj", - "mvalue": { - "formatTm": null, - "formatHq": "0.000", - "vol": 0, - "formatAccq": null, - "stcd": "4211221030", - "rz": 0.869, - "tm": "2025-05-26 11:00", - "hq": 0, - "fr": null, - "chan": "1", - "accq": 159077248 - }, - "lttd": 31.249561, - "sttp": "QQ", - "irrCode": "D00001300", - "sort": 6002, - "hasImg": false, - "stlc": "荆门市", - "dtmel": 0, - "stcd": "4211221030", - "stnm": "苍坪测流站", - "addvcd_dictText": "荆门市", - "lgtd": 111.866217 +2.9619, - "irrCode_dictText": "水库枢纽", - "bsnm": "漳河流域" - }, { "addvcd": "420800000000000", "moditime": "2022-06-26 21:00:00", diff --git a/src/views/Home/panels/SzWatch/index.js b/src/views/Home/panels/SzWatch/index.js index d4dda06..c795ecb 100644 --- a/src/views/Home/panels/SzWatch/index.js +++ b/src/views/Home/panels/SzWatch/index.js @@ -57,7 +57,7 @@ function HDReal({ style }) { "lttd": 30.9641 +0.2002, "tm": "2025-03-21 08", "doxLevelStr": "Ⅰ类", - stnm:'水质站' + stnm:'麻城水站' })) const flyTo = (record) => { diff --git a/src/views/Home/panels/YaRes/index.js b/src/views/Home/panels/YaRes/index.js index 1f33d5a..0c867e1 100644 --- a/src/views/Home/panels/YaRes/index.js +++ b/src/views/Home/panels/YaRes/index.js @@ -125,7 +125,7 @@ function HDReal({ style }) { // } extra={ <> - + {/* */} {/* showSetting(true)}> */} } @@ -179,7 +179,7 @@ function HDReal({ style }) {
淹没乡镇数
-
0.5km2
+
0.5k㎡
淹没总面积
@@ -190,7 +190,7 @@ function HDReal({ style }) { 乡镇名称 - 影响面积/m2 + 影响面积/㎡ {/* 警戒水位 */} diff --git a/src/views/Home/panels/Yakgl/Setting.js b/src/views/Home/panels/Yakgl/Setting.js new file mode 100644 index 0000000..a3055ef --- /dev/null +++ b/src/views/Home/panels/Yakgl/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/Yakgl/index.js b/src/views/Home/panels/Yakgl/index.js new file mode 100644 index 0000000..8939984 --- /dev/null +++ b/src/views/Home/panels/Yakgl/index.js @@ -0,0 +1,1987 @@ +import React, { useMemo, useState } from 'react'; +import useRequest from '../../../../utils/useRequest'; +import { useDispatch, useSelector } from 'react-redux'; +import PanelBox from '../../components/PanelBox'; + +import Table from '@material-ui/core/Table'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableBody from '@material-ui/core/TableBody'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import DpTableCell from '../../../../layouts/mui/DpTableCell'; +import DpTableRow from '../../../../layouts/mui/DpTableRow'; +import clsx from 'clsx'; +import { renderDrp } from '../../../../utils/renutils'; + +const data1 = [ + { + "stcd": "716128301", + "kr":35.38,"lx":"小(2)型", + "type": "sk", + "hasRz": true, + "stnm": "新庙水库", + "adcd": "421181201000", + "wscd": null, + "importancy": 0, + "lgtd": 115.2125, + "lttd": 31.077222, + "elev": 0, + "damel": 21, + "dsflz": 18.88, + "fsltdz": 17.8, + "ddz": 7.6, + "zcxsw": 17.8, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 651.46, + "w": 0.154, + "a_fsltdz": 633.6600000000001, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716128301", + "tm": "2023-03-12T06:04:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716128301/20230312140400.jpg" + }, + { + "stcd": "716128301", + "tm": "2023-03-12T06:29:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716128302/20230312142900.jpg" + } + ], + "aRz": 633.66 + }, + { + "stcd": "7CS000021", + "kr":15.6,"lx":"小(2)型", + "type": "sk", + "hasRz": true, + "stnm": "夏家山水库", + "adcd": "421181104000", + "wscd": null, + "importancy": 0, + "lgtd": 115.108333, + "lttd": 30.920556, + "elev": 0, + "damel": 14.2, + "dsflz": 13, + "fsltdz": 12.55, + "ddz": 4.8, + "zcxsw": 12.55, + "drpTm": "2025-04-11T06:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 532.4, + "w": 0.075, + "a_fsltdz": 519.85, + "rzTm": "2025-04-11T06:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "7CS000021", + "tm": "2022-11-17T04:04:59.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2022/1117/7CS000021/20221117120459.jpg" + }, + { + "stcd": "7CS000021", + "tm": "2022-11-17T04:10:28.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2022/1117/7CS000022/20221117121028.jpg" + } + ], + "aRz": 519.85 + }, + { + "stcd": "716167401", + "kr":21.25,"lx":"小(2)型", + "type": "sk", + "hasRz": true, + "stnm": "板栗沟水库", + "adcd": "421181106000", + "wscd": null, + "importancy": 0, + "lgtd": 115.279722, + "lttd": 30.970833, + "elev": 0, + "damel": 24.7, + "dsflz": 22.63, + "fsltdz": 21.2, + "ddz": 14, + "zcxsw": 21.2, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 526.02, + "w": 0.054, + "a_fsltdz": 504.82, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716167401", + "tm": "2023-11-07T03:00:03.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1107/716167401/20231107110003.jpg" + }, + { + "stcd": "716167401", + "tm": "2023-11-07T02:02:12.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1107/716167402/20231107100212.jpg" + } + ], + "aRz": 504.82 + }, + { + "stcd": "7CS000061", + "type": "sk", + "hasRz": true, + "stnm": "鸡笼山水库", + "adcd": "421181201000", + "kr":13.81,"lx":"小(2)型", + "wscd": null, + "importancy": 0, + "lgtd": 115.195278, + "lttd": 31.137222, + "elev": 0, + "damel": 14.7, + "dsflz": 13.71, + "fsltdz": 12.4, + "ddz": 9.8, + "zcxsw": 12.4, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 316.69, + "w": 0, + "a_fsltdz": 304.29, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "7CS000061", + "tm": "2023-03-12T07:06:57.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/7CS000061/20230312150657.jpg" + }, + { + "stcd": "7CS000061", + "tm": "2023-03-12T06:09:53.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/7CS000062/20230312140953.jpg" + } + ], + "aRz": 304.29 + }, + { + "stcd": "716130701", + "type": "sk", + "hasRz": true, + "stnm": "肖家冲水库", + "adcd": "421181106000", + "wscd": null, + "importancy": 0, + "kr":15.5,"lx":"小(2)型", + "lgtd": 115.310833, + "lttd": 31.000833, + "elev": 0, + "damel": 26.7, + "dsflz": 25.53, + "fsltdz": 24, + "ddz": 14.2, + "zcxsw": 24, + "drpTm": "2025-04-11T06:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 308.31, + "w": 0.018, + "a_fsltdz": 284.31, + "rzTm": "2025-04-11T06:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716130701", + "tm": "2023-11-08T00:04:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1108/716130701/20231108080400.jpg" + }, + { + "stcd": "716130701", + "tm": "2023-11-08T00:11:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1108/716130702/20231108081100.jpg" + } + ], + "aRz": 284.31 + }, + { + "stcd": "716120901", + "type": "sk", + "hasRz": true, + "stnm": "细垸冲水库", + "kr":13.68,"lx":"小(2)型", + "adcd": "421181109000", + "wscd": null, + "importancy": 0, + "lgtd": 115.207222, + "lttd": 31.385556, + "elev": 0, + "damel": 45.13, + "dsflz": 43.57, + "fsltdz": 40.8, + "ddz": 38.2, + "zcxsw": 40.8, + "drpTm": "2024-05-31T07:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 260.91, + "w": 0.048, + "a_fsltdz": 220.11, + "rzTm": "2025-01-13T04:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716120901", + "tm": "2023-03-12T06:05:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716120901/20230312140500.jpg" + }, + { + "stcd": "716120901", + "tm": "2023-03-12T07:40:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716120902/20230312154000.jpg" + } + ], + "aRz": 220.11 + }, + { + "stcd": "7CS000111", + "type": "sk", + "hasRz": true, + "stnm": "八斗丘水库", + "kr":11.29,"lx":"小(2)型", + "adcd": "421181109000", + "wscd": null, + "importancy": 0, + "lgtd": 115.233611, + "lttd": 31.250833, + "elev": 0, + "damel": 213.3, + "dsflz": 210.8, + "fsltdz": 7.4, + "ddz": 205.6, + "zcxsw": 7.4, + "drpTm": "2025-04-11T05:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 207.14, + "w": 0.036, + "a_fsltdz": 199.73999999999998, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "7CS000111", + "tm": "2023-03-12T07:03:37.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/7CS000111/20230312150337.jpg" + }, + { + "stcd": "7CS000111", + "tm": "2023-03-12T07:08:24.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/7CS000112/20230312150824.jpg" + } + ], + "aRz": 199.74 + }, + { + "stcd": "716115301", + "type": "sk", + "hasRz": true, + "stnm": "葡萄冲水库", + "kr":20.71,"lx":"小(2)型", + "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": "716166301", + "type": "sk", + "hasRz": true, + "stnm": "搁船山水库", + "adcd": "421181107000", + "kr":27.39,"lx":"小(2)型", + "wscd": null, + "importancy": 0, + "lgtd": 115.357778, + "lttd": 31.155833, + "elev": 0, + "damel": 19.5, + "dsflz": 17.63, + "fsltdz": 16.1, + "ddz": 11.5, + "zcxsw": 16.1, + "drpTm": "2025-04-10T00:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 158.44, + "w": 0.107, + "a_fsltdz": 142.34, + "rzTm": "2025-04-10T00:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716166301", + "tm": "2023-03-12T06:00:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716166301/20230312140000.jpg" + }, + { + "stcd": "716166301", + "tm": "2023-03-12T07:04:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716166302/20230312150400.jpg" + } + ], + "aRz": 142.34 + }, + { + "stcd": "61611520", + "type": "sw", + "type2": "swsk", + "kr":10.17,"lx":"小(2)型", + "hasRz": true, + "stnm": "长冲水库 ", + "adcd": null, + "wscd": null, + "importancy": 0, + "lgtd": 115.07142, + "lttd": 31.46004, + "elev": null, + "damel": 0, + "dsflz": 0, + "fsltdz": 0, + "ddz": 0, + "zcxsw": 0, + "drpTm": "2025-05-21T02:05:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 129.34, + "a_fsltdz": null, + "rzTm": "2024-04-06T23:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "aRz": 129.34 + }, + { + "stcd": "716176401", + "type": "sk", + "hasRz": true, + "stnm": "寨上水库", + "kr":10.75,"lx":"小(2)型", + "adcd": "421181201000", + "wscd": null, + "importancy": 0, + "lgtd": 115.223611, + "lttd": 31.055833, + "elev": 0, + "damel": 227.24, + "dsflz": 216.39, + "fsltdz": 18.97, + "ddz": 212.7, + "zcxsw": 18.97, + "drpTm": "2024-12-27T14:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 115.14, + "w": 0.127, + "a_fsltdz": 96.17, + "rzTm": "2024-12-27T14:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716176401", + "tm": "2024-11-22T06:02:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/1122/716176401/20241122140200.jpg" + }, + { + "stcd": "716176401", + "tm": "2024-11-22T06:06:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2024/1122/716176402/20241122140600.jpg" + } + ], + "aRz": 96.17 + }, + { + "stcd": "61612476", + "type": "sw", + "type2": "swsk", + "hasRz": true, + "kr":19.66,"lx":"小(2)型", + "stnm": "黄牛出洞水库 ", + "adcd": null, + "wscd": null, + "importancy": 0, + "lgtd": 114.92642, + "lttd": 31.20223, + "elev": null, + "damel": 0, + "dsflz": 0, + "fsltdz": 0, + "ddz": 0, + "zcxsw": 0, + "drpTm": "2025-04-11T06:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 86.44, + "a_fsltdz": null, + "rzTm": "2024-04-05T16:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "aRz": 86.44 + }, + { + "stcd": "61611260", + "type": "sw", + "type2": "swsk", + "hasRz": true, + "stnm": "永丰水库 ", + "kr":299.37,"lx":"小(1)型", + "adcd": null, + "wscd": null, + "importancy": 0, + "lgtd": 115.05541, + "lttd": 31.11106, + "elev": null, + "damel": 0, + "dsflz": 0, + "fsltdz": 0, + "ddz": 0, + "zcxsw": 0, + "drpTm": "2025-05-21T02:05:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 77.09, + "a_fsltdz": null, + "rzTm": "2024-04-05T00:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "aRz": 77.09 + }, + { + "stcd": "61611690", + "type": "sw", + "type2": "swsk", + "hasRz": true, + "stnm": "海元桥水库 ", + "adcd": null, + "kr":24.78,"lx":"小(2)型", + "wscd": null, + "importancy": 0, + "lgtd": 115.00369, + "lttd": 31.2063, + "elev": null, + "damel": 0, + "dsflz": 0, + "fsltdz": 0, + "ddz": 0, + "zcxsw": 0, + "drpTm": "2025-05-21T00:05:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 75.53, + "a_fsltdz": null, + "rzTm": "2024-04-04T21:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "aRz": 75.53 + }, + { + "stcd": "716125101", + "type": "sk", + "hasRz": true, + "stnm": "郭泥冲水库", + "adcd": "421181100000", + "wscd": null, + "importancy": 0, + "kr":37.98,"lx":"小(2)型", + "lgtd": 114.800278, + "lttd": 31.176667, + "elev": 0, + "damel": 15, + "dsflz": 13.62, + "fsltdz": 12.9, + "ddz": 2.2, + "zcxsw": 12.9, + "drpTm": "2025-04-11T06:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 85.84, + "w": 0.268, + "a_fsltdz": 72.94, + "rzTm": "2024-07-10T19:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716125101", + "tm": "2023-11-19T23:04:18.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1120/716125101/20231120070418.jpg" + }, + { + "stcd": "716125101", + "tm": "2023-11-19T09:08:43.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1119/716125102/20231119170843.jpg" + } + ], + "aRz": 72.94 + }, + { + "stcd": "716126201", + "type": "sk", + "hasRz": true, + "stnm": "周德水库", + "kr":24.78,"lx":"小(2)型", + "adcd": "421181101000", + "wscd": null, + "importancy": 0, + "lgtd": 114.789444, + "lttd": 31.113611, + "elev": 0, + "damel": 15.61, + "dsflz": 14.38, + "fsltdz": 13.6, + "ddz": 5.58, + "zcxsw": 13.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": 75.05, + "w": 0.039, + "a_fsltdz": 61.449999999999996, + "rzTm": "2025-04-11T06:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716126201", + "tm": "2023-11-01T06:01:05.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1101/716126201/20231101140105.jpg" + }, + { + "stcd": "716126201", + "tm": "2023-11-01T06:03:04.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/1101/716126202/20231101140304.jpg" + } + ], + "aRz": 61.45 + }, + { + "stcd": "61612660", + "type": "sw", + "type2": "swsk", + "kr":22.73,"lx":"小(2)型", + "hasRz": true, + "stnm": "毛屋湾水库 ", + "adcd": null, + "wscd": null, + "importancy": 0, + "lgtd": 114.69332, + "lttd": 31.00302, + "elev": null, + "damel": 0, + "dsflz": 0, + "fsltdz": 0, + "ddz": 0, + "zcxsw": 0, + "drpTm": "2024-12-30T06:00:00.000Z", + "today": 0, + "h1": 0, + "h3": 0, + "h6": 0, + "h12": 0, + "h24": 0, + "h48": 0, + "drpState": 2, + "rz": 55.88, + "a_fsltdz": null, + "rzTm": "2024-04-04T01:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "aRz": 55.88 + }, + { + "stcd": "716126301", + "type": "sk", + "hasRz": true, + "stnm": "淮海水库", + "kr":29.33,"lx":"小(2)型", + "adcd": "421181102000", + "wscd": null, + "importancy": 0, + "lgtd": 114.694722, + "lttd": 31.053333, + "elev": 0, + "damel": 11.2, + "dsflz": 9.97, + "fsltdz": 9.6, + "ddz": 6.3, + "zcxsw": 9.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": 64.96, + "w": 0.129, + "a_fsltdz": 55.35999999999999, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716126301", + "tm": "2023-03-12T07:04:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716126301/20230312150400.jpg" + }, + { + "stcd": "716126301", + "tm": "2023-03-12T07:10:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716126302/20230312151000.jpg" + } + ], + "aRz": 55.36 + }, + { + "stcd": "716117701", + "type": "sk", + "hasRz": true, + "stnm": "涂家冲水库", + "adcd": "421181003000", + "wscd": null, + "importancy": 0, + "lgtd": 114.954444, + "lttd": 31.135833, + "elev": 0, + "damel": 7.99, + "kr":51.29,"lx":"小(2)型", + "dsflz": 6.44, + "fsltdz": 5.5, + "ddz": 2.2, + "zcxsw": 5.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": 60.51, + "w": 0.317, + "a_fsltdz": 55.01, + "rzTm": "2025-04-11T05:00:00.000Z", + "rzWarning": 1, + "rzState": 2, + "pic": [ + { + "stcd": "716117701", + "tm": "2023-03-12T07:04:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716117701/20230312150400.jpg" + }, + { + "stcd": "716117701", + "tm": "2023-03-12T07:21:00.000Z", + "url": "http://223.75.53.106:8891/skjgimages/2023/0312/716117702/20230312152100.jpg" + } + ], + "aRz": 55.01 + }, +] +const data2 = [ + { + "guid": "42118150155", + "code": "", + "name": "陡山洪水库", + "resRegCode": "42118150180-A5", + "adName": "歧亭镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-歧亭镇", + "lon": "114.725560", + "lat": "31.007010", + "areaUserGuid": "2956cdc324d249e9a4761656ae821d2d", + "areaUsername": "鄂敏东", + "areaPhone": "17786616661", + "areaPosition": "镇长", + "areaUnitName": "歧亭镇人民政府", + "customsUserGuid": "0001eee4a650410586554691870de878", + "customsUsername": "熊鑫", + "customsPhone": "18672542699", + "customsPosition": "党委副书记", + "customsUnitName": "歧亭镇人民政府", + "manageUnitUserGuid": "9e46257f685e458faefc3a24bbc03a21", + "manageUnitUsername": "周金发", + "manageUnitPhone": "15926718341", + "manageUnitPosition": "书记", + "manageUnitUnitName": "官塘村", + "technologyUserGuid": "ccb6b2b6bf0b4dcd8fa705301f201d67", + "technologyUsername": "肖正华", + "technologyPhone": "13995931489", + "technologyPosition": "党群服务中心主任", + "technologyUnitName": "歧亭镇人民政府", + "patrolUserGuid": "287f4541c631474bb643895cb94562f3", + "patrolUsername": "周金发", + "patrolPhone": "15926718341", + "patrolPosition": "书记", + "patrolUnitName": "官塘村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "歧亭镇" + }, + { + "guid": "42118140044", + "code": "", + "name": "茶田水库", + "resRegCode": "42118140003-A4", + "adName": "顺河镇", + "engScal": "小(1)型", + "place": "湖北省-黄冈市-麻城市-顺河镇", + "lon": "114.820840", + "lat": "31.362880", + "areaUserGuid": "70033d022f454099b965487d28bbe5ab", + "areaUsername": "李斌", + "areaPhone": "18120478128", + "areaPosition": "党委副书记、镇长", + "areaUnitName": "顺河镇人民政府", + "customsUserGuid": "644f9378d2644d9993881c6ea5adc391", + "customsUsername": "陈启平", + "customsPhone": "13871960449", + "customsPosition": "顺河工作组副组长", + "customsUnitName": "顺河镇人民政府", + "manageUnitUserGuid": "fefc71c946784b3495941050e33d7265", + "manageUnitUsername": "陈华林", + "manageUnitPhone": "13477665256", + "manageUnitPosition": "书记", + "manageUnitUnitName": "林家山村", + "technologyUserGuid": "ae5693679d2448e394cf4c865f3de6d8", + "technologyUsername": "张国际", + "technologyPhone": "13617135289", + "technologyPosition": "主任", + "technologyUnitName": "农业农村服务中心", + "patrolUserGuid": "254f2cf940204424a31c8cbadeb7e2f4", + "patrolUsername": "陈华林", + "patrolPhone": "13477665256", + "patrolPosition": "书记", + "patrolUnitName": "林家山村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "顺河镇" + }, + { + "guid": "42118150195", + "code": "", + "name": "丰登坳水库", + "resRegCode": "42118150227-A5", + "adName": "木子店镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-木子店镇", + "lon": "115.367760", + "lat": "31.275330", + "areaUserGuid": "369cb66e7b0e4b31a0b691b623f2bad9", + "areaUsername": "陈丽", + "areaPhone": "13872040257", + "areaPosition": "镇长", + "areaUnitName": "木子店镇人民政府", + "customsUserGuid": "7f0d2f5a3f5d488abc70663c436334da", + "customsUsername": "袁亮", + "customsPhone": "13409831658", + "customsPosition": "城建办主任", + "customsUnitName": "木子店镇人民政府", + "manageUnitUserGuid": "aee484fe1dad4fa7aad120e4167f30d9", + "manageUnitUsername": "刘爱文", + "manageUnitPhone": "13409682158", + "manageUnitPosition": "书记", + "manageUnitUnitName": "名山村", + "technologyUserGuid": "ebf6dcb2eda145f3986a1f40ea897fd2", + "technologyUsername": "胡国庆", + "technologyPhone": "13971746279", + "technologyPosition": "农业服务中心主任", + "technologyUnitName": "木子店镇人民政府", + "patrolUserGuid": "5c9ff04950f44fa89d36d1a617ea08c7", + "patrolUsername": "刘爱文", + "patrolPhone": "13409682158", + "patrolPosition": "书记", + "patrolUnitName": "名山村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "木子店镇" + }, + { + "guid": "42118150016", + "code": "", + "name": "灌基水库", + "resRegCode": "42118150009-A5", + "adName": "龙池办事处", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-龙池办事处", + "lon": "114.995290", + "lat": "31.2108", + "areaUserGuid": "588bb96a558e4d20a1c4c7eb32b65de2", + "areaUsername": "姚旭", + "areaPhone": "15971350399", + "areaPosition": "党工委副书记办事处主任", + "areaUnitName": "龙池办事处", + "customsUserGuid": "294143f18bfa433aa35cd4e166ac9ce5", + "customsUsername": "蔡子萌", + "customsPhone": "17671095244", + "customsPosition": "党工委委员、组织委员", + "customsUnitName": "龙池桥街道办事处", + "manageUnitUserGuid": "ff3d953a1535493e96253d091f28f446", + "manageUnitUsername": "李成波", + "manageUnitPhone": "13617132287", + "manageUnitPosition": "书记", + "manageUnitUnitName": "黄狮岗社区", + "technologyUserGuid": "4a93cc5de00a4de5b1293e4dc413b7a8", + "technologyUsername": "田红辉", + "technologyPhone": "13476752267", + "technologyPosition": "干部", + "technologyUnitName": "龙池办", + "patrolUserGuid": "952ad9ab82574bd99d2a4db0bd44ae45", + "patrolUsername": "李成波", + "patrolPhone": "13617132287", + "patrolPosition": "书记", + "patrolUnitName": "黄狮岗社区", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "龙池办事处" + }, + { + "guid": "42118150129", + "code": "", + "name": "翁家垅水库", + "resRegCode": "42118150174-A5", + "adName": "木子店镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-木子店镇", + "lon": "115.393160", + "lat": "31.2143", + "areaUserGuid": "313450bb7d89436eb1028b34bfd62967", + "areaUsername": "陈丽", + "areaPhone": "13872040257", + "areaPosition": "镇长", + "areaUnitName": "木子店镇人民政府", + "customsUserGuid": "c1efd20eff664f968de1c0436b4b3552", + "customsUsername": "张晶", + "customsPhone": "15586514440", + "customsPosition": "宣传办主任", + "customsUnitName": "木子店镇人民政府", + "manageUnitUserGuid": "9a0d5ce1892742f98a519f3228a8763d", + "manageUnitUsername": "李红慈", + "manageUnitPhone": "13995944646", + "manageUnitPosition": "书记", + "manageUnitUnitName": "黄泥坳村", + "technologyUserGuid": "8a04c188840349d49e27791ed59f2765", + "technologyUsername": "胡国庆", + "technologyPhone": "13971746279", + "technologyPosition": "农业服务中心主任", + "technologyUnitName": "木子店镇人民政府", + "patrolUserGuid": "43508b8584704d5d891b026412d47857", + "patrolUsername": "李红慈", + "patrolPhone": "13995944646", + "patrolPosition": "书记", + "patrolUnitName": "黄泥坳村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "木子店镇" + }, + { + "guid": "42118150175", + "code": "", + "name": "凤形地水库", + "resRegCode": "42118150061-A5", + "adName": "三河口镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-三河口镇", + "lon": "115.158070", + "lat": "31.330810", + "areaUserGuid": "f72a50066e374f7ba2f8985c4e121e70", + "areaUsername": "翟梦亚", + "areaPhone": "18986758735", + "areaPosition": "镇长", + "areaUnitName": "三河口镇人民政府", + "customsUserGuid": "b220947bd2544742901725255e14ba32", + "customsUsername": "肖志刚", + "customsPhone": "18972723897", + "customsPosition": "工会主席", + "customsUnitName": "三河口镇人民政府", + "manageUnitUserGuid": "2a36a0ceff5343438d7a315d3b5b5960", + "manageUnitUsername": "林顺珍", + "manageUnitPhone": "13476770115", + "manageUnitPosition": "周家河书记", + "manageUnitUnitName": "周家河村", + "technologyUserGuid": "e2d1d806a720445da7dda1570b6de6f1", + "technologyUsername": "丁锋", + "technologyPhone": "13635834341", + "technologyPosition": "工作人员", + "technologyUnitName": "农业农村服务中心", + "patrolUserGuid": "d1c0a51ba6b74bfea8e9282182133606", + "patrolUsername": "林顺珍", + "patrolPhone": "13476770115", + "patrolPosition": "书记", + "patrolUnitName": "周家河村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "三河口镇" + }, + { + "guid": "42118140031", + "code": "", + "name": "桐枧冲水库", + "resRegCode": "42118140036-A4", + "adName": "黄土岗镇", + "engScal": "小(1)型", + "place": "湖北省-黄冈市-麻城市-黄土岗镇", + "lon": "115.134930", + "lat": "31.392780", + "areaUserGuid": "c76030ef52014fe9922f09b84d5f4c7a", + "areaUsername": "岳春阳", + "areaPhone": "13972726841", + "areaPosition": "镇长", + "areaUnitName": "黄土岗镇人民政府", + "customsUserGuid": "af029e6a490a4749a0a7eba386a7b280", + "customsUsername": "丁保政", + "customsPhone": "13476760177", + "customsPosition": "镇综合执法副主任", + "customsUnitName": "黄土岗镇人民政府", + "manageUnitUserGuid": "7aa7ef95cc71413aa2dc89038a3f764a", + "manageUnitUsername": "王显教", + "manageUnitPhone": "13487023122", + "manageUnitPosition": "主任", + "manageUnitUnitName": "桐枧冲村", + "technologyUserGuid": "8476c60c41164ec788d8431061b42c0c", + "technologyUsername": "向彪", + "technologyPhone": "15629687723", + "technologyPosition": "镇农业农村中心工作人员", + "technologyUnitName": "黄土岗镇人民政府", + "patrolUserGuid": "dc7a2c2a31954b18b47fbd39b8c8e6f8", + "patrolUsername": "王显教", + "patrolPhone": "13487023122", + "patrolPosition": "书记", + "patrolUnitName": "桐枧冲村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "黄土岗镇" + }, + { + "guid": "42118150225", + "code": "", + "name": "铁门坎水库", + "resRegCode": "42118150297-A5", + "adName": "顺河镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-顺河镇", + "lon": "114.953880", + "lat": "31.243870", + "areaUserGuid": "a9745ecf23ca4b16b6531f7b101ac07a", + "areaUsername": "李斌", + "areaPhone": "18120478128", + "areaPosition": "党委副书记、镇长", + "areaUnitName": "顺河镇人民政府", + "customsUserGuid": "58cad794faba4b43b2d8e6706045ee09", + "customsUsername": "董康", + "customsPhone": "13886445848", + "customsPosition": "经济发展办公室主任", + "customsUnitName": "顺河镇人民政府", + "manageUnitUserGuid": "d6cf5ef646be47bd9e826e22b0914626", + "manageUnitUsername": "刘辉", + "manageUnitPhone": "13476629281", + "manageUnitPosition": "村负责人", + "manageUnitUnitName": "谢家垸村", + "technologyUserGuid": "3c45e6a1d49e46a6b50c9253ae216aad", + "technologyUsername": "张国际", + "technologyPhone": "13617135289", + "technologyPosition": "主任", + "technologyUnitName": "农业农村服务中心", + "patrolUserGuid": "960fdcab88fa49c191371542776c15cc", + "patrolUsername": "刘辉", + "patrolPhone": "13476629281", + "patrolPosition": "村负责人", + "patrolUnitName": "谢垸村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "顺河镇" + }, + { + "guid": "42118150063", + "code": "", + "name": "油盐河水库", + "resRegCode": "42118150044-A5", + "adName": "夫子河镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-夫子河镇", + "lon": "115.068650", + "lat": "30.900070", + "areaUserGuid": "1829d758ae6140689d1c732d02d820c9", + "areaUsername": "鲁海燕", + "areaPhone": "15571373396", + "areaPosition": "党委宣传委员", + "areaUnitName": "夫子河镇人民政府", + "customsUserGuid": "bafab49021bd4fa6b554da046bef9766", + "customsUsername": "杨宏焱", + "customsPhone": "13635888470", + "customsPosition": "镇国家干部", + "customsUnitName": "夫子河镇人民政府", + "manageUnitUserGuid": "7832dbf8ff274de2a8175510b8c71be1", + "manageUnitUsername": "尹海秋", + "manageUnitPhone": "13477666460", + "manageUnitPosition": "村书记", + "manageUnitUnitName": "芦柴坳村", + "technologyUserGuid": "29ca9ad8dd404d5eabaa7ee62edd8e0d", + "technologyUsername": "周国保", + "technologyPhone": "13409783397", + "technologyPosition": "主任", + "technologyUnitName": "夫子河镇农业农村服务中心", + "patrolUserGuid": "7fc3286d13034c4cbf39526deeba8372", + "patrolUsername": "尹海秋", + "patrolPhone": "13477666460", + "patrolPosition": "村书记", + "patrolUnitName": "芦柴坳村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "夫子河镇" + }, + { + "guid": "42118120003", + "code": "", + "name": "明山水库", + "resRegCode": "42000020030-A4", + "adName": "白果镇", + "engScal": "大(2)型", + "place": "湖北省-黄冈市-麻城市-白果镇", + "lon": "115.068090", + "lat": "31.026170", + "areaUserGuid": "", + "areaUsername": "", + "areaPhone": "", + "areaPosition": "", + "areaUnitName": "", + "customsUserGuid": "032a4c2bf0f049b1bd6854d273165ce0", + "customsUsername": "阮杰", + "customsPhone": "15072825999", + "customsPosition": "局长", + "customsUnitName": "麻城市水利和湖泊局", + "manageUnitUserGuid": "f698a8ac69ca45d09ece85b2cff53d7e", + "manageUnitUsername": "刘祖海", + "manageUnitPhone": "13487034227", + "manageUnitPosition": "主任", + "manageUnitUnitName": "明山水库管理处", + "technologyUserGuid": "", + "technologyUsername": "", + "technologyPhone": "", + "technologyPosition": "", + "technologyUnitName": "", + "patrolUserGuid": "", + "patrolUsername": "", + "patrolPhone": "", + "patrolPosition": "", + "patrolUnitName": "", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "白果镇" + }, + { + "guid": "42118150173", + "code": "", + "name": "烈马沟水库", + "resRegCode": "42118150154-A5", + "adName": "盐田河镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-盐田河镇", + "lon": "115.119230", + "lat": "30.956790", + "areaUserGuid": "4f6a7acc1b9f4021bc76c76def6172c6", + "areaUsername": "鲍迪", + "areaPhone": "15071718877", + "areaPosition": "党委副书记、镇长", + "areaUnitName": "盐田河镇人民政府", + "customsUserGuid": "3c35c553ab0447298fcada758039b9e5", + "customsUsername": "史瑞明", + "customsPhone": "18071808889", + "customsPosition": "三级主任科员", + "customsUnitName": "盐田河镇人民政府", + "manageUnitUserGuid": "b73e59bef1b44c87a440b45d2e45e6ec", + "manageUnitUsername": "罗建辉", + "manageUnitPhone": "15672072668", + "manageUnitPosition": "书记", + "manageUnitUnitName": "付家冲村", + "technologyUserGuid": "0318929dac1642ba85881f91493204e4", + "technologyUsername": "江小波", + "technologyPhone": "17671840346", + "technologyPosition": "城乡建设办公室主任", + "technologyUnitName": "盐田河镇人民政府", + "patrolUserGuid": "240630f9538e442fa07bb2a23675ba0b", + "patrolUsername": "罗建辉", + "patrolPhone": "15672072668", + "patrolPosition": "书记", + "patrolUnitName": "付家冲村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "盐田河镇" + }, + { + "guid": "42118150157", + "code": "", + "name": "黑石岩水库", + "resRegCode": "42118150120-A5", + "adName": "顺河镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-顺河镇", + "lon": "114.863790", + "lat": "31.316650", + "areaUserGuid": "3261852629ce46a9b8e8e1e6f6861847", + "areaUsername": "李斌", + "areaPhone": "18120478128", + "areaPosition": "党委副书记、镇长", + "areaUnitName": "顺河镇人民政府", + "customsUserGuid": "f297b772a3b0403e9a578e77963f1792", + "customsUsername": "陈思宇", + "customsPhone": "19172373680", + "customsPosition": "平安建设办公室副主任", + "customsUnitName": "顺河镇人民政府", + "manageUnitUserGuid": "9d009342dbdf4ee284f4fabfafc1e87c", + "manageUnitUsername": "祝红军", + "manageUnitPhone": "17771993488", + "manageUnitPosition": "村书记", + "manageUnitUnitName": "料马岗村", + "technologyUserGuid": "8eb535a6307b494ab0dfedf824216a96", + "technologyUsername": "张国际", + "technologyPhone": "13617135289", + "technologyPosition": "主任", + "technologyUnitName": "农业农村服务中心", + "patrolUserGuid": "796faa6745e44ba8918a2e0b4f530ecd", + "patrolUsername": "祝红军", + "patrolPhone": "17771993488", + "patrolPosition": "书记", + "patrolUnitName": "料马岗村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "顺河镇" + }, + { + "guid": "42118150134", + "code": "", + "name": "学堂凹水库", + "resRegCode": "42118150135-A5", + "adName": "顺河镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-顺河镇", + "lon": "114.848450", + "lat": "31.276210", + "areaUserGuid": "e31ea14fad2e4506ae954db1a246ad75", + "areaUsername": "李斌", + "areaPhone": "18120478128", + "areaPosition": "党委副书记、镇长", + "areaUnitName": "顺河镇人民政府", + "customsUserGuid": "0f26af21b5be43fa910125e7c9c77fe2", + "customsUsername": "冯祥厚", + "customsPhone": "15972800388", + "customsPosition": "四级主任科员", + "customsUnitName": "顺河镇人民政府", + "manageUnitUserGuid": "9d5b1669769644e98454e278338c00b0", + "manageUnitUsername": "崔天金", + "manageUnitPhone": "19971188588", + "manageUnitPosition": "村书记", + "manageUnitUnitName": "崔家垸村", + "technologyUserGuid": "7ea0f2ba076a412fbb9d2ce667371d63", + "technologyUsername": "张国际", + "technologyPhone": "13617135289", + "technologyPosition": "主任", + "technologyUnitName": "农业农村服务中心", + "patrolUserGuid": "a93bcd13d2594d329b856d8e38ebe6f3", + "patrolUsername": "崔天金", + "patrolPhone": "19971188588", + "patrolPosition": "村书记", + "patrolUnitName": "崔家垸村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "顺河镇" + }, + { + "guid": "42118150034", + "code": "", + "name": "垅下水库", + "resRegCode": "42118150070-A5", + "adName": "木子店镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-木子店镇", + "lon": "115.431870", + "lat": "31.218070", + "areaUserGuid": "065c3e2373a94d2aac6b535020fc7511", + "areaUsername": "陈丽", + "areaPhone": "13872040257", + "areaPosition": "镇长", + "areaUnitName": "木子店镇人民政府", + "customsUserGuid": "ac120fa14e254ee3bbaf2b1809065b66", + "customsUsername": "熊凤鸣", + "customsPhone": "13995931509", + "customsPosition": "总支书记", + "customsUnitName": "木子店镇人民政府", + "manageUnitUserGuid": "42ffc29175f549b3b13ed99c2409ff37", + "manageUnitUsername": "夏中艳", + "manageUnitPhone": "15171688638", + "manageUnitPosition": "书记", + "manageUnitUnitName": "牌楼村", + "technologyUserGuid": "a7d3887b9a9340da9c875020d5591b52", + "technologyUsername": "胡国庆", + "technologyPhone": "13971746279", + "technologyPosition": "农业服务中心主任", + "technologyUnitName": "木子店镇人民政府", + "patrolUserGuid": "969bed9ed3b847d498448de9e956cfa8", + "patrolUsername": "夏中艳", + "patrolPhone": "15171688638", + "patrolPosition": "书记", + "patrolUnitName": "牌楼村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "木子店镇" + }, + { + "guid": "42118150264", + "code": "", + "name": "杨树庵水库", + "resRegCode": "42118150084-A5", + "adName": "乘马岗镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-乘马岗镇", + "lon": "114.9236", + "lat": "31.406930", + "areaUserGuid": "89b3cab4834b46c4951c8f57fc75c168", + "areaUsername": "陶亚林", + "areaPhone": "13409912008", + "areaPosition": "纪委书记", + "areaUnitName": "乘马岗镇人民政府", + "customsUserGuid": "d1ae9fc3e1f4428d80701ccb6b1a78f4", + "customsUsername": "陈富谋", + "customsPhone": "13409913718", + "customsPosition": "党群服务中心副主任", + "customsUnitName": "乘马岗镇", + "manageUnitUserGuid": "9cdf02fa18e7401ca2a6d9dffc338702", + "manageUnitUsername": "丁厚启", + "manageUnitPhone": "18972750518", + "manageUnitPosition": "书记", + "manageUnitUnitName": "落衣山", + "technologyUserGuid": "48ed9c4ddcfa4b2f99c5881b9dedbd9e", + "technologyUsername": "李舜", + "technologyPhone": "15072864368", + "technologyPosition": "农业农村服务中心主任", + "technologyUnitName": "乘马岗镇", + "patrolUserGuid": "b2769337444f48d8a3ba46e91466f38e", + "patrolUsername": "丁厚启", + "patrolPhone": "18972750518", + "patrolPosition": "书记", + "patrolUnitName": "落衣山", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "乘马岗镇" + }, + { + "guid": "42118150054", + "code": "", + "name": "吴家垸水库", + "resRegCode": "42118150022-A5", + "adName": "黄土岗镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-黄土岗镇", + "lon": "115.029790", + "lat": "31.427490", + "areaUserGuid": "aecf8da384e74167ac32cf294033941c", + "areaUsername": "岳春阳", + "areaPhone": "13972726841", + "areaPosition": "镇长", + "areaUnitName": "黄土岗镇人民政府", + "customsUserGuid": "3ea268ba20d04f3e9ae17a71a4c6eb9f", + "customsUsername": "胡伟", + "customsPhone": "13469911554", + "customsPosition": "镇退役军人服务站站长", + "customsUnitName": "黄土岗镇人民政府", + "manageUnitUserGuid": "991c1d8551394ad5a51612621c7b952b", + "manageUnitUsername": "黄吉理", + "manageUnitPhone": "13972723479", + "manageUnitPosition": "主任", + "manageUnitUnitName": "喻家垸村", + "technologyUserGuid": "0e3ec36740c14b019ffdd7181df52ff9", + "technologyUsername": "向彪", + "technologyPhone": "15629687723", + "technologyPosition": "镇农业农村中心工作人员", + "technologyUnitName": "黄土岗镇人民政府", + "patrolUserGuid": "95252c6333844eec9042ea1d01c173aa", + "patrolUsername": "黄吉理", + "patrolPhone": "13972723479", + "patrolPosition": "书记", + "patrolUnitName": "喻家垸村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "黄土岗镇" + }, + { + "guid": "42118150040", + "code": "", + "name": "葡萄冲水库", + "resRegCode": "42118150020-A5", + "adName": "黄土岗镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-黄土岗镇", + "lon": "115.052470", + "lat": "31.423590", + "areaUserGuid": "a16ae7c0cbf247a89095f9ea619e6ee5", + "areaUsername": "岳春阳", + "areaPhone": "13972726841", + "areaPosition": "镇长", + "areaUnitName": "黄土岗镇人民政府", + "customsUserGuid": "6fea8cfba1e042e38c04372439a5d773", + "customsUsername": "何军", + "customsPhone": "13476629408", + "customsPosition": "镇三级主任科员", + "customsUnitName": "黄土岗镇人民政府", + "manageUnitUserGuid": "f3ae0bbd650b44f49c9b8d79f3edf2f2", + "manageUnitUsername": "何正平", + "manageUnitPhone": "13636139354", + "manageUnitPosition": "书记", + "manageUnitUnitName": "新屋河村", + "technologyUserGuid": "aa2c59a295334b8fbc0eddc6298ec0df", + "technologyUsername": "向彪", + "technologyPhone": "15629687723", + "technologyPosition": "镇农业农村中心工作人员", + "technologyUnitName": "黄土岗镇人民政府", + "patrolUserGuid": "85d54dcefe31418982cf559836dee449", + "patrolUsername": "何正平", + "patrolPhone": "13636139354", + "patrolPosition": "主任", + "patrolUnitName": "新屋河村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "黄土岗镇" + }, + { + "guid": "42118140040", + "code": "", + "name": "草庙沟水库", + "resRegCode": "42118140002-A4", + "adName": "乘马岗镇", + "engScal": "小(1)型", + "place": "湖北省-黄冈市-麻城市-乘马岗镇", + "lon": "114.985190", + "lat": "31.323340", + "areaUserGuid": "42b4da872f4943af8ddbe33c09b92984", + "areaUsername": "杨威", + "areaPhone": "18272139777", + "areaPosition": "党委组织委员", + "areaUnitName": "乘马岗镇人民政府", + "customsUserGuid": "aa4f9b8ef7334022a09df98bc2afce85", + "customsUsername": "江解民", + "customsPhone": "13597582328", + "customsPosition": "党政综合办主任", + "customsUnitName": "乘马岗镇", + "manageUnitUserGuid": "b4c16d9d203b402f9e9f62939dced25c", + "manageUnitUsername": "李济保", + "manageUnitPhone": "15327727255", + "manageUnitPosition": "村书记", + "manageUnitUnitName": "江树村", + "technologyUserGuid": "b1718f51487c45eb973329a1ca54ce91", + "technologyUsername": "曹鹏辉", + "technologyPhone": "13177351977", + "technologyPosition": "农业农村服务中心水利组组长", + "technologyUnitName": "乘马岗镇", + "patrolUserGuid": "07e0215f957740d798895607ef90efac", + "patrolUsername": "李济保", + "patrolPhone": "15327727255", + "patrolPosition": "书记", + "patrolUnitName": "江树村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "乘马岗镇" + } +] +const data3 = [ + { + "guid": "42118150155", + "code": "", + "name": "陡山洪水库", + "resRegCode": "42118150180-A5", + "adName": "歧亭镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-歧亭镇", + "lon": "114.725560", + "lat": "31.007010", + "areaUserGuid": "2956cdc324d249e9a4761656ae821d2d", + "areaUsername": "鄂敏东", + "areaPhone": "17786616661", + "areaPosition": "镇长", + "areaUnitName": "歧亭镇人民政府", + "customsUserGuid": "0001eee4a650410586554691870de878", + "customsUsername": "熊鑫", + "customsPhone": "18672542699", + "customsPosition": "党委副书记", + "customsUnitName": "歧亭镇人民政府", + "manageUnitUserGuid": "9e46257f685e458faefc3a24bbc03a21", + "manageUnitUsername": "周金发", + "manageUnitPhone": "15926718341", + "manageUnitPosition": "书记", + "manageUnitUnitName": "官塘村", + "technologyUserGuid": "ccb6b2b6bf0b4dcd8fa705301f201d67", + "technologyUsername": "肖正华", + "technologyPhone": "13995931489", + "technologyPosition": "党群服务中心主任", + "technologyUnitName": "歧亭镇人民政府", + "patrolUserGuid": "287f4541c631474bb643895cb94562f3", + "patrolUsername": "周金发", + "patrolPhone": "15926718341", + "patrolPosition": "书记", + "patrolUnitName": "官塘村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "歧亭镇" + }, + { + "guid": "42118140044", + "code": "", + "name": "茶田水库", + "resRegCode": "42118140003-A4", + "adName": "顺河镇", + "engScal": "小(1)型", + "place": "湖北省-黄冈市-麻城市-顺河镇", + "lon": "114.820840", + "lat": "31.362880", + "areaUserGuid": "70033d022f454099b965487d28bbe5ab", + "areaUsername": "李斌", + "areaPhone": "18120478128", + "areaPosition": "党委副书记、镇长", + "areaUnitName": "顺河镇人民政府", + "customsUserGuid": "644f9378d2644d9993881c6ea5adc391", + "customsUsername": "陈启平", + "customsPhone": "13871960449", + "customsPosition": "顺河工作组副组长", + "customsUnitName": "顺河镇人民政府", + "manageUnitUserGuid": "fefc71c946784b3495941050e33d7265", + "manageUnitUsername": "陈华林", + "manageUnitPhone": "13477665256", + "manageUnitPosition": "书记", + "manageUnitUnitName": "林家山村", + "technologyUserGuid": "ae5693679d2448e394cf4c865f3de6d8", + "technologyUsername": "张国际", + "technologyPhone": "13617135289", + "technologyPosition": "主任", + "technologyUnitName": "农业农村服务中心", + "patrolUserGuid": "254f2cf940204424a31c8cbadeb7e2f4", + "patrolUsername": "陈华林", + "patrolPhone": "13477665256", + "patrolPosition": "书记", + "patrolUnitName": "林家山村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "顺河镇" + }, + { + "guid": "42118150195", + "code": "", + "name": "丰登坳水库", + "resRegCode": "42118150227-A5", + "adName": "木子店镇", + "engScal": "小(2)型", + "place": "湖北省-黄冈市-麻城市-木子店镇", + "lon": "115.367760", + "lat": "31.275330", + "areaUserGuid": "369cb66e7b0e4b31a0b691b623f2bad9", + "areaUsername": "陈丽", + "areaPhone": "13872040257", + "areaPosition": "镇长", + "areaUnitName": "木子店镇人民政府", + "customsUserGuid": "7f0d2f5a3f5d488abc70663c436334da", + "customsUsername": "袁亮", + "customsPhone": "13409831658", + "customsPosition": "城建办主任", + "customsUnitName": "木子店镇人民政府", + "manageUnitUserGuid": "aee484fe1dad4fa7aad120e4167f30d9", + "manageUnitUsername": "刘爱文", + "manageUnitPhone": "13409682158", + "manageUnitPosition": "书记", + "manageUnitUnitName": "名山村", + "technologyUserGuid": "ebf6dcb2eda145f3986a1f40ea897fd2", + "technologyUsername": "胡国庆", + "technologyPhone": "13971746279", + "technologyPosition": "农业服务中心主任", + "technologyUnitName": "木子店镇人民政府", + "patrolUserGuid": "5c9ff04950f44fa89d36d1a617ea08c7", + "patrolUsername": "刘爱文", + "patrolPhone": "13409682158", + "patrolPosition": "书记", + "patrolUnitName": "名山村", + "cityName": "黄冈市", + "countyName": "麻城市", + "townName": "木子店镇" + } +] +const data4 = [ + { + "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": 125976, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateTime": "2025-05-14 09:53:14", + "del": "0", + "planId": "421181001001000", + "planName": "园林社区居民委员会一页纸预案", + "levels": "6", + "year": "2025", + "adnm": "园林社区居民委员会", + "adcd": "421181001001000", + "status": 0, + "uploadAttachStatus": "0", + "padNm": "421181001001000", + "url": "dplan/2025/421181001001000/园林社区居民委员会一页纸预案.pdf" + }, + { + "id": 125977, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:23", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:35:45", + "del": "0", + "planId": "421181001002000", + "planName": "城西社区居民委员会山洪灾害防御预案", + "levels": "0", + "year": "2025", + "adnm": "城西社区居民委员会", + "adcd": "421181001002000", + "attachUpdateTime": "2025-05-15 15:35:45", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001002000", + "url": "dplan/2025/421181001002000/城西社区居民委员会山洪灾害防御预案.pdf" + }, + { + "id": 125978, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateTime": "2025-05-14 09:53:14", + "del": "0", + "planId": "421181001002000", + "planName": "城西社区居民委员会一页纸预案", + "levels": "6", + "year": "2025", + "adnm": "城西社区居民委员会", + "adcd": "421181001002000", + "status": 0, + "uploadAttachStatus": "0", + "padNm": "421181001002000", + "url": "dplan/2025/421181001002000/城西社区居民委员会一页纸预案.pdf" + }, + { + "id": 125979, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:35:59", + "del": "0", + "planId": "421181001007000", + "planName": "黄狮岗社区居民委员会山洪灾害防御预案", + "levels": "0", + "year": "2025", + "adnm": "黄狮岗社区居民委员会", + "adcd": "421181001007000", + "attachUpdateTime": "2025-05-15 15:35:59", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001007000", + "url": "dplan/2025/421181001007000/黄狮岗社区居民委员会山洪灾害防御预案.pdf" + }, + { + "id": 125980, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateTime": "2025-05-14 09:53:14", + "del": "0", + "planId": "421181001007000", + "planName": "黄狮岗社区居民委员会一页纸预案", + "levels": "6", + "year": "2025", + "adnm": "黄狮岗社区居民委员会", + "adcd": "421181001007000", + "status": 0, + "uploadAttachStatus": "0", + "padNm": "421181001007000", + "url": "dplan/2025/421181001007000/黄狮岗社区居民委员会一页纸预案.pdf" + }, + { + "id": 125981, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:36:08", + "del": "0", + "planId": "421181001008000", + "planName": "宋家河社区居民委员会山洪灾害防御预案", + "levels": "0", + "year": "2025", + "adnm": "宋家河社区居民委员会", + "adcd": "421181001008000", + "attachUpdateTime": "2025-05-15 15:36:08", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001008000", + "url": "dplan/2025/421181001008000/宋家河社区居民委员会山洪灾害防御预案.pdf" + }, + { + "id": 125982, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateTime": "2025-05-14 09:53:14", + "del": "0", + "planId": "421181001008000", + "planName": "宋家河社区居民委员会一页纸预案", + "levels": "6", + "year": "2025", + "adnm": "宋家河社区居民委员会", + "adcd": "421181001008000", + "status": 0, + "uploadAttachStatus": "0", + "padNm": "421181001008000", + "url": "dplan/2025/421181001008000/宋家河社区居民委员会一页纸预案.pdf" + }, + { + "id": 125983, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:36:17", + "del": "0", + "planId": "421181001010000", + "planName": "松鹤社区居民委员会山洪灾害防御预案", + "levels": "0", + "year": "2025", + "adnm": "松鹤社区居民委员会", + "adcd": "421181001010000", + "attachUpdateTime": "2025-05-15 15:36:17", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001010000", + "url": "dplan/2025/421181001010000/松鹤社区居民委员会山洪灾害防御预案.pdf" + }, + { + "id": 125984, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateTime": "2025-05-14 09:53:14", + "del": "0", + "planId": "421181001010000", + "planName": "松鹤社区居民委员会一页纸预案", + "levels": "6", + "year": "2025", + "adnm": "松鹤社区居民委员会", + "adcd": "421181001010000", + "status": 0, + "uploadAttachStatus": "0", + "padNm": "421181001010000", + "url": "dplan/2025/421181001010000/松鹤社区居民委员会一页纸预案.pdf" + }, + { + "id": 125985, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:36:35", + "del": "0", + "planId": "421181001011000", + "planName": "龙池桥社区居民委员会山洪灾害防御预案", + "levels": "0", + "year": "2025", + "adnm": "龙池桥社区居民委员会", + "adcd": "421181001011000", + "attachUpdateTime": "2025-05-15 15:36:34", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001011000", + "url": "dplan/2025/421181001011000/龙池桥社区居民委员会山洪灾害防御预案.pdf" + }, + { + "id": 125986, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateTime": "2025-05-14 09:53:14", + "del": "0", + "planId": "421181001011000", + "planName": "龙池桥社区居民委员会一页纸预案", + "levels": "6", + "year": "2025", + "adnm": "龙池桥社区居民委员会", + "adcd": "421181001011000", + "status": 0, + "uploadAttachStatus": "0", + "padNm": "421181001011000", + "url": "dplan/2025/421181001011000/龙池桥社区居民委员会一页纸预案.pdf" + }, + { + "id": 125987, + "reviewStatus": "2", + "createTime": "2025-05-03 21:25:24", + "updateId": "187", + "updateName": "麻城市", + "updateTime": "2025-05-15 15:36:47", + "del": "0", + "planId": "421181001204000", + "planName": "七里桥村村民委员会山洪灾害防御预案", + "levels": "0", + "year": "2025", + "adnm": "七里桥村村民委员会", + "adcd": "421181001204000", + "attachUpdateTime": "2025-05-15 15:36:47", + "status": 0, + "uploadAttachStatus": "1", + "padNm": "421181001204000", + "url": "dplan/2025/421181001204000/七里桥村村民委员会山洪灾害防御预案.pdf" + } +] + +function DrpReal({ style }) { + const [tab,setTab] = useState('1') + const dispatch = useDispatch(); + + return ( + + setTab('1')}>干旱 + setTab('2')}>洪涝 + setTab('3')}>水质污染 + setTab('4')}>其他 + + } + > + + + + + + 序号 + 预案名称 + 更新时间 + + + + {data4.map((row,index) => ( + + {index+1} + +
{ + dispatch?.runtime.setInfoDlg({ layerId: 'PdfLayer', properties: row }) + }}>{row.planName}
+
+ {row.updateTime.slice(0,10)} +
+ ))} +
+
+
+
+ ) +} + +export default DrpReal; diff --git a/src/views/Home/panels/lsphb/Setting.js b/src/views/Home/panels/lsphb/Setting.js new file mode 100644 index 0000000..fd1c4ef --- /dev/null +++ b/src/views/Home/panels/lsphb/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/lsphb/index.js b/src/views/Home/panels/lsphb/index.js new file mode 100644 index 0000000..554e4b7 --- /dev/null +++ b/src/views/Home/panels/lsphb/index.js @@ -0,0 +1,195 @@ +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' +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 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 = [ + { 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 }, + { name: '宋埠镇区', leakage: '1284.8', supply: '4029.5', rate: 31.9 }, + { name: '黄土岗镇区', leakage: '186.2', supply: '698.2', rate: 26.7 }, + { name: '铁门岗镇区', leakage: '984.2', supply: '3994.4', rate: 24.6 }, + { name: '乘马岗镇区', leakage: '300.6', supply: '1250.5', rate: 24.0 }, + { name: '白果镇区', leakage: '1129.0', supply: '6422.6', rate: 17.6 }, + { name: '张家畈镇区', leakage: '444.8', supply: '2661.8', rate: 16.7 }, + { name: '顺河镇区', leakage: '749.3', supply: '4490.1', rate: 16.7 } + ]; + 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} + /> +
+ + + + + DMA分区名称 + 漏水量(㎡) + 供水量 + 漏损率(%) + + + + {data.map((row) => ( + flyTo(row)}> + +
{row.name}
+
+ {row.leakage} + {row.supply} + {row.rate} + {/* {rzRender(row.rz, row.grz)} + {rzRender(row.rz, row.wrz)} */} +
+ ))} +
+
+
+ { + setting && showSetting(false)} /> + } +
+ ) +} + +export default HDReal; diff --git a/src/views/Home/panels/lsphb/index.less b/src/views/Home/panels/lsphb/index.less new file mode 100644 index 0000000..a91a889 --- /dev/null +++ b/src/views/Home/panels/lsphb/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