Skip to content

Table 表格 ​

ElTablePro 的诞生是为了解决项目中需要写很多 Table 的样板代码的问题,所以在其中封装了很多常用的逻辑。这些封装可以简单的分类为预设行为与预设逻辑。

基础用法 ​

通过配置快速生成表格

请求数据源 ​

request 是 ElTablePro 最重要的 API。它接收 page、pageSize 和 signal,返回值必须包含 data 与 total。

高级筛选 ​

通过 filter 配置开启

自定义筛选字段 ​

ElTablePro 会将 filter-*(* 代表 schema 中的 key)前缀的插槽转发给内部 ElFormPro。下面示例使用插槽自定义搜索项。

自定义列 ​

自定义单元格 ​

在 columns 中配置 slot,然后在组件上提供同名插槽:

渲染函数 ​

除了 slot,也可以在列配置中使用 render, 接收 { row, column, $index },返回 VNode 或文本内容

自定义表头 ​

通过 headerSlot 自定义表头内容

表头渲染函数 ​

表头也可以使用 headerRender。它接收 { column, $index },返回 VNode 或文本内容

分组表头 ​

通过 children 配置多级表头

表格功能 ​

列配置 autoMerge(建议开启全边框) ​

通过 autoMerge 自动合并单元格

mergeFields 多级合并(建议开启全边框) ​

通过 mergeFields 配置多级合并:

未开启 border 的合并(Element Plus 默认无边框) ​

API ​

ElTablePro 在 Element Plus 的 Table 上进行了一层封装,支持了一些预设,并且封装了一些行为。这里只列出与 Element Plus Table 不同和部分原始的 API。

Props ​

属性名说明类型默认值
dataTable 的数据,ElTablePro 推荐使用 request 来加载Row[][]
request远程表数据请求函数TableProRequest<Row, Query>/ undefined
query已应用的检索条件对象Query{}
filter筛选表单配置TableProFilterConfig<Query>undefined
columns列配置TableProColumn<Row>[][]
rowKey行唯一标识string / (row) => string / number-
pagination分页配置,false 时隐藏分页boolean | TableProPaginationtrue
mergeFields按顺序逐级合并连续同值的字段string[][]

更多属性请参考 Element Plus Table。

TableProFilterConfig ​

属性名说明类型默认值
schema筛选表单的字段配置FormProSchemaItem[]-
model筛选表单的当前值Query{}
defaultValue筛选表单的初始值Query{}
formConfig筛选表单的布局和折叠配置TableProFilterConfigExtension-

TableProFilterConfigExtension 在 FormProConfig 基础上增加以下筛选配置:

属性名说明类型默认值
showCollapseButton是否显示展开/收起按钮booleanfalse
collapseRows收起时显示的行数number1
collapseCount收起时显示的字段数量;优先级高于 collapseRowsnumber-
collapsed是否默认收起booleantrue

TableProColumn ​

属性名说明类型默认值
prop字段名string-
label列标题string-
visible是否显示列booleantrue
slot自定义单元格插槽名string-
headerSlot自定义表头插槽名string-
render使用渲染函数生成单元格内容(scope) => VNodeChild-
headerRender使用渲染函数生成表头内容(scope) => VNodeChild-
autoMerge当前列是否合并连续同值booleanfalse
children分组表头的子列TableProColumn<Row>[]-

更多属性请参考 Element Plus Table-column API。

TableProRequest ​

组件会在初始化、分页变化或调用 reload 时执行它,并使用返回值更新表格与分页总数。

ts
type TableProRequest<Row, Query = Record<string, any>> = (params: {
  page: number | null
  pageSize: number | null
  query: Query
  signal: AbortSignal
}) => Promise<{
  data: Row[]
  total: number
}>

请求参数 ​

参数名说明类型
page当前页码number / null
pageSize每页条数number / null
signal用于取消请求的信号AbortSignal

signal 由组件自动提供。请求函数不需要取消能力时,可以不解构这个参数。

返回值 ​

字段名说明类型
data表数据Row[]
total数据总条数number

TableProPagination ​

属性名说明类型默认值
page当前页码number1
pageSize每页条数number20
pageSizes每页条数选项number[][10, 20, 50, 100]
pagerCount页码按钮数量number5
layout分页布局stringtotal, sizes, prev, pager, next, jumper
background是否为页码添加背景色booleantrue

更多分页配置请参考 Element Plus Pagination。

Events ​

事件名说明类型
loaded请求成功时触发的事件Function
error请求失败时触发的事件Function

更多事件请参考 Element Plus Table 事件。

Table Exposes ​

方法名说明类型
reload重新执行请求;不传参数时刷新当前页Function
search应用当前筛选条件并回到第一页Function
resetFilter重置筛选条件并重新请求Function

更多方法请参考 Element Plus Table Exposes。