tsg-web/src/views/Home/fhxs/jyxx.js

102 lines
4.2 KiB
JavaScript
Raw Normal View History

2024-09-20 15:02:50 +08:00
import React, {useEffect, useMemo, useState} from 'react';
import {Form, Input, DatePicker, Popover, Button, message, Table} from 'antd';
import {useDispatch, useSelector} from "react-redux";
import moment from 'moment';
import SetDrpStation from '../setMapStation/drp.js'
const { RangePicker } = DatePicker
const cysd = [
{ label:'昨天08:00~当前时间',tms:[moment().add(-1,'days').format('YYYY-MM-DD 08:00:00'),moment().format('YYYY-MM-DD HH:mm:ss')]},
{ label:'今天08:00~当前时间',tms:[moment().format('YYYY-MM-DD 08:00:00'),moment().format('YYYY-MM-DD HH:mm:ss')]},
{ label:'昨天08:00~今天08:00',tms:[moment().add(-1,'days').format('YYYY-MM-DD 08:00:00'),moment().format('YYYY-MM-DD 08:00:00')]},
{ label:'最近1小时',tms:[moment().add(-1,'hours').format('YYYY-MM-DD HH:mm:ss'),moment().format('YYYY-MM-DD HH:mm:ss')]},
{ label:'最近3小时',tms:[moment().add(-3,'hours').format('YYYY-MM-DD HH:mm:ss'),moment().format('YYYY-MM-DD HH:mm:ss')]},
{ label:'最近6小时',tms:[moment().add(-6,'hours').format('YYYY-MM-DD HH:mm:ss'),moment().format('YYYY-MM-DD HH:mm:ss')]},
{ label:'最近12小时',tms:[moment().add(-12,'hours').format('YYYY-MM-DD HH:mm:ss'),moment().format('YYYY-MM-DD HH:mm:ss')]},
{ label:'最近24小时',tms:[moment().add(-24,'hours').format('YYYY-MM-DD HH:mm:ss'),moment().format('YYYY-MM-DD HH:mm:ss')]},
]
const Page = ({showPanels,setTms2}) => {
const dispatch = useDispatch();
const [tms, setTms] = useState([moment(moment().add(-1,'days').format('YYYY-MM-DD 08:00')),moment(moment().format('YYYY-MM-DD 08:00'))])
const tmsStr = useMemo(()=>[moment(tms[0]).format('YYYY-MM-DD HH:mm:ss'),moment(tms[1]).format('YYYY-MM-DD HH:mm:ss')],[tms])
const [ tableData, setTableData ] = useState([])
const [open, setOpen] = useState(false)
const columns = [
{ title: '站名', key: 'stnm', dataIndex: 'stnm',align: "center", ellipsis: true },
2025-04-08 15:39:22 +08:00
{ title: '时段雨量mm', key: 'drp', dataIndex: 'drp',align: "center", render:(v)=>v===null?'-':v },
2024-09-20 15:02:50 +08:00
];
const getData = (label,tms)=>{
if(label==='今天08:00~当前时间'&& moment().format('HH')<8){
return message.error('请在08:00后选择')
}
setTms([moment(tms[0]),moment(tms[1])])
}
useEffect(()=>{
setTms2(tms)
},[tms])
return (
<div className='fxdd_fhxs_jyxx'>
<Form
className='toolbarBox'
>
<Form.Item label='时段选择' name='tm' style={{ margin: '0 0 8px 5px' }}>
<RangePicker
showTime
allowClear={false}
style={{ width: '340px' }}
onChange={(v)=>setTms(v)}
value={tms}
format='YYYY-MM-DD HH:mm'
/>
<Popover content={
cysd.map((item)=>
<div style={{padding:'5px',cursor:'pointer'}} onClick={()=>{
getData(item.label,item.tms)
setOpen(false)
}}>
{item.label}
</div>
)
} placement="bottom" trigger="focus" open={open}>
<img onClick={()=>setOpen(!open)} width={25} src={`${process.env.PUBLIC_URL}/assets/xyt/fxdd/changyong.png`} alt="" style={{marginLeft:'10px',cursor:'pointer'}}/>
</Popover>
</Form.Item>
</Form>
<div className="ant-card-body" style={{padding:"10px"}}>
<Table rowKey="adcd"
sticky
columns={columns}
pagination={false}
dataSource={tableData}
scroll={{ y: "300px"}}
onRow={
(data)=>({
onClick:()=>{
// dispatch.map.setLayerVisible({"HdswLayer":true});
dispatch.runtime.setFeaturePop({
id: data.stcd,
data:{...data,myParams:tms},
type: 'drp',
lgtd: data.lgtd,
lttd: data.lttd,
})
}
})
}
/>
</div>
<SetDrpStation tms={tmsStr} setTableData={setTableData}/>
</div>
);
}
export default Page;