"use client"; import React, { useState } from 'react'; // import { DownOutlined } from '@ant-design/icons'; import type { GetProp, RadioChangeEvent, TableProps } from 'antd'; import { Form, Radio, Space, Switch, Table } from 'antd'; type SizeType = TableProps['size']; type ColumnsType = GetProp, 'columns'>; type TablePagination = NonNullable['pagination'], boolean>>; type TablePaginationPosition = NonNullable['position']>[number]; type ExpandableConfig = TableProps['expandable']; type TableRowSelection = TableProps['rowSelection']; interface DataType { key: number; name: string; age: number; address: string; description: string; } const columns: ColumnsType = [ { title: '文档名称', dataIndex: 'name', }, { title: '文档大小', dataIndex: 'age', // sorter: (a, b) => a.age - b.age, }, { title: '上传时间', dataIndex: 'age', }, // { // title: 'Age', // dataIndex: 'age', // sorter: (a, b) => a.age - b.age, // }, // { // title: 'Address', // dataIndex: 'address', // filters: [ // { // text: 'London', // value: 'London', // }, // { // text: 'New York', // value: 'New York', // }, // ], // onFilter: (value, record) => record.address.indexOf(value as string) === 0, // }, { title: '操作', key: 'action', sorter: true, render: () => ( Delete More actions {/* */} ), }, ]; const data: DataType[] = []; for (let i = 1; i <= 10; i++) { data.push({ key: i, name: 'John Brown', age: Number(`${i}2`), address: `New York No. ${i} Lake Park`, description: `My name is John Brown, I am ${i}2 years old, living in New York No. ${i} Lake Park.`, }); } const defaultExpandable = { expandedRowRender: (record: DataType) =>

{record.description}

}; const defaultTitle = () => 'Here is title'; const defaultFooter = () => 'Here is footer'; const Lists: React.FC = () => { const [bordered, setBordered] = useState(false); const [loading, setLoading] = useState(false); const [size, setSize] = useState('large'); const [expandable, setExpandable] = useState | undefined>( defaultExpandable, ); const [showTitle, setShowTitle] = useState(false); const [showHeader, setShowHeader] = useState(true); const [showFooter, setShowFooter] = useState(true); const [rowSelection, setRowSelection] = useState | undefined>({}); const [hasData, setHasData] = useState(true); const [tableLayout, setTableLayout] = useState(); const [top, setTop] = useState('none'); const [bottom, setBottom] = useState('bottomRight'); const [ellipsis, setEllipsis] = useState(false); const [yScroll, setYScroll] = useState(false); const [xScroll, setXScroll] = useState(); const handleBorderChange = (enable: boolean) => { setBordered(enable); }; const handleLoadingChange = (enable: boolean) => { setLoading(enable); }; const handleSizeChange = (e: RadioChangeEvent) => { setSize(e.target.value); }; const handleTableLayoutChange = (e: RadioChangeEvent) => { setTableLayout(e.target.value); }; const handleExpandChange = (enable: boolean) => { setExpandable(enable ? defaultExpandable : undefined); }; const handleEllipsisChange = (enable: boolean) => { setEllipsis(enable); }; const handleTitleChange = (enable: boolean) => { setShowTitle(enable); }; const handleHeaderChange = (enable: boolean) => { setShowHeader(enable); }; const handleFooterChange = (enable: boolean) => { setShowFooter(enable); }; const handleRowSelectionChange = (enable: boolean) => { setRowSelection(enable ? {} : undefined); }; const handleYScrollChange = (enable: boolean) => { setYScroll(enable); }; const handleXScrollChange = (e: RadioChangeEvent) => { setXScroll(e.target.value); }; const handleDataChange = (newHasData: boolean) => { setHasData(newHasData); }; const scroll: { x?: number | string; y?: number | string } = {}; if (yScroll) { scroll.y = 240; } if (xScroll) { scroll.x = '100vw'; } const tableColumns = columns.map((item) => ({ ...item, ellipsis })); if (xScroll === 'fixed') { tableColumns[0].fixed = true; tableColumns[tableColumns.length - 1].fixed = 'right'; } const tableProps: TableProps = { bordered, loading, size, expandable, title: showTitle ? defaultTitle : undefined, showHeader, footer: showFooter ? defaultFooter : undefined, rowSelection, scroll, tableLayout, }; return ( <> {false &&
Large Middle Small Unset Scroll Fixed Columns Unset Fixed { setTop(e.target.value); }} > TopLeft TopCenter TopRight None { setBottom(e.target.value); }} > BottomLeft BottomCenter BottomRight None
} ); }; export default Lists;