Skip to content

Table 表格

基础使用

基础的表格展示用法。当 x-table 元素中注入 data 对象数组后,在 x-table-column 中用 prop 属性来对应对象中的键名即可填入数据,用 label 属性来定义表格的列名。

带边框的表格

默认情况下,Table 组件是不具有竖直方向和外层边框的,如果需要,可以使用 border 属性,把该属性设置为 true 即可启用。

流体高度

通过设置 max-height 属性为 x-table 指定最大高度。此时若表格所需的高度大于最大高度,则会显示一个滚动条。

单元格省略

当内容超过当前的宽度,导致换行,想通过省略保持一行内容。可设置 ellipsis 可以让单元格内容根据宽度自动省略。

排序

对某一列数据进行排序,在对应列中设置 sortertrue 布尔类型,即可开启本地自动排序。自动排序只支持数字类型排序,如果需要本地自定义排序,可以给 sorter 传入一个 Function,该函数接收三个参数,依次是 prev, next, prop。前两个参数相当于 Array.sort 函数的传入的,而 prop 是额外加入的。如果是需要远程服务器排序,可以将 sorter 设置为 remote 字符串类型,当排序条件改变时,会触发 change 事件,并接受列上的排序、筛选条件。

过滤

对某一列数据进行筛选,在对应列中设置 filtertrue 布尔类型,即可开启本地自动过滤。筛选项在默认情况,是跟根据当前 data 计算出的不重复数据。如果需要自定义筛选项,需要设置 filters{ label: string, value: any } 的数组类型。当然,与排序一样,也支持自定义过滤函数和远程过滤。给 filter 传入 Function,可根据自定义的逻辑进行过滤,该函数接受三个参数,依次是 source 行数据,prop 过滤列,filters 过滤值(数组类型)。如果是需要远程服务器排序,可以将 filter 设置为 remote 字符串类型,当过滤条件改变时,会触发 change 事件,并接受列上的排序、筛选条件。

加载中

设置 loadingtrue,可以显示加载动画。可以结合 排序过滤 使用。

自定义单元格内容

通过 slots.default 可自定义内容单元格的渲染。 通过 slots.header 可自定义表头单元格的渲染。

INFO

如果列开启了 type='expand' 展开行功能,那么 slots.default 则是展开行的内容,如果想自定义触发按钮可以设置 slots.expand

固定表头和隐藏表头

默认情况下,如果内容高度超过了所设置的 max-height,表格的所有内容(包括表头)都会随着滚动而位移。这是故意为之,因为这能节省不必要的性能开支。如果需要表头滚动可以设置 fixed-headertrue。如果不需要表头也可以去除,设置 hide-headertrue 即可。

固定列

固定列需要使用 fixed 属性,它接受 Boolean 值。 如果为 true, 列将被左侧固定。它还接受传入字符串,leftright,表示左边固定还是右边固定。

列宽度

通过对设置 widthmin-widthmax-width 对列宽度进行控制,三个接受 BooleanNumber 类型的常数。min-width 默认为 80px

WARNING

这几乎只在 layout: fixed 的布局下工作,因为 layout: auto 的模式是基于内容进行自动调整宽度,这与上述三者属性有一定程度的冲突。

展开行

通过设置列的 typeexpand, 和 slots.default 插槽可以开启展开行功能,slots.default 模板会被渲染成为展开行的内容,模板可以接收一个 source 行数据。

布局

默认下 layout="fixed",相当作用在 table 样式的 table-layout: fixed,该模式下可以通过 widthmin-widthmax-width 自定义调节各种列宽度。如果想让列宽根据内容自动适应,那么需要设置 layout="auto",相当作用在 table 样式的 table-layout: auto

变量声明式

可以不用上述 template 风格书写 x-table-column,通过设置 columns 变量来声明列。

Table API

属性

属性名说明类型默认值是否必填
columns表格列的配置描述Array-No
data显示的数据Array-No
loading页面是否加载中BooleanfalseNo
border是否带有纵向边框BooleanfalseNo
dense表格紧凑型BooleanfalseNo
ellipsis超过宽度将自动省略BooleanfalseNo
maxHeight表格最大高度String/NumberautoNo
width表格宽度String/NumberautoNo
layout布局模式auto/fixedfixedNo
hideHeader隐藏表头BooleanfalseNo
fixedHeader固定表头BooleanfalseNo

插槽

插槽名说明作用域参数
cell.${prop}自定义 prop 列的内容单元格{ source, prop, data, column }
header.${prop}自定义 prop 列的表头单元格column
expand.${prop}不推荐使用,自定义 expand 列的触发器{ source, prop, data, column }

Column API

属性

属性名说明类型默认值是否必填
label显示的标题String-No
prop对应列的字段名String-No
align对应列的字段名left / center / right-No
width对应列的宽度String/Number-No
minWidth对应列的最小宽度String/Number80pxNo
maxWidth对应列的最大宽度String-No
ellipsis超过宽度将自动省略BooleanfalseNo
fixed列是否固定左侧或右侧,如果为 true 则为 lefttrue / left / right-No
sorter排序函数,提供 Array.sort 的参数函数,如需要服务端排序则设置为 remoteFunction / Boolean / remotefalseNo
filter过滤函数,一个返回值为 Boolean 的函数,如需要服务端排序则设置为 remoteFunction / Boolean / remotefalseNo
filters筛选项,默认情况下会根据 data 生成,也可传入 Array 进行自定义Array / Boolean-No

插槽

插槽名说明作用域参数
default自定义 prop 列的内容单元格{ source, prop, data, column }
header自定义 prop 列的表头单元格column
expand不推荐使用,自定义 expand 列的触发器{ source, prop, data, column }