antd通过 filterDropdown 自定义按某天时间搜索功能

 更新时间:2019年08月12日 16:33:16   作者:别样青春  
这篇文章主要介绍了antd通过 filterDropdown 自定义按某天时间搜索功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

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 自定义按某天时间搜索功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • 初探 SOA(补充)

    初探 SOA(补充)

    SOA是一种应用框架,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服务。它使用户可以构建、部署和整合这些服务,且无需依赖应用程序及其运行计算平台,从而提高业务流程的灵活性。
    2009-01-01
  • Git中tag标签的使用教程

    Git中tag标签的使用教程

    这篇文章介绍了Git中tag标签的使用教程,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 基于Token的身份验证之JWT基础教程

    基于Token的身份验证之JWT基础教程

    JWT(json web token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。下面这篇文章主要给大家介绍了关于基于Token的身份验证之JWT的基础相关资料,文中通过示例代码的非常详细,需要的朋友可以参考下
    2018-09-09
  • iisschlp.wsc [88,25] 属性值无效 : progid

    iisschlp.wsc [88,25] 属性值无效 : progid

    今天在运行iisapp.vbs时候提示Windows Script Component - file://C:WINDOWSsystem32iisschlp.wsc [88,25] 属性值无效 : progid,原来是因为安全设置惹的祸,以前就是因为这个一直没解决
    2014-07-07
  • Prometheus的安装和配置教程详解

    Prometheus的安装和配置教程详解

    这篇文章主要介绍了Prometheus的安装和配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • url请求头信息全面解读

    url请求头信息全面解读

    这篇文章主要为大家介绍了url请求头信息全面解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 初探 SOA

    初探 SOA

    SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。
    2009-01-01
  • TypeScript类型检查详谈及火爆原因

    TypeScript类型检查详谈及火爆原因

    这篇文章主要为大家介绍了TypeScript类型检查以及火爆原因,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 使用百度云加速后网站打开速度慢、广告不显示的解决方法

    使用百度云加速后网站打开速度慢、广告不显示的解决方法

    这篇文章主要介绍了使用百度云加速后网站打开速度慢、广告不显示的解决方法,需要的朋友可以参考下
    2015-09-09
  • 一文弄懂字符集编码

    一文弄懂字符集编码

    软件开发人员经常遇到中文乱码、软件不能显示中文等类似问题,本文主要介绍了一文弄懂字符集编码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论