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/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/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/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 805469d..f015a03 100644 --- a/src/views/Home/panels/Glzd/index.js +++ b/src/views/Home/panels/Glzd/index.js @@ -992,6 +992,7 @@ function DrpReal({ style }) { 'features': [], }, }, + 'paint': { 'circle-color': [ 'case', @@ -1065,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': [ @@ -1080,6 +1104,7 @@ function DrpReal({ style }) { }, 'visibility': 'visible', }); + } if (type === 'll') { map.addLayer({ 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/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);