import React, { useState } from 'react'; import { Space, Table, Input } from 'antd'; import type { ColumnsType } from 'antd/es/table'; interface DataType { key: string; userName: string; regTime: number; loginStatus: string; level: string; phone?: number; emails?: string; } const UserList: React.FC = () => { const alldata: DataType[] = [ { key: '1', userName: 'xg', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '2', userName: 'John Brown', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '3', userName: 'darlin', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '4', userName: 'zulier', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '1', userName: 'xg', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '2', userName: 'John Brown', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '3', userName: 'darlin', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '4', userName: 'zulier', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '1', userName: 'xg', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '2', userName: 'John Brown', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '3', userName: 'darlin', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '4', userName: 'zulier', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '1', userName: 'xg', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '2', userName: 'John Brown', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '3', userName: 'darlin', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, { key: '4', userName: 'zulier', regTime: Date.now(), loginStatus: '离线', level: '普通用户' }, ]; alldata.forEach((item, index) => { item.key = index + 1 + '' }) let [data, setData] = useState(alldata) const double = (fn: Function, time: number = 500) => { let timer: any = null return function(this: any, ...reset: any){ if(timer != null) { clearTimeout(timer) } timer = setTimeout(() => { console.log(5555) fn.apply(this, arguments) timer = null }, time) } } const test = double(function() { console.log(arguments) let name = arguments[0] let val = arguments[1] let newData = alldata.filter((item: DataType) => { return JSON.stringify(item[name]).includes(val) }) setData(newData) }, 1000) const columns: ColumnsType = [ { title: () => { return ( <>
用户名
{ test(e.target.name, e.target.value) }} /> ) }, dataIndex: 'userName', key: 'userName', render: (text) => {text} }, { title: () => { return ( <>
注册时间
{ test(e.target.name, e.target.value) }} /> ) }, dataIndex: 'regTime', key: 'regTime', }, { title: () => { return ( <>
在线状态
) }, dataIndex: 'loginStatus', key: 'loginStatus', }, { title: () => { return ( <>
绑定手机号
{ test(e.target.name, e.target.value) }} /> ) }, dataIndex: 'phone', key: 'phone', render: (text) => { return ( 135****8427 ) } }, { title: () => { return ( <>
邮箱
{ test(e.target.name, e.target.value) }} /> ) }, dataIndex: 'emails', key: 'emails', render: (text) => { return ( 847****@qq.com ) } }, { title: () => { return ( <>
用户等级
{ test(e.target.name, e.target.value) }} /> ) }, dataIndex: 'level', key: 'level', } ]; return ( ) } export default UserList;