tsg-web/src/views/rcgl/szzb/toolbar.js

143 lines
3.8 KiB
JavaScript

import React, { useEffect,useState } from 'react';
import { Form, Input, Button, DatePicker,Segmented } from 'antd';
import { AppstoreOutlined, BarsOutlined } from '@ant-design/icons'
import NormalSelect from '../../../components/Form/NormalSelect';
import moment from 'moment';
const { RangePicker } = DatePicker;
const ToolBar = ({ setSearchVal, onChecked, exportFile, role }) => {
const exportBtn = role?.rule?.find(item => item.menuName == "导出");
const searchBtn = role?.rule?.find(item => item.menuName == "查询");
const [checked, setChecked] = useState("数据表")
const optionsType = [
{
label: "今日",
value:1
},
{
label: "近一周",
value:2
},
{
label:"近一月",
value:3
},
{
label:"近三月",
value:4
},
{
label:"近一年",
value:5
},
]
const options = [
{
label: "数据表",
value: "数据表",
icon:<BarsOutlined />,
},
{
label: "数据图",
value: "数据图",
icon:<BarsOutlined />,
},
]
const [form] = Form.useForm();
const onValuesChange = (e) => {
switch (e.ranger) {
case 1:
form.setFieldValue("tm",[moment().startOf("day"),moment()])
break;
case 2:
form.setFieldValue("tm",[moment().subtract(7, 'days'),moment()])
break;
case 3:
form.setFieldValue("tm",[moment().subtract(1, 'months'),moment()])
break;
case 4:
form.setFieldValue("tm",[moment().subtract(3, 'months'),moment()])
break;
case 5:
form.setFieldValue("tm",[moment().subtract(1, 'years'),moment()])
break;
default:
break;
}
}
const onFinish = (values) => {
let dateSo;
if (values.tm) {
dateSo = {
start: moment(values.tm[0]).format('YYYY-MM-DD HH:mm:ss'),
end: moment(values.tm[1]).format('YYYY-MM-DD HH:mm:ss')
}
}
delete values.tm
setSearchVal({...values, startTime:dateSo?.start,endTime:dateSo?.end});
}
useEffect(() => {
let time = [moment().subtract(1,"years"),moment()]
let dateSo = {
start:moment(time[0]).format('YYYY-MM-DD 00:00:00'),
end:moment(time[1]).format('YYYY-MM-DD 23:59:59'),
}
form.setFieldValue("tm",time)
setSearchVal({startTime:dateSo.start, endTime:dateSo.end})
}, [])
return (
<>
<div style={{display:'flex',justifyContent:'space-between'}}>
<Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish} onValuesChange={onValuesChange}>
<Form.Item label="采集时间" name="tm">
<RangePicker
allowClear
style={{ width: "350px" }}
format="YYYY-MM-DD HH:mm:ss"
/>
</Form.Item>
<Form.Item label="常用时段" name="ranger">
<NormalSelect
allowClear
style={{ width: "150px" }}
options={optionsType}
/>
</Form.Item>
{searchBtn ? <Form.Item>
<Button type="primary" htmlType="submit">查询</Button>
</Form.Item> : null}
<Form.Item>
<Button onClick={() => form.resetFields()}>重置</Button>
</Form.Item>
{
exportBtn ?
<Form.Item>
<Button onClick={()=>exportFile()}>导出</Button>
</Form.Item>
:null
}
<Form.Item
wrapperCol={{span:14,offset:10}}
>
<Segmented
options={options}
onChange={(e) => {
setChecked(e);
onChecked(e)
}}
value={checked}
/>
</Form.Item>
</Form>
</div>
</>
);
}
export default ToolBar;