1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
import React, { Component } from 'react' ;
import { Table, Input, Button, Icon, DatePicker } from 'antd' ;
import moment from 'moment' ;
import Highlighter from 'react-highlight-words' ;
export default class RpoliceRecord extends Component {
constructor(props) {
super (props);
this .state = {
searchText: '' ,
}
}
render() {
// 添加搜索
this .getColumnSearchProps = (dataIndex, title) => ({
filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (
<div style={{ padding: 8 }}>
<Input
ref={node => {
this .searchInput = node;
}}
placeholder={`搜索 ${title}`}
value={selectedKeys[0]}
onChange={e => setSelectedKeys(e.target.value ? [e.target.value] : [])}
onPressEnter={() => this .handleSearch(selectedKeys, confirm)}
style={{ width: 188, marginBottom: 8, display: 'block' }}
/>
<Button
type= "primary"
onClick={() => this .handleSearch(selectedKeys, confirm)}
icon= "search"
size= "small"
style={{ width: 90, marginRight: 8 }}>
搜索
</Button>
<Button onClick={() => this .handleReset(clearFilters)} size= "small" style={{ width: 90 }}>重置</Button>
</div>
),
filterIcon: filtered => (
<Icon type= "search" style={{ color: filtered ? '#1890ff' : undefined }} />
),
onFilter: (value, record) =>
record[dataIndex]
.toString()
.toLowerCase()
.includes(value.toLowerCase()),
onFilterDropdownVisibleChange: visible => {
if (visible) {
setTimeout(() => this .searchInput.select());
}
},
render: text => (
<Highlighter
highlightStyle={{ backgroundColor: '#ffc069' , padding: 0 }}
searchWords={[ this .state.searchText]}
autoEscape
textToHighlight={text.toString()}
/>
),
});
//搜索
this .handleSearch = (selectedKeys, confirm) => {
confirm();
console.log(selectedKeys,confirm);
this .setState({ searchText: selectedKeys[0] });
};
this .handleSearchtime = (selectedKeys, confirm) => {
confirm();
this .setState({ searchText: selectedKeys });
};
//重置
this .handleReset = clearFilters => {
clearFilters();
this .setState({ searchText: '' });
};
const columns = [
{ title: '报警时间' , dataIndex: 'time' , key: 'time' ,
filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (
<div style={{ padding: 8 }}>
<DatePicker placeholder={`搜索时间`}
value={selectedKeys[0]}
onChange={dateString => setSelectedKeys(dateString ? [dateString] : [])}
onPressEnter={() => this .handleSearch(selectedKeys, confirm)}
style={{ width: 188, marginBottom: 8, display: 'block' }}/>
<Button
type= "primary"
onClick={() => this .handleSearchtime(moment(selectedKeys[0]._d).format( 'YYYY-MM-DD' ), confirm)}
icon= "search"
size= "small"
style={{ width: 90, marginRight: 8 }}>
搜索
</Button>
<Button onClick={() => this .handleReset(clearFilters)} size= "small" style={{ width: 90 }}>重置</Button>
</div>
),
filterIcon: filtered => (
<Icon type= "search" style={{ color: filtered ? '#1890ff' : undefined }} />
),
onFilter: (value, record) => {
return record.time.indexOf(moment(value).format( 'YYYY-MM-DD' )) != -1},
render: text => (
<Highlighter
highlightStyle={{ backgroundColor: '#ffc069' , padding: 0 }}
searchWords={[ this .state.searchText]}
autoEscape
textToHighlight={text.toString()}
/>
),
},
{ title: '来电' , key: 'callnum' , dataIndex: 'callnum' , ... this .getColumnSearchProps( 'callnum' , '来电' ), },
{ title: '时长' , key: 'longtime' , dataIndex: 'longtime' , }
];
const data = [
{ key: '1' , time: '2019-07-30 16:31:05' , callnum: '13546540218' , longtime: '37秒' },
{ key: '2' , time: '2019-06-24 22:08:05' , callnum: '13546540218' , longtime: '1分12秒' },
{ key: '3' , time: '2017-08-15 12:31:05' , callnum: '13546540218' , longtime: '1分10秒' },
{ key: '4' , time: '2016-12-30 06:15:00' , callnum: '13546540218' , longtime: '20秒' }
];
return (
<Table className= "accidentTable" columns={columns} dataSource={data} bordered size= "small" />
)
}
}
|
总结
以上所述是小编给大家介绍的antd通过 filterDropdown 自定义按某天时间搜索功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
原文链接:https://www.cnblogs.com/takenotes-MUZI/p/11337926.html