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