Table组件

为了更方便的使用表格,封装了基础的表格组件。

image-20250205164620456

tsx
1import Table from '@/components/dashboard/table';
使用
tsx
1<Table
2 data={user}
3 columns={columns}
4 options={{
5 change: (val) => handlePageChange(val),
6 }}
7 pagination={pageInfo}
8></Table>
参数
名称默认值说明
data[](数组)表格数据
columns[] (数组)表格列
options{}表格部分内容参数
paginationnullnull 为不分页
参数说明

columns, data参考

tsx
1const data = [
2 {
3 nickName: 'test',
4 createdDate: 999999,
5 },
6 {
7 nickName: 'test2',
8 createdDate: 999999,
9 },
10];
11
12const columns = [
13 {
14 label: '用户名',
15 prop: 'nickName',
16 },
17 {
18 label: '创建时间',
19 prop: 'createdDate',
20 render: (row: any) =>
21 dayjs(row.createdDate).format('YYYY年MM月DD日 HH:mm:ss'),
22 },
23 {
24 label: '操作',
25 prop: 'action',
26 render: (row: any) => (
27 <div className="flex gap-2">
28 <button
29 className="btn btn-sm btn-outline"
30 onClick={() => handleEdit(row)}
31 >
32 编辑
33 </button>
34 <button
35 className="btn btn-sm btn-error btn-outline"
36 onClick={() => handleDelete(row.id)}
37 >
38 删除
39 </button>
40 </div>
41 ),
42 },
43];

options参考

  • change: 表格翻页回调
tsx
1<Table
2 data={user}
3 columns={columns}
4 options={{
5 change: (val) => handlePageChange(val),
6 }}
7></Table>

pagination参考

tsx
1total: number; // 数据总数
2page: number; // 当前页
3pageSize: number; // 一页数量
4totalPages: number; // 总页数
5} | null;