import React, { useState } from 'react'; import { Table, Button } from '../../../src'; import { CodeBlock, ApiTable, ApiRow, sectionStyle, sectionTitleStyle, tagStyle, demoBodyStyle, labelStyle } from '../../tools'; const TableDemo: React.FC = () => { const [striped, setStriped] = useState(true); const [loading, setLoading] = useState(false); const columns = [ { title: '岛民', dataIndex: 'name', width: 120, }, { title: '年龄', dataIndex: 'age', width: 80, align: 'center' as const, }, { title: '岛屿', dataIndex: 'island', }, { title: '喜欢的水果', dataIndex: 'fruit', }, { title: '爱好', dataIndex: 'hobby', render: (value: unknown) => { const hobby = value as string; const tagStyles: Record = { '音乐': { bg: 'rgba(147, 112, 219, 0.15)', color: '#9370db' }, '运动': { bg: 'rgba(255, 140, 0, 0.15)', color: '#ff8c00' }, '唱歌': { bg: 'rgba(255, 99, 71, 0.15)', color: '#ff6347' }, '钓鱼': { bg: 'rgba(30, 144, 255, 0.15)', color: '#1e90ff' }, '画画': { bg: 'rgba(255, 105, 180, 0.15)', color: '#ff69b4' }, }; const style = tagStyles[hobby] || { bg: 'rgba(25, 200, 185, 0.15)', color: '#19c8b9' }; return ( {hobby} ); }, }, ]; const dataSource = [ { key: '1', name: '豆狸', age: 26, island: '彩虹岛', fruit: '苹果', hobby: '音乐' }, { key: '2', name: '粒狸', age: 24, island: '彩虹岛', fruit: '橘子', hobby: '运动' }, { key: '3', name: '西施惠', age: 28, island: '好评岛', fruit: '樱桃', hobby: '唱歌' }, { key: '4', name: '喻哥', age: 30, island: '无人岛', fruit: '梨', hobby: '钓鱼' }, { key: '5', name: '小润', age: 22, island: '摸鱼岛', fruit: '桃子', hobby: '画画' }, ] as Record[]; const handleLoading = () => { setLoading(true); setTimeout(() => setLoading(false), 2000); }; return (
Table 表格
数据表格组件,支持斑马纹、边框、加载状态等常用功能。
( {value} ), }, ]; const data = [ { key: '1', name: '豆狸', age: 26, island: '彩虹岛', fruit: '苹果', hobby: '音乐' }, { key: '2', name: '粒狸', age: 24, island: '彩虹岛', fruit: '橘子', hobby: '运动' }, { key: '3', name: '西施惠', age: 28, island: '好评岛', fruit: '樱桃', hobby: '唱歌' }, ]; const App = () => { const [striped, setStriped] = useState(true); return (
); };`} /> ); }; const TABLE_API: ApiRow[] = [ { prop: 'columns', desc: '表格列配置', type: 'TableColumn[]', defaultVal: '[]' }, { prop: 'dataSource', desc: '表格数据源', type: 'T[]', defaultVal: '[]' }, { prop: 'rowKey', desc: '行唯一标识字段名或函数', type: 'string | (record) => string', defaultVal: 'key' }, { prop: 'striped', desc: '是否显示斑马纹', type: 'boolean', defaultVal: 'true' }, { prop: 'showHeader', desc: '是否显示表头', type: 'boolean', defaultVal: 'true' }, { prop: 'loading', desc: '加载状态', type: 'boolean', defaultVal: 'false' }, { prop: 'emptyText', desc: '空数据显示文本', type: 'ReactNode', defaultVal: '暂无数据' }, { prop: 'className', desc: '自定义类名', type: 'string', defaultVal: '-' }, { prop: 'style', desc: '自定义样式', type: 'CSSProperties', defaultVal: '-' }, ]; export default TableDemo;