diff --git a/public/assets/jrx.png b/public/assets/jrx.png index bc0253f..38eab7a 100644 Binary files a/public/assets/jrx.png and b/public/assets/jrx.png differ diff --git a/public/assets/潭家河村山洪灾害防御预案.pdf b/public/assets/潭家河村山洪灾害防御预案.pdf new file mode 100644 index 0000000..e52c890 Binary files /dev/null and b/public/assets/潭家河村山洪灾害防御预案.pdf differ diff --git a/src/models/map/index.js b/src/models/map/index.js index 3997537..5f2eb56 100644 --- a/src/models/map/index.js +++ b/src/models/map/index.js @@ -266,7 +266,7 @@ const map = { RealSkLayer: false, RainDrpLayer: true, ShuikuLayer: false, - BxSkLayer: true, + BxSkLayer: false, FzdxLayer: false, WataLayer: false, AdcdLayer: true, diff --git a/src/models/map/layout.js b/src/models/map/layout.js index 6f36996..cc3f0f6 100644 --- a/src/models/map/layout.js +++ b/src/models/map/layout.js @@ -272,6 +272,7 @@ export default function calcLayout(view, rightStack, hidePanels) { } else if (view === 3) { right = [ { key: '网格', style: { height: '40rem' } }, + { key: '单个预案', style: { height: '10rem',flexGrow: 1 } }, ] //rightFullHeight = true; } else if (view === 4) { diff --git a/src/models/runtime/index.js b/src/models/runtime/index.js index 4437f87..05dc587 100644 --- a/src/models/runtime/index.js +++ b/src/models/runtime/index.js @@ -14,6 +14,7 @@ function initState() { layerSetting: { }, yyObj: {}, + yuananType:'sh', duibifxNum:[], shkshObj:undefined, gwobj: undefined, @@ -67,6 +68,9 @@ const runtime = { setInfoDlg(state, props) { return { ...state, infoDlg: props } }, + setYuananType(state, props) { + return { ...state, yuananType: props } + }, setYyfa(state, props) { return { ...state, yyObj: props } }, diff --git a/src/models/shyjview/index.js b/src/models/shyjview/index.js index 74533d1..e21ef8f 100644 --- a/src/models/shyjview/index.js +++ b/src/models/shyjview/index.js @@ -34,7 +34,7 @@ const shyjview = { } - // dispatch.runtime.setHome(); + dispatch.runtime.setHome(); }, async showWeatherRadar(_, state) { dispatch.map.setCalculating(true); @@ -49,7 +49,7 @@ const shyjview = { } - // dispatch.runtime.setHome(); + dispatch.runtime.setHome(); }, async showYj24hContour(latest) { diff --git a/src/views/Home/PanelIndex.js b/src/views/Home/PanelIndex.js index 694b245..3c7a344 100644 --- a/src/views/Home/PanelIndex.js +++ b/src/views/Home/PanelIndex.js @@ -143,7 +143,7 @@ import Gsfhqx from './panels/Gsfhqx' import JbqkRight from './panels/JbqkRight' import RainSta from './panels/RainSta' import DrpSta from './panels/DrpSta' - +import Yuanan from './panels/SigelYuanan' export default function PanelIndex({ name, style, ...params }) { if (name === '天气') { return ( @@ -426,7 +426,9 @@ export default function PanelIndex({ name, style, ...params }) { return } else if (name === '测站到报率') { return - } + } else if (name === '单个预案') { + return + } return (

not impl

diff --git a/src/views/Home/index.js b/src/views/Home/index.js index b038e6a..7c6386c 100644 --- a/src/views/Home/index.js +++ b/src/views/Home/index.js @@ -23,6 +23,7 @@ export default function Demo1() { const isSc = useSelector(s => s.runtime.scya); const wg = useSelector(s => s.runtime.shkshObj) const showGw = useSelector(s => s.runtime.showGw) + const yuananType = useSelector(s => s.runtime.yuananType); console.log('wg', wg); @@ -64,11 +65,22 @@ export default function Demo1() { !hp && ( { - layout.left.map(({ key, ...params }) => ( + layout.left.map(({ key, ...params }) => { + if (key != '辅助决策列表') { + return ( - )) + ) + } else if (yuananType == 'sh') { + return ( + + + + ) + } + } + ) } @@ -82,7 +94,7 @@ export default function Demo1() { { layout.right.map(({ key, ...params }) => { - if (key != '网格') { + if (key != '网格' && key != '单个预案') { return ( diff --git a/src/views/Home/panels/BxSkOverall/OverallContent.js b/src/views/Home/panels/BxSkOverall/OverallContent.js index 4983534..bfcf57f 100644 --- a/src/views/Home/panels/BxSkOverall/OverallContent.js +++ b/src/views/Home/panels/BxSkOverall/OverallContent.js @@ -65,8 +65,8 @@ export default function OverallContent({ data, skAll }) {
{start}9时{end}9时 24小时中共有1 - 个站点雨量为大暴雨,雨量值 - 261mm; + 个站点雨量为暴雨,雨量值 + 50.2mm; 共产生3个山洪预警(2个内部预警,1个外部预警),均已处置;1个水库超汛限,已短信通知责任人;1个超警戒河道预警。
diff --git a/src/views/Home/panels/Byjc/index.js b/src/views/Home/panels/Byjc/index.js index aae5cba..bbae704 100644 --- a/src/views/Home/panels/Byjc/index.js +++ b/src/views/Home/panels/Byjc/index.js @@ -915,39 +915,47 @@ function DrpReal({ style }) { "aRz": -17.4 } ] - + const removePoint = () => { + const map = window.__mapref; + const layer = map.getLayer('关联站点') + dispatch?.runtime.setFeaturePop({}) + if (layer) { + map.removeLayer('关联站点'); + map.removeSource('关联站点'); + } + } const [showbx, setShowdbx] = useState(0) const [showsy, setShowdsy] = useState(0) const [showsl, setShowdsl] = useState(0) const [showby, setShowdby] = useState(0) - useEffect(() => { - const map = window.__mapref; - if (map) { - if (tab === '1' && data1 && showbx) { - setLayer(data1, '变形') - } - if (tab === '2' && data2 && showsy) { + // useEffect(() => { + // const map = window.__mapref; + // if (map) { + // if (tab === '1' && data1 && showbx) { + // setLayer(data1, '变形') + // } + // if (tab === '2' && data2 && showsy) { - setLayer(data2, '渗压') - } - if (tab === '3' && data3 && showsl) { - setLayer(data3, '渗流') - } - if (tab === '4' && data4 && showby) { - setLayer(data4, '白蚁') - } - } - else { - const dsq = setInterval(() => { - const map = window.__mapref; - if (map && skdata.length > 0) { - clearInterval(dsq) - setLayer(skdata, 'sk') - } - }, 500); - } + // setLayer(data2, '渗压') + // } + // if (tab === '3' && data3 && showsl) { + // setLayer(data3, '渗流') + // } + // if (tab === '4' && data4 && showby) { + // setLayer(data4, '白蚁') + // } + // } + // else { + // const dsq = setInterval(() => { + // const map = window.__mapref; + // if (map && skdata.length > 0) { + // clearInterval(dsq) + // setLayer(skdata, 'sk') + // } + // }, 500); + // } - }, [data1, data2, data3, data4, tab, showbx, showsy, showsl, showby]) + // }, [data1, data2, data3, data4, tab, showbx, showsy, showsl, showby]) const setLayer = (data = [], type) => { const map = window.__mapref; @@ -1229,8 +1237,10 @@ function DrpReal({ style }) { key={row.stcd} onClick={() => { const { lgtd, lttd, res_nm: stnm } = row; + removePoint() if (stnm == '浮桥河水库') { - setShowdbx(1) + setShowdbx(showbx == 1 ? 0 : 1) + setLayer([row],'变形') if (lgtd && lttd) { dispatch.runtime.setCameraTarget({ center: [lgtd, lttd], @@ -1274,8 +1284,10 @@ function DrpReal({ style }) { key={row.stcd} onClick={() => { const { lgtd, lttd, res_nm: stnm } = row; + removePoint() if (stnm == '浮桥河水库') { - setShowdsy(1) + setShowdsy(showsy == 1 ? 0 : 1) + setLayer([row],'渗压') if (lgtd && lttd) { dispatch.runtime.setCameraTarget({ center: [lgtd, lttd], @@ -1315,7 +1327,9 @@ function DrpReal({ style }) { key={row.stcd} onClick={() => { const { lgtd, lttd } = row; - setShowdsl(1) + removePoint() + setShowdsl(showsl == 1 ? 0 : 1) + setLayer([row],'渗流') if (row.cd == 1) { if (lgtd && lttd) { dispatch.runtime.setCameraTarget({ @@ -1356,8 +1370,12 @@ function DrpReal({ style }) { { + removePoint() + const { lgtd, lttd } = row; - setShowdby(1) + setShowdby(showby == 1 ? 0 : 1) + setLayer([row],'白蚁') + if (row.cd == '0AB3ED') { if (lgtd && lttd) { dispatch.runtime.setCameraTarget({ diff --git a/src/views/Home/panels/DrpSta/index.js b/src/views/Home/panels/DrpSta/index.js index 50102f6..6337731 100644 --- a/src/views/Home/panels/DrpSta/index.js +++ b/src/views/Home/panels/DrpSta/index.js @@ -447,6 +447,29 @@ export default function Overall({ style }) { 10, 10, 14, 16, ], + 'text-max-width': 30, + 'text-font': ['Roboto Black'], + 'text-field': [ + 'step', + ['zoom'], + [ + 'case', + ['!=', ['get', 'state'], 1], '', + ['concat', ['get', 'rz'], 'm'] + ], + 12, [ + 'case', + ['!=', ['get', 'state'], 1], ['get', 'stnm'], + [ + 'format', + ['get', 'stnm'], { 'font-scale': 0.8, 'text-color': '#fff' }, + '\n', {}, + ['concat', ['get', 'rz'], 'm'], {} + ] + ], + ], + 'text-anchor': 'top', + 'text-offset': [0, 1], }, 'paint': { 'text-color': [ diff --git a/src/views/Home/panels/Drpfx/index.js b/src/views/Home/panels/Drpfx/index.js index 8d1fe05..b1779c5 100644 --- a/src/views/Home/panels/Drpfx/index.js +++ b/src/views/Home/panels/Drpfx/index.js @@ -262,8 +262,8 @@ export default function Overall({ style }) { flyTo(item)}> {item.stnm} {item.today} - 阎家河镇 - 桃林河 + 福田河镇 + 长江流域 )) } diff --git a/src/views/Home/panels/FzjcLayers/index.js b/src/views/Home/panels/FzjcLayers/index.js index b5d0b52..6c5aff4 100644 --- a/src/views/Home/panels/FzjcLayers/index.js +++ b/src/views/Home/panels/FzjcLayers/index.js @@ -169,13 +169,7 @@ function FzjcLayers({ style }) { } const [type, setType] = useState('sh') const toggleStType = (type) => { - // if (type == 'sz') { - // dispatch.map.setLayerVisible({'ShuiZhaLayer':true}) - // dispatch.map.setLayerVisible({'BzLayer':false}) - // } else { - // dispatch.map.setLayerVisible({'ShuiZhaLayer':false}) - // dispatch.map.setLayerVisible({'BzLayer':true}) - // } + dispatch.runtime.setYuananType(type) setType(type) } diff --git a/src/views/Home/panels/Glzd/index.js b/src/views/Home/panels/Glzd/index.js index ac97594..f015a03 100644 --- a/src/views/Home/panels/Glzd/index.js +++ b/src/views/Home/panels/Glzd/index.js @@ -892,35 +892,36 @@ function DrpReal({ style }) { const [showDrp, setShowdDrp] = useState(0) const [showHd, setShowdHd] = useState(0) - useEffect(() => { - const map = window.__mapref; - if (map) { - if (tab === '1' && drpData && showDrp) { - setLayer(drpData, 'drp') - } - if (tab === '2' && hdData && showHd) { - setLayer(hdData, 'hd') - } - if (tab === '3' && data3) { - setLayer(data3, 'll') - } - if (tab === '4' && data4) { - setLayer(data4, 'tx') - } - if (tab === '5' && data5) { - setLayer(data5, 'sk') - } - } else { - const dsq = setInterval(() => { - const map = window.__mapref; - if (map && drpData.length > 0) { - clearInterval(dsq) - setLayer(drpData, 'drp') - } - }, 500); - } + // useEffect(() => { + // const map = window.__mapref; + // if (map) { + // debugger + // if (tab === '1' && drpData) { + // setLayer(drpData, 'drp') + // } + // if (tab === '2' && hdData ) { + // setLayer(hdData, 'hd') + // } + // if (tab === '3' && data3) { + // setLayer(data3, 'll') + // } + // if (tab === '4' && data4) { + // setLayer(data4, 'tx') + // } + // if (tab === '5' && data5) { + // setLayer(data5, 'sk') + // } + // } else { + // const dsq = setInterval(() => { + // const map = window.__mapref; + // if (map && drpData.length > 0) { + // clearInterval(dsq) + // setLayer(drpData, 'drp') + // } + // }, 500); + // } - }, [drpData, hdData, skObj, tab, showDrp, showHd]) + // }, [drpData, hdData, skObj, showDrp, showHd]) @@ -991,6 +992,7 @@ function DrpReal({ style }) { 'features': [], }, }, + 'paint': { 'circle-color': [ 'case', @@ -1064,6 +1066,29 @@ function DrpReal({ style }) { 10, 10, 14, 16, ], + 'text-max-width': 30, + 'text-font': ['Roboto Black'], + 'text-field': [ + 'step', + ['zoom'], + [ + 'case', + ['!=', ['get', 'state'], 1], '', + ['concat', ['get', 'rz'], 'm'] + ], + 12, [ + 'case', + ['!=', ['get', 'state'], 1], ['get', 'stnm'], + [ + 'format', + ['get', 'stnm'], { 'font-scale': 0.8, 'text-color': '#fff' }, + '\n', {}, + ['concat', ['get', 'rz'], 'm'], {} + ] + ], + ], + 'text-anchor': 'top', + 'text-offset': [0, 1], }, 'paint': { 'text-color': [ @@ -1079,6 +1104,7 @@ function DrpReal({ style }) { }, 'visibility': 'visible', }); + } if (type === 'll') { map.addLayer({ @@ -1223,7 +1249,15 @@ function DrpReal({ style }) { setShowdDrp(0) }, [tab]) - + const removePoint = () => { + dispatch?.runtime.setFeaturePop({}) + const map = window.__mapref; + const layer = map.getLayer('关联站点') + // if (layer) { + // map.removeLayer('关联站点'); + // map.removeSource('关联站点'); + // } + } return ( { const { lgtd, lttd } = row; + removePoint() if (row.stnm == '浮桥河') { - setShowdDrp(1) + setShowdDrp(showDrp == 1 ? 0 : 1) + setLayer([row],'drp') if (lgtd && lttd) { dispatch.runtime.setFeaturePop({ type: 'RealDrpPop', properties: row, coordinates: [row.lgtd, row.lttd] }); dispatch.runtime.setCameraTarget({ @@ -1313,7 +1349,8 @@ function DrpReal({ style }) {
{ const { lgtd, lttd } = row; if (row.stnm == '浮桥河') { - setShowdHd(1) + setShowdHd(showHd == 1 ? 0: 1) + setLayer([row],'hd') if (lgtd && lttd) { dispatch.runtime.setFeaturePop({ type: 'RealHDPop', properties: row, coordinates: [row.lgtd, row.lttd] }); dispatch.runtime.setCameraTarget({ diff --git a/src/views/Home/panels/HDReal/index.js b/src/views/Home/panels/HDReal/index.js index 75ec094..35e2d55 100644 --- a/src/views/Home/panels/HDReal/index.js +++ b/src/views/Home/panels/HDReal/index.js @@ -70,16 +70,16 @@ function HDReal({ style }) { const toggleAutoRefresh = () => { dispatch.realview.setHdAutoRefresh(!hdAutoRefresh); } - const setLayer = (data = [], type) => { - const map = window.__mapref; - const layer = map.getLayer('关联站点') - if (layer) { - map.removeLayer('关联站点'); - map.removeSource('关联站点'); - } - if (data.length === 0) { return } - if (type === 'hd') { - map.addLayer({ + const setLayer = (data = [], type) => { + const map = window.__mapref; + const layer = map.getLayer('关联站点') + if (layer) { + map.removeLayer('关联站点'); + map.removeSource('关联站点'); + } + if (data.length === 0) { return } + if (type === 'hd') { + map.addLayer({ 'id': '关联站点',//+new Date().getTime(), 'type': 'symbol', 'source': { @@ -103,6 +103,29 @@ function HDReal({ style }) { 10, 10, 14, 16, ], + 'text-max-width': 30, + 'text-font': ['Roboto Black'], + 'text-field': [ + 'step', + ['zoom'], + [ + 'case', + ['!=', ['get', 'state'], 1], '', + ['concat', ['get', 'rz'], 'm'] + ], + 12, [ + 'case', + ['!=', ['get', 'state'], 1], ['get', 'stnm'], + [ + 'format', + ['get', 'stnm'], { 'font-scale': 0.8, 'text-color': '#fff' }, + '\n', {}, + ['concat', ['get', 'rz'], 'm'], {} + ] + ], + ], + 'text-anchor': 'top', + 'text-offset': [0, 1], }, 'paint': { 'text-color': [ @@ -118,11 +141,11 @@ function HDReal({ style }) { }, 'visibility': 'visible', }); - } - - map.getSource('关联站点').setData(parseGeoJSON(data)) } + map.getSource('关联站点').setData(parseGeoJSON(data)) + } + return ( {showData.map((row) => ( - { flyTo(row); setLayer([row],'hd')}}> + { flyTo(row); setLayer([row], 'hd') }}>
{row.stnm}
- {renderHDRz(row)}{row.stnm == '浮桥河'? '↑':""} - {rzRender(row.rz, row.rz+5.5)} - {rzRender(row.rz, row.rz+4)} + {renderHDRz(row)}{row.stnm == '浮桥河' ? '↑' : ""} + {rzRender(row.rz, row.rz + 5.5)} + {rzRender(row.rz, row.rz + 4)}
))}
diff --git a/src/views/Home/panels/RainSta/index.js b/src/views/Home/panels/RainSta/index.js index 823df80..ff048a2 100644 --- a/src/views/Home/panels/RainSta/index.js +++ b/src/views/Home/panels/RainSta/index.js @@ -248,8 +248,8 @@ export default function Overall({ style }) { station.id == 'storm' && drpData.map(item => ( flyTo(item)}> {item.stnm} - {item.today} - {timeRange == '1h' ? '福田河镇':'福田河'} + {item.today} + {timeRange == '1h' ? '福田河镇':'长江流域'} )) } diff --git a/src/views/Home/panels/Shksh/index.js b/src/views/Home/panels/Shksh/index.js index 2e2f4cc..9377906 100644 --- a/src/views/Home/panels/Shksh/index.js +++ b/src/views/Home/panels/Shksh/index.js @@ -199,7 +199,7 @@ const useStyles = makeStyles({ return (
diff --git a/src/views/Home/panels/SigelYuanan/index.js b/src/views/Home/panels/SigelYuanan/index.js new file mode 100644 index 0000000..41e9a76 --- /dev/null +++ b/src/views/Home/panels/SigelYuanan/index.js @@ -0,0 +1,48 @@ +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 { DrpRealPromise } from '../../../../models/_/real'; +import useRefresh from '../../../../utils/useRefresh'; +import clsx from 'clsx'; +import { renderDrp } from '../../../../utils/renutils'; +import { TableSortLabel } from '@material-ui/core'; +import { InfoPopNames } from '../../InfoPops'; +// import AreaDrpChart from './chart'; +import config from '../../../../config'; +import TablePage from './table.js' + +function DrpReal({ style }) { + const dispatch = useDispatch(); + const [ tab, setTab ] = useState('1') + const [ tab2, setTab2 ] = useState('1') + + + + const flyTo = (row) => { + dispatch?.runtime.setInfoDlg({ layerId: 'PdfLayer', properties: row }) + } + + + return ( + +
flyTo({planName:'潭家河村山洪灾害防御预案'})}> + 潭家河村山洪灾害防御预案 +
+
+ ) +} + +export default DrpReal; diff --git a/src/views/Home/panels/SigelYuanan/table.js b/src/views/Home/panels/SigelYuanan/table.js new file mode 100644 index 0000000..0b938d9 --- /dev/null +++ b/src/views/Home/panels/SigelYuanan/table.js @@ -0,0 +1,91 @@ +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 appconsts from '../../../../models/appconsts'; +import { renderDrp, renderSkArz, renderSkRz } from '../../../../utils/renutils'; + + +const data = [ + { name:'雨量站', name2:'10', name3:'8', name4:'2', name5:'80' }, + { name:'水位站', name2:'15', name3:'15', name4:'0', name5:'100' }, + { name:'图像站', name2:'10', name3:'10', name4:'0', name5:'100' }, + { name:'合计', name2:'35', name3:'33', name4:'2', name5:'94.29' }, +] + +const data2 = [ + { name:'合计', name2:'64', name3:'64', name4:'0', name5:'100' }, +] + +const data3 = [ + { name:'合计', name2:'12', name3:'12', name4:'0', name5:'100' }, +] + +function Page({ tab }) { + + return ( + + + + + + 总数 + 在线数量 + 离线数量 + 到报率(%) + + + + { + tab==='1'?data.map((row) => ( + + +
{}}>{row.name}
+
+ {row.name2} + {row.name3} + {row.name4} + {row.name5} +
+ )):null + } + { + tab==='2'?data2.map((row) => ( + + +
{}}>{row.name}
+
+ {row.name2} + {row.name3} + {row.name4} + {row.name5} +
+ )):null + } + { + tab==='3'?data3.map((row) => ( + + +
{}}>{row.name}
+
+ {row.name2} + {row.name3} + {row.name4} + {row.name5} +
+ )):null + } +
+
+
+ ) +} + +export default React.memo(Page);