123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import React from 'react';
- import { Space, Table, Tag } from 'antd';
- import type { TableProps } from 'antd';
- interface DataType {
- key: string;
- name: string;
- age: number;
- address: string;
- tags: string[];
- }
- const columns: TableProps<DataType>['columns'] = [
- {
- title: 'Name',
- dataIndex: 'name',
- key: 'name',
- render: (text) => <a>{text}</a>,
- },
- {
- title: 'Age',
- dataIndex: 'age',
- key: 'age',
- },
- {
- title: 'Address',
- dataIndex: 'address',
- key: 'address',
- },
- {
- title: 'Tags',
- key: 'tags',
- dataIndex: 'tags',
- render: (_, { tags }) => (
- <>
- {tags.map((tag) => {
- let color = tag.length > 5 ? 'geekblue' : 'green';
- if (tag === 'loser') {
- color = 'volcano';
- }
- return (
- <Tag color={color} key={tag}>
- {tag.toUpperCase()}
- </Tag>
- );
- })}
- </>
- ),
- },
- {
- title: 'Action',
- key: 'action',
- render: (_, record) => (
- <Space size="middle">
- <a>Invite {record.name}</a>
- <a>Delete</a>
- </Space>
- ),
- },
- ];
- const data: DataType[] = [
- {
- key: '1',
- name: 'John Brown1111',
- age: 32,
- address: 'New York No. 1 Lake Park',
- tags: ['nice', 'developer'],
- },
- {
- key: '2',
- name: 'Jim Green 1111',
- age: 42,
- address: 'London No. 1 Lake Park',
- tags: ['loser'],
- },
- ];
- const DemoTable: React.FC = () => <Table columns={columns} dataSource={data} />;
- export default DemoTable;
|