数据表格 ZyDataTable

数据表格是一种用于展示结构化数据的组件,支持分页、排序、多选等功能。

基本用法

以下是一个基本的表格示例。

列1列2
数据1数据2
数据3数据4

空状态

当表格没有数据时,可以通过设置 emptyTableText 属性来显示空状态。

列1列2

曼波...暂无数据喵~

加载中状态

当表格正在加载数据时,可以通过设置 loading 属性为 true 来显示加载中状态。

列1列2

Loading...

多选功能

通过设置 selection 属性为 true,可以开启表格的首列多选框功能。

选中的行数据:[]

列1列2
数据1数据2
数据3数据4

分页功能(支持本地 & 远程)

第一步*:通过设置 enableCurrentPageButtons 属性为 true,可以开启表格的第几页控制按钮(右下角)。

第二步:通过设置 enableItemsPerPageDropdown 属性为 true,可以开启分页大小调整的的下拉菜单(左下角)。

表格的分页功能分为本地分页和远程分页两种模式。

第三步*:需要设置 rowsPerPage 每页显示的行数,表格会自动计算并显示分页信息。在本地分页模式下,表格的数据长度是通过 tableData 传入的数据总数。

通过设置 remote 属性为 true,可以开启远程分页模式。

第四步:而在远程分页模式下,通过设置 currentPage 当前页码,rowsPerPage 每页显示的行数,total 数据总数,可以更精细的控制表格的分页,并能优化数据量大时的数据传输长度。

列1列2
数据1数据2
数据3数据4
数据5数据6
数据7数据8
数据9数据10
数据11数据12
数据13数据14
数据15数据16
数据17数据18
数据19数据20

显示 1 到 10 条记录,共 20 条记录

排序功能(支持本地 & 远程)

必须*:需要设置 tableHeader 列标题配置,将需要排序的字段的 sortable 设置为 truekey 严格地设置为 数据中该字段的字段名 ,可以开启表格的排序功能。

表格的排序功能分为本地排序和远程排序两种模式。

在本地排序模式下,直接点击列表头中可以排序的字段名,即可实现排序。
本地排序规则:
同一个字段:第一次点击正序,第二次点击倒序,第三次点击还原默认顺序。
不同字段:点击后,取消其他字段的排序,只对当前点击的字段,按上一条规则排序。

通过设置 remote 属性为 true,可以开启远程排序模式。

在远程排序模式下,需要接收 sortChange 事件,在事件中处理排序逻辑,并通过 Props 控制表格组件的显示。其中,sortLabel 为排序字段名,sortOrder 为排序方式。

列1列2
数据1数据2
数据3数据4
数据5数据6
数据7数据8
数据9数据10
数据11数据12
数据13数据14
数据15数据16
数据17数据18
数据19数据20

显示 1 到 10 条记录,共 20 条记录

API

<ZyDataTable> Props

参数名描述类型默认值
tableHeader 列标题配置,包含每列的名称、键、排序字段、是否可排序、对齐方式等信息 Array<IHeaderConfiguration>-
tableData表格数据Array-
emptyTableText表格为空时显示的提示信息String"No data found"
loading表格是否处于加载状态Booleanfalse
selection是否开启首列多选框Booleanfalse
showExpandBtn是否开启展开按钮Booleanfalse
expandAll是否展开所有数据Booleanfalse
expandInTable展开内容是否显示在主表的 tr 内Booleantrue
totalArray绑定到 index 的小计行数据Array<TotalArrayItem>-
enableCurrentPageButtons是否启用第几页调整按钮Booleanfalse
enableItemsPerPageDropdown是否启用每页显示行数的下拉菜单Booleanfalse
currentPage当前页码Number-
rowsPerPage每页显示的行数Number-
total数据总数Number-
sortLabel被排序的字段String-
sortOrder排序顺序(正序/倒序)"desc" | "asc"-
remote是否为远程(后端)控制分页、排序Booleanfalse

<ZyDataTable> Events

事件名描述参数
current-change当前页码改变时触发page: number
sort-change排序改变时触发{ columnName: string, order?: string }
items-per-page-change每页显示行数改变时触发rowsPerPage: number
select-change多选框选中状态改变时触发selectedRows: Array<any>