index.jsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import React, { useCallback, useState } from 'react';
  2. import { Table, Switch, Typography, Tooltip, Tag } from '../../../index';
  3. import { getData } from '../../../_test_/utils';
  4. const { Title } = Typography;
  5. export default function App(props) {
  6. const [bordered, setBorder] = useState(false);
  7. const columns = [
  8. {
  9. title: 'Name',
  10. dataIndex: 'name',
  11. width: 150,
  12. fixed: true,
  13. filters: [
  14. {
  15. text: 'King 3',
  16. value: 'King 3',
  17. },
  18. {
  19. text: 'King 4',
  20. value: 'King 4',
  21. },
  22. ],
  23. onFilter: (value, record) => record.name.includes(value),
  24. },
  25. {
  26. title: 'Age',
  27. dataIndex: 'age',
  28. width: 150,
  29. sorter: (a, b) => (a.age - b.age > 0 ? 1 : -1),
  30. },
  31. {
  32. title: 'Address',
  33. width: 200,
  34. dataIndex: 'address',
  35. },
  36. {
  37. title: 'Description',
  38. // width: 400,
  39. dataIndex: 'description',
  40. },
  41. {
  42. fixed: 'right',
  43. width: 250,
  44. render: (text, record) => (
  45. <Tooltip content={record.description}>
  46. <Tag color="green">Show Info</Tag>
  47. </Tooltip>
  48. ),
  49. },
  50. ];
  51. const data = getData(12);
  52. const scroll = { y: 300, x: '120%' };
  53. const handleChange = useCallback(checked => {
  54. setBorder(checked);
  55. }, []);
  56. return (
  57. <>
  58. <div style={{ display: 'flex', alignItems: 'center' }}>
  59. <Title heading={6} style={{ margin: 8 }}>
  60. {bordered ? '已显示border' : '已隐藏border'}
  61. </Title>
  62. <Switch onChange={handleChange}>border</Switch>
  63. </div>
  64. <Table bordered={bordered} columns={columns} dataSource={data} scroll={scroll} />
  65. </>
  66. );
  67. }