| | |
| | | import React from 'react'; |
| | | import { Input, Button, Space, Select, DatePicker } from 'antd'; |
| | | import Http from '@/utils/http'; |
| | | import moment from 'moment'; |
| | | |
| | | const NONE_OPTION = -9999; |
| | | const DATE_FORMAT = 'YYYY-MM-DD HH:mm:ss'; |
| | | |
| | | const TextFilter = (props) => { |
| | | return ( |
| | |
| | | onChange={changeDates => { |
| | | setDates(changeDates); |
| | | if (changeDates && changeDates[0] && changeDates[1]) { |
| | | const changeStartStr = changeDates[0]?.toISOString() |
| | | const changeStartStr = moment(changeDates[0]).format(DATE_FORMAT); |
| | | setStartDate(changeStartStr); |
| | | const changeEndStr = changeDates[1]?.toISOString() |
| | | const changeEndStr = moment(changeDates[1]).format(DATE_FORMAT); |
| | | setEndDate(changeEndStr); |
| | | props.setSelectedKeys([changeStartStr + '-' + changeEndStr]); |
| | | } |
| | |
| | | const [options, setOptions] = React.useState([]); |
| | | |
| | | const fetchData = async (value) => { |
| | | const resp = await Http.doPostForm(`api/${props.name}/query`, { condition: value }); |
| | | return resp.data; |
| | | return await Http.doPostForm(`api/${props.name}/query`, { condition: value }); |
| | | } |
| | | |
| | | async function initOptions(value) { |
| | | const { data } = await fetchData(value); |
| | | setOptions(data); |
| | | } |
| | | |
| | | React.useEffect(() => { |
| | | async function init() { |
| | | const data = await fetchData(); |
| | | setOptions(data); |
| | | } |
| | | init() |
| | | initOptions() |
| | | }, []); |
| | | |
| | | const handleSearch = async (value) => { |
| | | console.log(value); |
| | | const data = await fetchData(value); |
| | | console.log(data); |
| | | setOptions(data); |
| | | |
| | | setOptions([ |
| | | { |
| | | label: '12', |
| | | value: 'sadsa' |
| | | } |
| | | ]); |
| | | const handleSearch = (value) => { |
| | | initOptions(value) |
| | | } |
| | | |
| | | return ( |
| | |
| | | props.setSelectedKeys(value !== undefined && value !== null ? [value] : []); |
| | | }} |
| | | onSearch={handleSearch} |
| | | options={options.map(item => ({ value: item.value, label: item.label }))} |
| | | filterOption={false} |
| | | showSearch={true} |
| | | > |
| | | {options.map(item => ( |
| | | <Select.Option key={item.value} value={item.value}> |
| | | {item.label} |
| | | </Select.Option> |
| | | ))} |
| | | </Select> |
| | | </div> |
| | | <Space> |
| | |
| | | setCurrentOption(NONE_OPTION) |
| | | props.setSelectedKeys([]); |
| | | props.clearFilters(); |
| | | initOptions() |
| | | }} |
| | | size="small" |
| | | style={{ width: 90 }} |