Skip to content

ProTable 表格 ​

面向后台数据列表的高级表格,支持列配置、字典、分页、工具栏和扩展渲染。

基础示例 ​

展示本地数据表格和状态列。

示例使用本地演示数据;上传、校验和提交不会连接业务后端。

请求与操作列 ​

使用 mock 请求、分页、选择列和操作插槽。

示例使用本地演示数据;上传、校验和提交不会连接业务后端。

引入方式 ​

ts
import { ProTable, ProTableMain, ElDisplay } from "@/components/pro/table";

Props ​

参数说明类型默认值必填
editable是否开启编辑功能,或指定编辑功能触发方式MaybeRefOrGetter<boolean | "click" | "dblclick">-否
optionsMap字典枚举OptionsMapType-否
data表格数据object[][]否
rowKey行主键TableProps<object>["rowKey"]"id"否
operationProp操作列的 propstring"operation"否
operationProps操作列 propsPartial<OperationNamespace.Props>{}否
pageInfo分页信息Partial<PageInfo>() => defaultTablePageInfo否
pageScope是否开启分页功能,可以指定客户端(前端)分页还是服务端(后端)分页,当为 true 时,默认为客户端(前端)分页boolean | Environment | \${Environment}``false否
paginationProps分页组件 propsMaybeRef<Partial<PaginationProps>>{}否
filterScope过滤规则,可以指定客户端(前端)过滤还是服务端(后端)过滤,当为 true 时,默认为客户端(前端)过滤Environment | \${Environment}``"client"否
headerCellStyleElTable 的 headerCellStyle 配置项TableProps<object>["headerCellStyle"]{}否
headerBackground是否显示表头背景。booleantrue否
emptyText表格无数据时显示的文字string"暂无数据"否
selectedRadio默认选中的 radio,传入 rowKey 对应的值TableColumnTypeNamespace.Props["selectedRadio"]""否
radioPropsElRadio 单选框 propsTableColumnTypeNamespace.Props["radioProps"]{}否
preventCellEditClass当单元格根元素存在某个 class 时,点击不会进入编辑模式string[][]否
initNativeRowField是否初始化部分加强属性到 scope.row 里booleanfalse否
toolButton按钮显示数组boolean | (ToolButtonEnum | \${ToolButtonEnum}`)[]`undefined否
disabledToolButton按钮禁用数组(ToolButtonEnum | \${ToolButtonEnum}`)[]`[]否
size表格密度TableSizeEnum | \${TableSizeEnum}``() => TableSizeEnum.Default否
sizeStyle自定义不同尺寸的 rowStyle、cellStyle、headerCellStylePartial<Record<TableSizeEnum, SizeStyle>>{}否
title表格标题string""否
exportProps表格导出配置ExportPropsundefined否
tooltipPropsElTable PropsPartial<ElTooltipProps>() => defaultTooltipProps否
columnSetting表格列配置ColumnSetting{}否
baseSetting表格基础配置BaseSetting{}否
columns列配置项MaybeRef<LooseTableColumn[]>[]否
requestApi请求表格数据的请求(params: Recordable) => Promise<unknown>undefined否
defaultRequestParams默认请求参数(请求一定会携带)MaybeRef<Recordable>{}否
requestParams请求参数MaybeRef<Recordable>{}否
initRequestParams初始化请求参数(重置时恢复为初始化参数)MaybeRef<Recordable>{}否
requestImmediate是否立即执行请求booleantrue否
beforeSearch查询数据前的回调函数,可以对查询参数进行处理或禁止查询(searchParams: Recordable) => false | Recordableundefined否
requestError请求失败回调(error: unknown) => voidundefined否
transformData对请求成功的数据进行处理(data: Recordable[], result?: unknown) => unknownundefined否
hideHead是否隐藏表格顶部栏booleanfalse否
controlHeadColumn是否显示控制表格顶部栏的图标列booleanfalse否
controlHeadColumnProps控制表格顶部栏图标列(ElTableColumn)的 PropsLooseTableColumn{}否
card是否使用卡片样式booleanfalse否
pageField分页信息 key 名配置PageField{}否
rowStyleElTable 的 rowStyle 配置项TableProps<object>["rowStyle"]{}否
cellStyleElTable 的 cellStyle 配置项TableProps<object>["cellStyle"]{}否
headerRowStyleElTable 的 headerRowStyle 配置项TableProps<object>["headerRowStyle"]{}否
borderElTable 的 border 配置项TableProps<object>["border"]false否
stripeElTable 的 stripe 配置项TableProps<object>["stripe"]false否
showHeaderElTable 的 showHeader 配置项TableProps<object>["showHeader"]true否
highlightCurrentRowElTable 的 highlightCurrentRow 配置项TableProps<object>["highlightCurrentRow"]true否

Events ​

事件名说明回调参数
formChange表单值改变事件fromValue: unknown, prop: NonNullable<TableColumn["prop"]>, scope: TableScope
filterClear清空事件,返回输入的 propprop: string
filterReset重置所有表单事件-
buttonClick操作按钮点击时触发params: OperationNamespace.ButtonsCallBackParams
buttonConfirm二次确认的确定按钮点击时触发params: OperationNamespace.ButtonsCallBackParams
buttonCancel二次确认的取消按钮点击时触发params: OperationNamespace.ButtonsCallBackParams
selectionChange多选框勾选事件useSelectReturn: SelectState, index?: number
paginationChange分页触发事件pageInfo: PageInfo
radioChange单选框选中事件row: Recordable, index: number
dragSortEnd拖拽排序结束事件newIndex: number, oldIndex: number
cellClick单元格点击事件row: TableRow, column: TableColumn, cell: HTMLTableCellElement, event: Event,
cellDblClick单元格双击事件row: TableRow, column: TableColumn, cell: HTMLTableCellElement, event: Event,
leaveCellEdit离开单元格编辑事件row: TableRow, column: TableColumn
filter过滤事件,返回输入的值以及 propfilterModel: Recordable, filterValue: unknown, prop: string
refresh刷新按钮点击事件-
sizeChange密度选择事件size: TableSizeEnum, sizeStyle: SizeStyle
printer打印按钮点击事件selectedList?: Recordable[], selectedListIds?: string[]
register注册组件实例proTableInstance: ComponentPublicInstance | null, elTableInstance: TableInstance | null

Slots ​

插槽名说明参数
动态插槽(slot)动态转发当前组件收到的同名插槽。-

Expose ​

名称说明类型
tableData当前表格数据。-
pageInfo当前分页信息。-
searchParams当前查询参数。-
searchInitParams初始查询参数。-
fetch重新请求数据。-
search按当前条件查询数据。-
reset重置组件状态。-
handlePagination处理分页变化。-
setProps动态设置组件属性。-
setColumn动态设置列配置。-
addColumn动态新增列配置。-
delColumn动态删除列配置。-
tableHeadInstance表格头部组件实例。-
tableMainInstance表格主体组件实例。-
getElTableInstance获取 Element Plus 表格实例。-
getElFormInstance获取查询表单实例。-
getElFormItemInstance获取查询表单项实例。-
getElInstance获取内部组件实例。-

Module API ​

名称说明类型
ProTable导出 ProTable 供业务侧复用。useInstall(index)
ProTableMain导出 ProTableMain 供业务侧复用。useInstall(tableMain)

Types ​

PageInfo ​

导出 PageInfo 供业务侧复用。

字段说明类型默认值必填
pageNum当前页number-是
pageSizes页码数组number[]-否
pageSize一页显示多少条数据number-是

PaginationProps ​

导出 PaginationProps 供业务侧复用。

字段说明类型默认值必填
autoScroll切换页数,是否自动滚动到最上面booleantrue否
hidden是否隐藏分页booleanfalse否
reset切换 pageSize,pageNum 是否重置为 1booleantrue否
total总数number0否
align分页对齐方式"left" | "right"'right'否
layoutConfig分页布局配置string'total, sizes, prev, pager, next, jumper'否

SizeStyle ​

表格样式属性

字段说明类型默认值必填
rowStyle配置 rowStyle。CSSProperties-否
cellStyle配置 cellStyle。CSSProperties-否
headerRowStyle配置 headerRowStyle。CSSProperties-否
headerCellStyle配置 headerCellStyle。CSSProperties-否

ExportProps ​

表格导出类型

字段说明类型默认值必填
mode导出时的表头配置ExportKey | \${ExportKey}``'label'否
fileName导出的文件名string'export-table-时间戳'否
titleElMessageBox.confirm 的 titlestring'请选择导出列'否
optionsElMessageBox.confirm 的 optionsElMessageBoxOptions-否
appContextElMessageBox.confirm 的 appContextAppContext | null-否
exportFile自定义导出为文件(data?: Recordable[]) => void | Promise<void>-否

ColumnSetting ​

表格列配置的配置项

字段说明类型默认值必填
hideDragSort是否禁用拖拽显示booleanfalse否
hideHidden是否禁用隐藏显示booleanfalse否
hideSortable是否禁用排序显示booleanfalse否
hideFilter是否禁用筛选显示booleanfalse否
disabledDragSort是否禁用拖拽排序选择booleanfalse否
disabledHidden是否禁用隐藏选择booleanfalse否
disabledSortable是否禁用排序选择booleanfalse否
disabledFilter是否禁用筛选选择booleanfalse否

BaseSetting ​

表格基础配置项

字段说明类型默认值必填
border是否开启边框booleantrue否
stripe是否开启斑马纹booleanfalse否
headerBackground是否开启表头背景色booleantrue否
highlightCurrentRow是否开启单击高亮当前行booleantrue否
showHeader是否开启显示表头booleantrue否
disabledBorder是否开启禁用边框选择booleanfalse否
disabledStripe是否开启禁用斑马纹选择booleanfalse否
disabledHeaderBackground是否开启禁用表格高亮选择booleanfalse否
disabledHighlightCurrentRow是否开启禁用单击高亮当前行选择booleanfalse否
disabledShowHeader是否开启禁用单显示表头选择booleanfalse否
stickyHeader是否开启固定表头booleantrue否
disabledStickyHeader是否禁用固定表头选择booleanfalse否

LooseTableColumn ​

组件边界使用的宽松表格列配置,擦除具体业务行模型。

字段说明类型默认值必填
children多级表头列配置。LooseTableColumn[]-否
renderHeader表头渲染回调,组件内部按实际列配置收窄后调用。unknown-否
renderHeaderHTML表头 HTML 渲染回调,组件内部按实际列配置收窄后调用。unknown-否
formatLabel表头格式化回调,组件内部按实际列配置收窄后调用。unknown-否
render单元格渲染回调,组件内部按实际列配置收窄后调用。unknown-否
renderHTML单元格 HTML 渲染回调,组件内部按实际列配置收窄后调用。unknown-否
formatValue单元格格式化回调,组件内部按实际列配置收窄后调用。unknown-否
elSlots组件插槽回调,组件内部按实际列配置收窄后调用。unknown-否
elProps展示组件属性,组件内部按实际列配置收窄后调用。unknown-否
transformOption字典选项转换回调,组件内部按实际列配置收窄后调用。unknown-否
beforeFilter过滤前置回调,组件内部按实际列配置收窄后调用。unknown-否

PageField ​

导出 PageField 供业务侧复用。

字段说明类型默认值必填
pageNum当前页数字段string'pageNum'否
pageSize每页数量字段string'pageSize'否
pageSizes分页选择器字段string'pageSizes'否
total总页数字段string'total'否

TableColumn ​

表格列配置

字段说明类型默认值必填
buttons操作按钮集合MaybeRefOrGetter<ButtonRaw[]>-否
showNumber显示出来的按钮个数number | ((row: TableRow, index: number) => number)3否
confirm二次确认配置| boolean<br> | Recordable<br> | Confirm<OperationConfirmEl.ElPopconfirm | \${OperationConfirmEl.ElPopconfirm}`>
| Confirm<OperationConfirmEl.ElMessageBox | `${OperationConfirmEl.ElMessageBox}`>`
-否
width表头宽度MaybeRefOrGetter<string | number>-否
label列名称MaybeRefOrGetter<string>-否
type列类型TableColumnTypeEnum | \${TableColumnTypeEnum}``-否
hidden是否隐藏在表格当中MaybeRefOrGetter<boolean>false否
disabledHidden列配置中是否禁用列隐藏选择MaybeRefOrGetter<boolean>false否
options字典数据FormItemColumnProps["options"]-否
optionsProp指定 Options 的 key,如果设置了则优先从缓存获取对于 key 的 Options 数据string-否
optionCache是否缓存字典数据booleantrue否
optionField字典指定 label && value && children 的 key 值FormItemColumnProps["optionField"]'{ label: "label", value: "value", children: "children", disabled: "disabled" }'否
isFilterOptions当前单元格值是否根据 options 格式化(根据 value 找 label)MaybeRefOrGetter<boolean>true否
ignoreOptionIfAbsent如果 options 里找不到对应的 label,则使用 value 作为 labelMaybeRefOrGetter<boolean>false否
transformOption自定义当前 option 选项(<br> value: unknown,<br> options: ElOption[],<br> row: Recordable,<br> ) => ElOption | undefined-否
renderHeader自定义表头内容渲染(tsx 语法)BivariantCallback<[scope: TableRenderParams<T>], RenderTypes>-否
renderHeaderHTML自定义表头内容渲染(返回 HTML),优先级低于 render,高于插槽BivariantCallback<[scope: TableRenderParams<T>], string>-否
formatLabel自定义表头内容BivariantCallback<<br> [label: unknown, scope: TableRenderParams<T>],<br> string | number<br> >-否
render自定义单元格内容渲染(tsx 语法)BivariantCallback<[scope: TableRenderParams<T>], RenderTypes>-否
renderHTML自定义单元格内容渲染(返回 HTML),优先级低于 render,高于插槽BivariantCallback<[scope: TableRenderParams<T>], string>-否
formatValue自定义单元格内容BivariantCallback<<br> [value: unknown, scope: TableRenderParams<T>],<br> string | number<br> >-否
children多级表头TableColumn<T>[]-否
tooltip表头右侧 ElToolTip 提示FormItemColumnProps["tooltip"]-否
filter是否开启 filter 功能MaybeRefOrGetter<boolean>false否
disabledFilter列配置中是否禁用 filter 功能选择MaybeRefOrGetter<boolean>false否
filterProps表头筛选配置项TableFilterProps-否
beforeFilter过滤前置处理,可以返回新的过滤值或者 false 来阻止过滤(<br> filterValue: unknown,<br> filterModel: Recordable,<br> prop: string | undefined,<br> ) => unknown | false | undefined-否
disabledSortable列配置中是否禁用列排序选择MaybeRefOrGetter<boolean>false否
disabledDragSort列配置中是否禁用列拖拽排序MaybeRefOrGetter<boolean>false否
editable是否开启编辑功能MaybeRefOrGetter<boolean>-否
editProps编辑功能配置项TableEditProps-否
elSlotsel 组件的插槽{<br> [slotName: string]: BivariantCallback<<br> [data: TableRenderParams<T> & Recordable],<br> RenderTypes<br> >;<br> }-否

TableScope ​

表格行 Scope

字段说明类型默认值必填
$index表格行索引number-是
row表格行数据TableRow<T>-是
column表格列数据TableColumn<T>-是
rowIndex表格行索引number-否
cellIndex表格列索引number-是
store表格storeRecordable-是
expanded表格 expandedboolean-是
_self表格 _selfRecordable-是

API 根据当前组件源码生成;同步版本与验证记录见维护说明。