Table

基于elementui plustable二次封装,通过配置config的形式简化书写表格代码时的重复度。对于tabletable column的属性在透传上进行了增强,进一步加强了表格的功能性。

WARNING

当表格里每一条数据都包含很多子组件的时候,不可避免的会创建相当多的组件实例,这样会导致表格内容的首次渲染时间变长,目前没有什么好的解决方案。

可以考虑通过异步渲染defineAsyncComponent来让表格优先被数据填充,再去加载子组件。虽然总体上的时间没有任何提升,甚至由于异步的原因,会有网络连接的损耗,但是至少能显著提高首屏的渲染时间。

Basic table

Basic table is just for data display.

单选

可以通过getCheckboxProps来单独设置某一行是否允许选中

多选

由于elementtable多选功能的手动选择依赖表格数据的引用,在回显的时候很难处理,因此参考了antdv的做法,增强了多选功能,可以通过{ type: 'checkbox' }开启.

可以通过getCheckboxProps来单独设置某一行是否允许选中

自定义单元格

可以通过插槽的形式,自定义单元格里的内容

自定义表头

可以通过设置header: true开启自定义表头,插槽名为对应{prop}-header

行内省略

主要是添加了一个统一的开关,避免重复设置同一个属性。

可以通过show-overflow-tooltip统一开启所有列的行内省略,同时也兼容原生的属性,支持针对单列的独立配置

多级表头

列配置中加上children,可以用来管理多级表头

行内编辑

通过editable可以对指定列开启行内编辑

单选框 (废弃)

WARNING

该用法将被废弃,请使用row-selection进行设置

type: selection类似,可以通过type: radio添加一列单选框。

行合并

element-plus的实现太底层了,所以使用起来有点麻烦。通过colspanOptions可以更直观的配置哪些列需要被合并。

远程数据

table将远程数据的请求进行了封装,对诸如page,pagesize,total这些分页参数,在组件内部就进行了托管,不需要开发人员再自行维护。

WARNING

因为分页的相关数据和行为交给了组件,所以只有请求这个行为必须要交给table去触发。因此在获取数据的时候不是用户操作按钮去请求数据,而是用户操作按钮通知table去请求数据。

No Data
Total 0
  • 1
Go to

空白单元格

可以通过tableemptyText来设置表格对于空白单元格的处理方式 支持functionstring

TIP

在渲染的时候组件内部会对单元格做空值判断,因此在通过function动态设置空白单元格的时候可以直接通过判断是否为空字符串来判断是否为空白单元格

拖曳排序

可以将useSortable整合进表格中来实现拖曳排序

WARNING

必须设置row-key,否则会导致表格数据与表现不符

指定拖曳区域

当表格的数据行存在需要用户操作的内容,比如点击或者复制时,可以通过handler手动指定允许拖曳的区域。

WARNING

必须设置row-key,否则会导致表格数据与表现不符

Table 属性

属性说明类型可选值默认值
config表格列配置object-[]
data表格数据源array-[]
api远程数据获取的回调函数function(): promise--
arrayName远程获取表格数据的字段名,可通过 config-provider 全局设置string--
pagination是否使用分页组件boolean-false
modelValue/v-model分页参数,支持双向绑定object-{ page: 1, rows: 20 }
total本地数据源使用分页功能需要手动维护 totalnumber-0
colspanOptions行合并相关配置object--
padding表格的内边距boolean-true
custom是否自定义表格数据boolean-false
filter表格数据过滤器function(data)--
immediate是否在 created 时自动获取数据,仅在数据源为远程数据时有效boolean-true
fixXScroll固定列过多在产生底部滚动条在浏览器视窗的底部(Beta)boolean-false
simple简易表格,支持本地分页boolean-false
load是否在获取远程数据里显示 loading 动画boolean-true
emptyText设置空白单元格的填充内容function(val, column)/string-''
rowSelection列表项是否可选择,配置项见Row-selectionobjectnull

Table 插槽

名称说明
[prop]自定义对应列的内容,参数为{ row, column, $index }
[prop]-header自定义对应列表头的内容,参数为{ column, $index }

Table 事件

事件名说明参数
save当行内编辑输入框用户回车时触发value
blur当行内编辑输入框失焦时触发value

TIP

之所以针对行内编辑要区分saveblur事件,是因为回车是用户主观上希望保存的行为,但是失焦在不同业务场景下有不同的需求,所以独立开来了。

Table-column 属性

TIP

可以通过config去设置每一列的属性

属性说明类型可选值默认值
type列的特殊功能stringexpand / selection / radio-
label每一列表头显示的名称string--
prop每一列对应的数据字段,同时也是自定义时的插槽名string--
header是否需要自定义列表头,只有在开启时[prop]-header插槽才会生效boolean-false
editable是否开启行内编辑boolean-false
filter列数据过滤器function / object--
unit列数据的单位,会自动添加在数据后string--

Row-selection 属性

多选功能的配置

WARNING

必须设置row-key

参数说明类型可选值默认值
type选择框的类型'checkbox' | 'radio''checkbox'
selectedRowKeys指定选中项的 key 数组,需要和 onChange 进行配合string[][]
onChange选中项发生变化时的回调Function(selectedRowKeys)-
preserveRowKeys本地数据删除时是否保留选项的key(主要用于跨页选择保留选中结果)boolean-false
getCheckboxProps选择框的默认属性配置function(row)--