import React, { useMemo, useState } from 'react'; import useRequest from '../../../../utils/useRequest'; import PanelBox from '../../components/PanelBox'; import HighlightOff from '@material-ui/icons/HighlightOff'; import { makeStyles } from '@material-ui/core/styles'; import Modal from '@material-ui/core/Modal'; import Backdrop from '@material-ui/core/Backdrop'; import Fade from '@material-ui/core/Fade'; 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 { SkRealPromise } from '../../../../models/_/real'; import Setting from './Setting'; import appconsts from '../../../../models/appconsts'; import { renderDrp, renderSkArz, renderSkRz } from '../../../../utils/renutils'; import { InfoPopNames } from '../../InfoPops'; import config from '../../../../config'; import SkPicReal from '../../../Mgr/xqjs/SkPicReal'; const useStyles = makeStyles((theme) => ({ modal: { display: 'flex', alignItems: 'center', justifyContent: 'center', width: "80%", marginLeft: "10%", }, paper: { backgroundColor: theme.palette.background.paper, border: '1px solid rgba(41, 182, 246, 0.4)', boxShadow: theme.shadows[5], padding: theme.spacing(2, 4, 3), width: "100%", }, })); function SkReal({ style }) { const dispatch = useDispatch(); const skAutoRefresh = useSelector(s => s.realview.skAutoRefresh); const t = useRefresh(skAutoRefresh ? 60 * 1000 : 0); let { data } = useRequest(SkRealPromise.get, t); const sortedData = useMemo(() => (data || []).sort((a, b) => (b.aRz - a.aRz), [data])); const [setting, showSetting] = useState(false); const tableSkDrpField = useSelector(s => s.realview.tableSkDrpField); data = data || []; const flyTo = (record) => { const { lgtd, lttd } = record; if (lgtd && lttd) { dispatch.runtime.setFeaturePop({ type: InfoPopNames.RealSkPop, properties: record, coordinates: [lgtd, lttd] }); dispatch.runtime.setCameraTarget({ center: [lgtd, lttd + config.poiPositionOffsetY.sk], zoom: config.poiPositionZoom.sk, pitch: config.poiPitch, bearing: 0, }); } } const toggleAutoRefresh = () => { dispatch.realview.setSkAutoRefresh(!skAutoRefresh); } const classes = useStyles(); const [open, setOpen] = React.useState(false); const handleOpen = () => { setOpen(true); }; const handleClose = () => { setOpen(false); }; return ( showSetting(true)}> } > 名称 {appconsts.drpTtype[tableSkDrpField]}降雨 水位 超汛限 {sortedData.map((row) => (
flyTo(row)}>{row.stnm}
{renderDrp(row, tableSkDrpField)} {renderSkRz(row)} {renderSkArz(row)}
))}
{ setting && showSetting(false)} /> } {/*水库图片弹窗*/}
) } export default React.memo(SkReal);