Skip to content

ProPage 页面表格 ​

组合 ProSearch 与 ProTable 的页面级查询列表组件。

基础示例 ​

组合搜索表单、表格和分页。

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

搜索与操作 ​

展示查询条件、操作列和接口请求参数。

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

引入方式 ​

ts
import { ProPage } from "@/components/pro/page";

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>-否
pageScope是否开启分页功能,可以指定客户端(前端)分页还是服务端(后端)分页,当为 true 时,默认为客户端(前端)分页boolean | Environment | \${Environment}``true否
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[]'el-icon'否
initNativeRowField是否初始化部分加强属性到 scope.row 里booleanfalse否
toolButton按钮显示数组boolean | (ToolButtonEnum | \${ToolButtonEnum}`)[]`true否
disabledToolButton按钮禁用数组(ToolButtonEnum | \${ToolButtonEnum}`)[]`'[]'否
size表格密度TableSizeEnum | \${TableSizeEnum}``'default'否
sizeStyle自定义不同尺寸的 rowStyle、cellStyle、headerCellStylePartial<Record<TableSizeEnum, SizeStyle>>-否
title表格标题string-否
exportProps表格导出配置ExportProps-否
tooltipPropsElTable PropsPartial<ElTooltipProps>() => defaultTooltipProps否
columnSetting表格列配置ColumnSetting-否
baseSetting表格基础配置BaseSetting-否
columns列配置项MaybeRef<LooseTableColumn[]>[]否
requestApi请求表格数据的请求(params: Recordable) => Promise<unknown>-否
defaultRequestParams默认请求参数(请求一定会携带)MaybeRef<Recordable>-否
requestParams请求参数MaybeRef<Recordable>-否
initRequestParams初始化请求参数(重置时恢复为初始化参数)MaybeRef<Recordable>-否
requestImmediate是否立即执行请求booleantrue否
beforeSearch查询数据前的回调函数,可以对查询参数进行处理或禁止查询(searchParams: Recordable) => false | Recordable-否
requestError请求失败回调(error: unknown) => void-否
transformData对请求成功的数据进行处理(data: Recordable[], result?: unknown) => unknown-否
hideHead是否隐藏表格顶部栏booleanfalse否
controlHeadColumn是否显示控制表格顶部栏的图标列booleanfalse否
controlHeadColumnProps控制表格顶部栏图标列(ElTableColumn)的 PropsLooseTableColumn-否
card是否使用卡片样式booleantrue否
pageField分页信息 key 名配置PageField-否
rowStyleElTable 的 rowStyle 配置项TableProps<object>["rowStyle"]-否
cellStyleElTable 的 cellStyle 配置项TableProps<object>["cellStyle"]-否
headerRowStyleElTable 的 headerRowStyle 配置项TableProps<object>["headerRowStyle"]-否
borderElTable 的 border 配置项TableProps<object>["border"]true否
stripeElTable 的 stripe 配置项TableProps<object>["stripe"]-否
showHeaderElTable 的 showHeader 配置项TableProps<object>["showHeader"]true否
highlightCurrentRowElTable 的 highlightCurrentRow 配置项TableProps<object>["highlightCurrentRow"]true否
loading表格 Loading 状态(直接传入 data 时使用)boolean-否
searchProps搜索项配置Omit<ProSearchProps, "columns">{}否
initShowSearch初始化时是否显示搜索模块MaybeRefOrGetter<boolean>true否
defaultValues默认搜索参数,优先级低于 column.defaultValueRecordable{}否

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[]
search搜索事件model: Recordable
reset重置事件model: Recordable
validateElForm 验证触发事件prop: FormItemProp, isValid: boolean, message: string
change表单值改变事件value: unknown, model: Recordable, column: FormItemColumnProps
searchRegisterProSearch 的注册事件proFormInstance: ProSearchInstance | null
tableRegisterProTable 的注册事件proTableInstance: ProTableInstance | null, elTableInstance: TableInstance | null

Slots ​

插槽名说明参数
actionaction 内容插槽。-

Expose ​

名称说明类型
searchParams当前查询参数。-
searchDefaultParams暴露 searchDefaultParams 给外部调用。-
proSearchInstance暴露 proSearchInstance 给外部调用。-
proTableInstance暴露 proTableInstance 给外部调用。-
search按当前条件查询数据。-
reset重置组件状态。-
toggleCollapse暴露 toggleCollapse 给外部调用。-
getTableData暴露 getTableData 给外部调用。-
getPageInfo暴露 getPageInfo 给外部调用。-
setSearchParams暴露 setSearchParams 给外部调用。-
clearSearchParams暴露 clearSearchParams 给外部调用。-
clearSelection暴露 clearSelection 给外部调用。-

Module API ​

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

Types ​

ProPageProps ​

导出 ProPageProps 供业务侧复用。

字段说明类型默认值必填
editable是否开启编辑功能,或指定编辑功能触发方式MaybeRefOrGetter<boolean | "click" | "dblclick">-否
optionsMap字典枚举OptionsMapType-否
data表格数据object[]'[]'否
rowKey行主键TableProps<object>["rowKey"]'id'否
operationProp操作列的 propstring'operation'否
operationProps操作列 propsPartial<OperationNamespace.Props>-否
pageInfo分页信息Partial<PageInfo>-否
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[]'el-icon'否
initNativeRowField是否初始化部分加强属性到 scope.row 里booleanfalse否
toolButton按钮显示数组boolean | (ToolButtonEnum | \${ToolButtonEnum}`)[]`'["size", "setting", "export"]'否
disabledToolButton按钮禁用数组(ToolButtonEnum | \${ToolButtonEnum}`)[]`'[]'否
size表格密度TableSizeEnum | \${TableSizeEnum}``'default'否
sizeStyle自定义不同尺寸的 rowStyle、cellStyle、headerCellStylePartial<Record<TableSizeEnum, SizeStyle>>-否
title表格标题string-否
exportProps表格导出配置ExportProps-否
tooltipPropsElTable PropsPartial<ElTooltipProps>-否
columnSetting表格列配置ColumnSetting-否
baseSetting表格基础配置BaseSetting-否
columns列配置项MaybeRef<LooseTableColumn[]>'[]'否
requestApi请求表格数据的请求(params: Recordable) => Promise<unknown>-否
defaultRequestParams默认请求参数(请求一定会携带)MaybeRef<Recordable>-否
requestParams请求参数MaybeRef<Recordable>-否
initRequestParams初始化请求参数(重置时恢复为初始化参数)MaybeRef<Recordable>-否
requestImmediate是否立即执行请求booleantrue否
beforeSearch查询数据前的回调函数,可以对查询参数进行处理或禁止查询(searchParams: Recordable) => false | Recordable-否
requestError请求失败回调(error: unknown) => void-否
transformData对请求成功的数据进行处理(data: Recordable[], result?: unknown) => unknown-否
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"]-否
stripeElTable 的 stripe 配置项TableProps<object>["stripe"]-否
showHeaderElTable 的 showHeader 配置项TableProps<object>["showHeader"]-否
highlightCurrentRowElTable 的 highlightCurrentRow 配置项TableProps<object>["highlightCurrentRow"]true否
loading表格 Loading 状态(直接传入 data 时使用)boolean-否
searchProps搜索项配置Omit<ProSearchProps, "columns">-否
initShowSearch初始化时是否显示搜索模块MaybeRefOrGetter<boolean>-否
defaultValues默认搜索参数,优先级低于 column.defaultValueRecordable-否

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'否

ProSearchProps ​

导出 ProSearchProps 供业务侧复用。

字段说明类型默认值必填
columns搜索配置列SearchColumn[]-否
positionAction 位置,block 代表换行ActionPositionright否
showAction是否展示操作按钮booleantrue否
showSearch是否展示搜索按钮booleantrue否
showReset是否展示重置按钮booleantrue否
showCollapse是否展示折叠功能booleantrue否
searchText搜索按钮的文字string'搜索'否
resetText重置按钮的文字string'重置'否
collapseText展开按钮的文字string'展开'否
expandText折叠按钮的文字string'折叠'否
searchLoading搜索按钮的 loadingbooleanfalse否
resetLoading重置按钮的 loadingbooleanfalse否
searchCols响应式布局GridProps["cols"]'{ xs: 1, sm: 2, md: 2, lg: 3, xl: 4 }'否
gap行和列间距GridProps["gap"]'[20, 0]''否
collapse是否默认折叠搜索项GridProps["collapse"]true否
showRow超出指定行数后折叠GridProps["showRow"]1否
removeNoValue是否自动去除表单数据的空值项booleantrue否
validate是否校验表单组件booleantrue否
showLabel是否显示 label,优先级低于 FormItemColumnProps["showLabel"]ProFormNamespace.Props["showLabel"]true否
formProForm 组件 PropsProFormNamespace.Props-否
collapseTransition是否开启折叠动画GridItemProps["collapseTransition"]true否
collapseDuration折叠动画持续时长(单位:ms)GridItemProps["collapseDuration"]300否

ProPageEmits ​

导出 ProPageEmits 供业务侧复用。

字段说明类型默认值必填
formChange表单值改变事件[fromValue: unknown, prop: NonNullable<TableColumn["prop"]>, scope: TableScope]-是
filterClear清空事件,返回输入的 prop[prop: 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单元格点击事件[<br> row: TableRow,<br> column: TableColumn,<br> cell: HTMLTableCellElement,<br> event: Event,<br> ]-是
cellDblClick单元格双击事件[<br> row: TableRow,<br> column: TableColumn,<br> cell: HTMLTableCellElement,<br> event: Event,<br> ]-是
leaveCellEdit离开单元格编辑事件[row: TableRow, column: TableColumn]-是
filter过滤事件,返回输入的值以及 prop[filterModel: Recordable, filterValue: unknown, prop: string]-是
refresh刷新按钮点击事件[]-是
sizeChange密度选择事件[size: TableSizeEnum, sizeStyle: SizeStyle]-是
printer打印按钮点击事件[selectedList?: Recordable[], selectedListIds?: string[]]-是
search搜索事件[model: Recordable]-是
reset重置事件[model: Recordable]-是
validateElForm 验证触发事件[prop: FormItemProp, isValid: boolean, message: string]-是
change表单值改变事件[value: unknown, model: Recordable, column: FormItemColumnProps]-是
searchRegisterProSearch 的注册事件[proFormInstance: ProSearchInstance | null]-是
tableRegisterProTable 的注册事件[proTableInstance: ProTableInstance | null, elTableInstance: TableInstance | null]-是

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> }-否

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