Skip to content

Table 表格 ​

基础使用 ​

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

带边框的表格 ​

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

流体高度 ​

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

单元格省略 ​

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

排序 ​

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

过滤 ​

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

加载中 ​

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

自定义单元格内容 ​

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

INFO

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

固定表头和隐藏表头 ​

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

固定列 ​

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

列宽度 ​

通过对设置 width、min-width、max-width 对列宽度进行控制,三个接受 Boolean 和 Number 类型的常数。min-width 默认为 80px。

WARNING

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

展开行 ​

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

布局 ​

默认下 layout="fixed",相当作用在 table 样式的 table-layout: fixed,该模式下可以通过 width、min-width、max-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 }