Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { DeleteOutlined, EditOutlined } from '@ant-design/icons';
  2. import type { TableProps } from 'antd';
  3. import { Space, Table, Tooltip } from 'antd';
  4. import { BeginQuery } from '../../interface';
  5. interface IProps {
  6. data: BeginQuery[];
  7. deleteRecord(index: number): void;
  8. showModal(index: number, record: BeginQuery): void;
  9. }
  10. const QueryTable = ({ data, deleteRecord, showModal }: IProps) => {
  11. const columns: TableProps<BeginQuery>['columns'] = [
  12. {
  13. title: 'Key',
  14. dataIndex: 'key',
  15. key: 'key',
  16. ellipsis: {
  17. showTitle: false,
  18. },
  19. render: (key) => (
  20. <Tooltip placement="topLeft" title={key}>
  21. {key}
  22. </Tooltip>
  23. ),
  24. },
  25. {
  26. title: 'Name',
  27. dataIndex: 'name',
  28. key: 'name',
  29. ellipsis: {
  30. showTitle: false,
  31. },
  32. render: (name) => (
  33. <Tooltip placement="topLeft" title={name}>
  34. {name}
  35. </Tooltip>
  36. ),
  37. },
  38. {
  39. title: 'Type',
  40. dataIndex: 'type',
  41. key: 'type',
  42. },
  43. {
  44. title: 'Optional',
  45. dataIndex: 'optional',
  46. key: 'optional',
  47. render: (optional) => (optional ? 'Yes' : 'No'),
  48. },
  49. {
  50. title: 'Action',
  51. key: 'action',
  52. render: (_, record, idx) => (
  53. <Space>
  54. <EditOutlined onClick={() => showModal(idx, record)} />
  55. <DeleteOutlined
  56. className="cursor-pointer"
  57. onClick={() => deleteRecord(idx)}
  58. />
  59. </Space>
  60. ),
  61. },
  62. ];
  63. return (
  64. <Table<BeginQuery> columns={columns} dataSource={data} pagination={false} />
  65. );
  66. };
  67. export default QueryTable;