| | |
| | | import React from 'react'; |
| | | import { Input, Button, Space, Select } from 'antd'; |
| | | import { Input, Button, Space, Select, DatePicker } from 'antd'; |
| | | import moment from 'moment'; |
| | | |
| | | const NONE_OPTION = -9999; |
| | | |
| | |
| | | ); |
| | | } |
| | | |
| | | export { TextFilter, SelectFilter }; |
| | | const DatetimeRangeFilter = (props) => { |
| | | const [startDate, setStartDate] = React.useState(null); |
| | | const [endDate, setEndDate] = React.useState(null); |
| | | |
| | | return ( |
| | | <div style={{ padding: 8 }}> |
| | | <div> |
| | | <Space direction="vertical" size={12}> |
| | | <DatePicker.RangePicker |
| | | showTime |
| | | onChange={dates => { |
| | | setStartDate(dates[0]?.toISOString()); |
| | | setEndDate(dates[1]?.toISOString()); |
| | | }} |
| | | /> |
| | | <Space> |
| | | <Button |
| | | type="primary" |
| | | onClick={() => { |
| | | console.log(startDate, endDate); |
| | | props.confirm(); |
| | | props.setSearchParam(prevState => ({ |
| | | ...prevState, |
| | | [props.name]: [startDate, endDate] |
| | | })); |
| | | props.actionRef.current?.reload(); |
| | | }} |
| | | size="small" |
| | | > |
| | | 确定 |
| | | </Button> |
| | | <Button |
| | | onClick={() => { |
| | | setStartDate(null); |
| | | setEndDate(null); |
| | | props.setSelectedKeys([]); |
| | | props.setSearchParam(prevState => { |
| | | const nextState = { ...prevState }; |
| | | delete nextState[props.name]; |
| | | return nextState; |
| | | }); |
| | | props.clearFilters(); |
| | | }} |
| | | size="small" |
| | | > |
| | | 重置 |
| | | </Button> |
| | | </Space> |
| | | </Space> |
| | | </div> |
| | | </div> |
| | | ); |
| | | } |
| | | |
| | | |
| | | export { TextFilter, SelectFilter, DatetimeRangeFilter }; |