index.jsx 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import React, { useMemo } from 'react';
  2. import { Table } from '../../../index';
  3. export default function Demo() {
  4. const data = useMemo(() => {
  5. const data = [];
  6. for (let i = 0; i < 100; i++) {
  7. let age = (i * 1000) % 149 ;
  8. let name = `Edward King ${i}`;
  9. data.push({
  10. key: '' + i,
  11. company: {
  12. name: 'ByteDance',
  13. address: 'No. 48, Zhichun Road',
  14. },
  15. name,
  16. age,
  17. address: `No ${i + 1}, Zhongguancun Street`,
  18. description: `My name is ${name}, I am ${age} years old, living in No ${i + 1}, Zhongguancun Street`,
  19. });
  20. }
  21. return data;
  22. }, []);
  23. const columns = useMemo(
  24. () => [
  25. {
  26. title: 'Base Information',
  27. fixed: 'left',
  28. children: [
  29. {
  30. title: 'Name',
  31. dataIndex: 'name',
  32. fixed: 'left',
  33. width: 200,
  34. filters: [
  35. {
  36. text: 'Code 45',
  37. value: '45',
  38. },
  39. {
  40. text: 'King 4',
  41. value: 'King 4',
  42. },
  43. ],
  44. onFilter: (value, record) => record.name.includes(value),
  45. },
  46. {
  47. title: 'Age',
  48. dataIndex: 'age',
  49. fixed: 'left',
  50. width: 100,
  51. sorter: (a, b) => (a.age - b.age > 0 ? 1 : -1),
  52. },
  53. ],
  54. },
  55. {
  56. title: 'Company Information',
  57. children: [
  58. {
  59. title: 'Company Name',
  60. dataIndex: 'company.name',
  61. },
  62. {
  63. title: 'Company Address',
  64. dataIndex: 'company.address',
  65. },
  66. ],
  67. },
  68. {
  69. title: 'Address',
  70. width: 250,
  71. dataIndex: 'address',
  72. fixed: 'right',
  73. },
  74. ],
  75. []
  76. );
  77. return (
  78. <Table
  79. rowSelection={{ fixed: true }}
  80. expandedRowRender={record => <article>{record.description}</article>}
  81. dataSource={data}
  82. scroll={{ x: '120%', y: 400 }}
  83. onChange={(...args) => console.log(...args)}
  84. columns={columns}
  85. >
  86. {/* <Table.Column title={'Base Information'} fixed>
  87. <Table.Column
  88. title={'Name'}
  89. dataIndex={'name'}
  90. fixed
  91. width={200}
  92. filters={[
  93. {
  94. text: 'Code 45',
  95. value: '45',
  96. },
  97. {
  98. text: 'King 4',
  99. value: 'King 4',
  100. },
  101. ]}
  102. onFilter={(value, record) => record.name.includes(value)}
  103. />
  104. <Table.Column
  105. title={'Age'}
  106. dataIndex={'age'}
  107. fixed
  108. width={100}
  109. sorter={(a, b) => (a.age - b.age > 0 ? 1 : -1)}
  110. />
  111. </Table.Column>
  112. <Table.Column title={'Company Information'}>
  113. <Table.Column title={'Company Name'} dataIndex={'company.name'} />
  114. <Table.Column title={'Company Address'} dataIndex={'company.address'} />
  115. </Table.Column>
  116. <Table.Column title={'Address'} width={250} fixed={'right'} dataIndex={'address'} /> */}
  117. </Table>
  118. );
  119. }