Skip to content

Table 表格 ​

此表格组件基于 ELTable 的表格组件进行了封装增强,基础用法请参考 Element Plus 官方文档。
在原基础下,增强了一下特性:

  1. 表格列定义可由数组定义
  2. 可与后端查询列表集成,分页查询,简单搜索,复杂筛选
  3. 自带excel导出功能,可导出当页或全部数据
  4. 自带表格列设置,用户可动态控制列排列顺序、列显隐、列固定方向
  5. 自带内存分页功能
  6. 自带单选和多选功能,轻松实现数据选择功能
  7. 自带按钮操作列收纳功能,在不同按权限下按钮动态调整列宽布局,保证整体样式饱满,避免变形
  8. 自带内存排序和后端排序
  9. 自带编辑功能,简单配置即可实现表格数据编辑,支持表格数据验证
  10. 表格数据编辑继承 Form 表单 的强大能力,简单配置就可实现所有表单控件的编辑功能,并自带数据验证

基础用法 ​

不分页 ​

默认情况下,表格会自动内存分页,isPage 可以设置为 false 这样就不会分页

多级表头 ​

固定列 ​

表尾合计行 ​

定制 el-table-column 插槽 ​

通过 slots 属性我们可以使用jsx风格来定制 el-table-column 插槽

slotName 定制插槽名 ​

我们可以通过 slotName 属性来定制具名插槽的 name,这样就可以通过此 name 来使用模板插槽定义一些个性化的内容。

comment 备注信息 ​

和 Form 表单 一样,MTable 也支持 comment 备注信息,支持 VNode 定义备注内容

left-action , right-action, float-action 插槽 ​

pagination 可以配置分页组 ​

具体分页组件的属性参考 ElPagination

selection 选择行数据 ​

设置 selection 即可实现选择行功能,selectionLimit 可以限制选择的最大条数

operation 操作列 ​

我们知道,在不同权限下,可能显示不同的按钮,type 为 operation 时可以很方便的实现按钮组的控制,会自动根据字数和按钮数量调整列的宽度,多出的按钮会自动收纳进下拉菜单中

buttons 的 auth 属性会动态判断按钮权限,在无按钮权限时,自动隐藏该列,设置 hidden 属性为 true 可手动隐藏该按钮, icon 属性还支持直接传入 Icon 图标 组件的 value 展示自定义图标

和后端列表查询集成 ​

直接提供 fetch-data 属性,即可实现后端列表查询,默认分页,设置 isPage 为 false

即可不分页查询所有数据,设置 is-complex-filter 为 true 开启高级筛选,

以下以查询系统菜单为例:

简单查询条件 ​

设置 is-filter-table 为 true 即可配置简单查询条件,简单查询条件表单继承 Form 表单 实现方式,简单配置即可实现所有表单组件功能

editable 表格数据编辑 ​

设置 editable 为 true 则可以实现表格数据编辑,editParam 用来定制表单组件功能, 编辑功能继承 Form 表单 强大能力,具体使用可参考 Form 表单,简单配置即可实现编辑和验证功能, 还支持分页数据的验证。

函数方式定义editParam ​

有时候我们需要根据行数据动态渲染表单内容, 此时 editParam 固定配置可能并不满足编辑表单的需求,支持以函数的方式提供 editParam, 这样可以更灵活的定制表单项。

Table API ​

Table 属性 ​

属性名描述类型默认值
layout如果高度随内容自动增高:则需要设置为 'auto', 如果需要自动充满父容器,设为 'stretch''auto' | 'stretch'—
is-filter-table是否是筛选过滤的表格,是:表格包含搜索框,同时布局上会有间距调整booleanfalse
is-export-excel是否导出excelbooleantrue
export-file-name导出的文件名string'表格数据'
show-setting v1.7.0显示表格列设置booleantrue
persist-layout-key v1.7.0需提供一个全局唯一的key开启表格布局保存功能,开启后,用户可选择保存布局,包括列显隐,列宽,列顺序,列固定等信息,需保证项目中不同表格的key唯一,否则可能会导致意料之外的错误string
is-complex-filter是否高级筛选booleanfalse
selection可选择行的表格'multiple' | 'single'—
selection-limit最大选择行数number—
filter-columns过滤column, CommonFormColumnArray—
filter-param过滤param查询条件数据对象object—
columns表格列定义 CommonTableColumnArray—
fetch-data请求后台数据的方法Function—
default-query仅配置 fetchData 时生效,是否默认初始化就查询booleantrue
data表格数据,后台查询表格时,使用 v-model:data 绑定获取查询的表格数据Array—
is-page是否分页booleantrue
pagination表格分页组件配置,参考 ELPaginationobject—
handle-type表单处理类型,仅对编辑列有效enum'add'
sortable v1.6.0列设置booleantrue

Table Slots ​

插槽名详情类型
left-action左侧操作栏—
right-action右侧操作栏—
float-action悬浮操作栏—

Table Exposes ​

名称详情类型
loadingRef搜索按钮加载状态Ref<boolean>
fetchQuery执行数据查询Function
validate验证表格数据Function
tableRefElTableRefRef<ElTable>
formRefElFormRefRef<ElForm>
exportExcelRefExportExcelRefRef<MExportExcel>

Table Event ​

名称详情类型
search无fetch-data时,点击搜索触发Function

CommonTableColumn 表格列 ​

仅列出新加的特有字段说明,关于 ElTableColumn 基础属性用法,可参考 Element Plus 文档

字段字段描述类型
label标题名称string
type表格数据类型 Table Typestring
prop绑定行数据的属性string
comment疑问备注string | VNode
required显示必填星号,一般在表格编辑时,标识此列必填boolean
hidden隐藏此列boolean
notExport此列不导出到excelboolean
slotsjsx 风格定义 el-table-column 插槽SlotsObj
slotName允许用户按照自己的slotName插槽定制string
itemListtype 为 'select' 时的枚举选项Array
labelKey枚举选项的 labelKey,默认为 'label'string
valueKey枚举选项的 valueKey,默认为 'value'string
buttonstype 为 'operation' 时生效,定制操作列按钮Array
maxCounttype 为 'operation' 时生效,按钮超过这个数量将被收纳进下拉菜单中number
editable变为可编辑列boolean
editParameditable 为 true有效, 定制表单编辑参数,参考 Form 表单 配置object
children多级表头列定义Array

Table Type 说明 ​

用来区分列的用途,或者区分显示内容的数据类型,不同的数据类型在高级筛选中有不同的数据体验

type描述高级筛选
'text'| undefined普通文本列显示的是一个文本输入框
'select'枚举列,需提供 itemList 属性定义枚举选项显示一个下拉框选择
'number'数字列只允许输入数字
'date'日期列显示日期选择框
'dateTime'日期时间列显示日期时间选择框
'index'表示这是一个序号列,自动显示数据的序号—
'selection'表示这个一个选择列,显示 checkbox 或者 radio—
'operation'表示这个是一个操作按钮列—