跳到主要内容

ProTable - 高级表格

ProTable 是 Antd ProTable 和 ModalForm 的结合,并且融入了删除,前端导出等功能。更加贴合实际场景。

如果你之前并不熟悉 ProTable 的 api,完全可以直接看例子来开始使用。

一个基本的 CRUD 表格​

这是一个基本的 CRUD 表格,包含了 查询,新建,编辑,删除。初次接触 ProTable 的用户可能会遇到很多陌生的 api,让人感觉很不舒服,没关系,我们会通过几个例子慢慢展开。

用户列表
用户名电话昵称性别创建日期操作
暂无数据
暂无数据

查询​

先来认识一下 request 属性。通过传入一个请求函数,ProTable 就帮我们做好了数据请求,分页,查询,重置等功能。请求函数必须返回一个 promise (一般是一个 axios 实例),并且 promise 中返回的数据需要满足下面的要求:

// Promise回返的数据格式
{
data: [], // 表格数据源
success: true,
total: 6 // 用于分页
}
<ProTable
request={(params) => requestApi(params)}
...
/>

请求函数的第一个参数 params 会包含分页,搜索等请求参数:

{
current: 2,
pageSize: 5,
... // 其它搜索字段
}

用户可以与后台约定好这些请求参数和返回格式,也可以自已在全局包装一下后传给后台。

用户名电话昵称性别创建日期
暂无数据
暂无数据

新增​

接上一个例子,我们先来添加一个新增按钮。

ProTable 内部规划了多个区域用于放置不同的按钮,用户只要在相应的 api 上配置按钮就可以了。这么做一方面能让各表格的功能区域保持清晰统一,另一方面对于终端用户来说也能减少他们对表格操作的熟悉成本。

protable各区域的划分,红色字是大区块, 分成search, toolbar, tableAlert等区域. toolbar大块里还包含actions小块

上图中的红色字是大区块,大区块里还包含黑色的小区块。对于新增按钮来说,可以加到 toolbar 大区块里的 actions 小区块里(也可以加到 title 里)。

<ProTable
toolbar={{
actions: [
<Button
key={1}
type="primary"
>
新增
</Button>,
],
}}

添加了按钮之后,通过 innerRef.current.openModal() 就能打开表单。

<ProTable
innerRef={innerRef}
toolbar={{
actions: [
<Button
key={1}
type="primary"
onClick={() => innerRef.current.openModal()}
>
新增
</Button>,
],
}}

最后设置 onFinish 属性就完成了表单的新增。

<ProTable
columns={getColumns()}
request={mockRequest}
pagination={{ pageSize: 5 }}
innerRef={innerRef}
toolbar={{
actions: [
<Button
key={1}
type="primary"
onClick={() => innerRef.current?.openModal()}
>
新增
</Button>,
],
}}
onFinish={async (values, formType) => {
if (formType === 'new') {
await mockAdd(values);
message.success('新建成功');
actionRef.current?.reload(); // 新增成功后用 actionRef 重新请求接口
}
}}
/>
用户名电话昵称性别创建日期
暂无数据
暂无数据

编辑​

接上一个例子,要实现编辑功能,可以在 columns 里增加一个操作列来添加编辑按钮。

// columns
{
title: '操作',
valueType: 'option', // valueType 设为 option 代表是操作列
render: (text, record, index, actionRef, innerRef) => [
<LinkButton
key={1}
onClick={() => innerRef.current?.openModal('edit', record)}
>
编辑
</LinkButton>,
],
},

当 valueType 为 option 时,render 函数会被自动注入 innerRef 参数,通过 innerRef 就可以打开编辑弹框并且对表单赋值。

编辑弹框打开后我们继续完善 onFinish 中的更新部分:

<ProTable
...
onFinish={async (values, formType, formData) => {
if (formType === 'new') {
await mockAdd(values);
message.success('新建成功');
actionRef.current?.reload();
}

if (formType === 'edit') {
await mockUpdate({ ...values, id: formData.id });
message.success('更新成功');
actionRef.current?.reload();
}
}}
/>

从 11 行我们注意到,更新接口除了需要表单值以外,还需要额外传递记录 id 给后台。

我们先来看一下 onFinish 的三个参数:

  • values - 表单收集到的值。
  • formType - 表单类型('new' 或 'edit')
  • formData - 赋给表单的初始值(里面包含 id)

这个 formData 其实就是 innerRef.current?.openModal('edit', record) 里的 record。

因此 id 可以从 formData 里取。

用户名电话昵称性别创建日期操作
暂无数据
暂无数据

删除​

删除功能与上文中的 request 属性非常相似,ProTable 提供了一个 delFunction 属性,只需要传入一个删除函数,ProTable 就帮我们做好了批量删除和行上删除的功能,

删除函数同样返回一个 promise,参数是所选行的 ids 数组。

要支持批量删除还需要开启行选择功能。

<ProTable
...
delFunction={mockDetroy}
rowSelection={{}}
/>

行上删除的功能默认是关闭的,是为了节省列的横向空间,可以在 columns 里单独开启。

// columns
{
title: '操作',
valueType: 'option', // valueType 设为 option 代表是操作列
render: (text, record, index, actionRef, innerRef) => [
<LinkButton
key={1}
onClick={() => innerRef.current?.openModal('edit', record)}
>
编辑
</LinkButton>,
],
// boolean
enableDelete: true,
// 或者是函数
enableDelete: () => ({
disabled: true,
visible: true,
danger: true,
btnText: '关闭'
}),
},
用户名电话昵称性别创建日期操作
暂无数据
暂无数据

以上就是一个完整的 CRUD 表格 ✨。

基本概念​

valueType​

ProTable 同样支持 valueType,只是与 SchemaForm 不同的是,ProTable 的 valueType 主要是用于显示。比如当指定 date 类型时,当后台返回一个时间戳时,表格中会自动显示成时间。

datedateTimedateRangemoney
暂无数据
暂无数据

renderText 与 render 的区别​

在 ProTable 的 column 里 render 跟 renderText 很容易混淆。

renderText更接近于 Antd Table 的 render,但是必需返回 string。最终在表格上显示的时候会把省略号,复制图标(如果有)等内容拼接上去。

render可以完全自定义内容的显示。但是它的第一个参数是 dom 而不是 text,这个需要注意。这个 dom 里包含了省略号和复制图标(如果有)等内容。

用户名电话
暂无数据
暂无数据

搜索区域的配置项​

column 里的 hideInSearch 字段用于控制是否在搜索表单里隐藏。或者用 search: false。两者等效。

{
title: '昵称',
dataIndex: 'nickName',
hideInSearch: true, // 在搜索表单里隐藏
search: false, // 在搜索表单里隐藏
}

也可以在组件级别关闭搜索区域。

<ProTable search={false} />

或者配置搜索区域:

<ProTable
search={{
labelWrap: true, // 过长换行
defaultCollapsed: false, // 默认展开
}}
/>
用户列表
很长很长很长的用户名电话昵称性别创建日期
暂无数据
暂无数据

type 用于区分各区域​

在 ProTable 组件中同一份 columns 既会被用于生成 Table,也有可能被用于生成 Form 又或者 Search。原来我们用 hideInSearch,hideInTable,hideInForm 来控制 column 在各区域的显示与隐藏,但是当 column 变多之后这种反向控制的逻辑就不太好理解,所以我们新增了 type 字段 form | table | search 来正向控制 column 显示在哪个区域,比如 type: search 代表该 column 只会显示在搜索区域。

type: search 的优先级最高, 会覆盖 hideInSearch: true 和 search: false

同时 ProTable 新增了 defaultHideInSearch 属性来全局控制 column 是否默认显示在搜索区域。

用户列表
用户名创建日期操作
暂无数据
暂无数据

搜索表单的关联控制​

用户列表
用户昵称
暂无数据
暂无数据

受控表单​

不想使用 request?那就传入 dataSource 当成普通 table 来使用。同样集成了新增编辑功能。

受控列表
用户名电话操作
王先生1596668888

导出表格数据​

可以使用 exceljs 来导出表格数据。组件已经对数据进行了处理,只需传入 ExcelJS 对象就可以轻松导出。

使用前需要先在自已的项目中安装 exceljs:

npm i exceljs --save

在页面中导入 exceljs:

import * as ExcelJS from 'exceljs';

通过 innerRef.current?.export(rows, ExcelJS) 进行导出。参考示例。

用户列表
用户名生日性别类型会员范围状态创建日期
暂无数据
暂无数据
用户列表
用户名生日性别类型会员范围状态创建日期
暂无数据
暂无数据

更改删除确认框的类型和文字​

用户名电话昵称性别创建日期操作
暂无数据
暂无数据

弹窗相关​

更改弹窗表单的布局​

通过 modalFormProps 属性可以透传 ModalForm 中的属性。

用户列表
用户名电话昵称性别身份证号操作
暂无数据
暂无数据

弹窗只读模式​

innerRef.current?.openModal('read', initialData)

用户列表
用户名电话昵称是否会员操作
暂无数据
暂无数据

表单数据​

onOpen 请求数据后回显​

点击编辑时请求接口后回显。新击新增时不请求。

用户列表
用户名电话操作
暂无数据
暂无数据

约定式​

与 SchemaForm 一样,ProTable 同样支持约定式数据处理。

用户列表
用户名部门会员会员等级操作
暂无数据
暂无数据

利用 innerRef 存储额外信息​

与 SchemaForm 一样,ProTable 也能利用 innerRef 存储额外数据。

序号员工部门操作
暂无数据
暂无数据

API​

ProTable​

ProTable 类型是 ProTableSelfType 和 ProTableOriginType 的结合。

ProTableSelfType​

属性名描述类型默认值
columns表格或表单的配置描述;(必选)
request获取 dataSource 的方法;((params: any, sort: Record<string, SortOrder>, filter: Record<string, (string | number)[] | null>) => Promise<Partial<RequestData<any>>>)--
actionRef用于手动触发 table 的一些操作,比如 reload, reset 等;--
innerRef一个工具类 ref,包含了一些方法和属性;--
name用于 table 的 headerTitle 的显示, 还有弹出框的 title 显示; 可以配合 locale 修改文案。string--
onFinish点击弹窗确定按钮后的回调;(values, formType, formData) => Promise | void--
onOpen打开弹框后的回调, 可以在这里请求数据;(formType, formRef, formData) => Promise | void--
delFunction传入的删除函数;((selectedIds: (string | number)[], record: any) => void | Promise<any>)--
delPermission是否有删除权限; 不传默认为有;(() => boolean)--
tableAlertOption多选删除功能的选项;--
tableAlertOptionRender自定义 table alert 右侧区域;false | ((option: { selectedRowKeys: any[]; selectedRows: any[]; onCleanSelected: () => void; }, doms: { delDom?: ReactNode; cancelDom: ReactNode; }) => ReactNode)--
modalFormProps传递给 ModalForm 组件的属性。
Omit<ModalFormProps, 'innerRef' | 'onFinish' | 'onOpen' | 'columns'>
--
noPadding移除 Card 包裹的 padding; 已废弃; 用 cardStyle = false 替代;boolean--
delConfirmType删除的确认弹框类型。"popconfirm" | "modal"popconfirm
delPopconfirmProps传给删除确认框的属性。title 和 description 可以是函数;(Omit<PopconfirmProps, "title" | "description"> & { title?: ReactNode | ((record: any, index: any) => ReactNode); description?: ReactNode | ((record: any, index: any) => ReactNode); })--
delModalConfirmProps传给删除确认框的属性。title 和 content 可以是函数;(Omit<ModalFuncProps, "title" | "content"> & { title?: ReactNode | ((record: any, index: any) => ReactNode); content?: ReactNode | ((record: any, index: any) => ReactNode); })--
delSuccessProps删除成功后的提示属性(传递给 Message 的属性)。false 关闭提示。{content: "删除成功", type: "success"}
search搜索区域的选项;
false | {labelWrap?: boolean} & SearchConfig
--
optionColumnSpaceProps传给操作列中包裹各按钮的 Space 组件的属性。{size: 'small'}
defaultHideInSearchcolumns 中的列是否默认在搜索区域里隐藏。booleanfalse
rakLocale用于修改 headerTitle 的后缀文案和 formType 等对应的文案。LocaleTypezh_CH
formColumns弹框中的表单项。FormColumnType[]columns

ProTableOriginType​

属性名描述类型默认值
rowSelection选择项配置false | (TableRowSelection<any> & { alwaysShowAlert?: boolean; }) | undefined--
scroll--({ x?: string | number | true; y?: string | number | undefined; } & { scrollToFirstRowOnChange?: boolean | undefined; }) | undefined--
classNames--TableClassNamesType<any>--
styles--TableStylesType<any>--
indentSize--number--
title--PanelRender<any>--
prefixCls--string--
className--string--
style--CSSProperties--
rowKey--string | number | symbol | GetRowKey<any>--
tableLayout--TableLayout--
expandableConfig expand rowsExpandableConfig<any>--
rowClassName--string | RowClassName<any>--
footer--PanelRender<any>--
summary--((data: readonly any[]) => ReactNode)--
caption--ReactNode--
id--string--
showHeader--boolean--
components--TableComponents<any>--
onRow--GetComponentProps<any>--
onHeaderRow--GetComponentProps<readonly ColumnType<any>[]>--
direction--Direction--
sticky--boolean | TableSticky--
rowHoverable--boolean--
onScroll--UIEventHandler<HTMLDivElement>--
measureRowRenderInternal usage, may remove by refactor.((measureRow: ReactNode) => ReactNode)--
dropdownPrefixCls--string--
dataSource--readonly any[]--
pagination--false | TablePaginationConfig--
loading--boolean | SpinProps--
size--SizeType--
bordered--boolean--
locale--TableLocale--
rootClassName--string--
onChange--((pagination: TablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: SorterResult<any> | SorterResult<...>[], extra: TableCurrentDataSource<...>) => void)--
getPopupContainer--GetPopupContainer--
sortDirections--SortOrder[]--
showSorterTooltip--boolean | SorterTooltipProps--
virtual--boolean--
toolbarListToolBar 的属性ListToolBarProps--
ghost幽灵模式,即是否取消卡片内容区域的 padding 和 卡片的背景颜色。boolean--
paramsrequest 的参数,修改之后会触发更新any--
columnsStateMap列状态配置,可以配置是否浮动和是否展示Record<string, ColumnsState>--
onColumnsStateChange列状态配置修改触发事件((map: Record<string, ColumnsState>) => void)--
columnsState列状态的配置,可以用来操作列功能ColumnStateType--
onSizeChange--((size: DensitySize) => void)--
cardPropstable 外面卡片的设置false | CardProps--
tableRender渲染 table((props: ProTableProps<any, any, "text">, defaultDom: Element, domList: { toolbar: Element; alert: Element | undefined; table: Element | undefined; }) => ReactNode) | undefined--
tableViewRender渲染 table 视图,用于定制 ProList,不推荐直接使用((props: TableProps<any>, defaultDom: Element) => Element) | undefined--
tableExtraRendertable 和搜索表单之间的 dom 渲染((props: ProTableProps<any, any, "text">, dataSource: any[]) => ReactNode)--
searchFormRender渲染搜索表单((props: ProTableProps<any, any, "text">, defaultDom: Element) => ReactNode)--
postData对数据进行一些处理any--
defaultData默认的数据any[]--
formRef操作自带的 formMutableRefObject<ProFormInstance> | undefined--
toolBarRender渲染操作栏false | ((action: ActionType, rows: { selectedRowKeys?: (string | number)[] | undefined; selectedRows?: any[] | undefined; }) => ReactNode[]) | undefined--
optionsRender--((props: ToolBarProps<any>, defaultDom: ReactNode[]) => ReactNode[])--
onLoad数据加载完成后触发((dataSource: any[]) => void)--
onLoadingChangeloading 被修改时触发,一般是网络请求导致的((loading: boolean | SpinProps) => void) | undefined--
onRequestError数据加载失败时触发((e: Error) => void)--
polling是否轮询 ProTable 它不会自动提交表单,如果你想自动提交表单的功能,需要在 onValueChange 中调用 formRef.current?.submit()number | ((dataSource: any[]) => number)--
tableClassName给封装的 table 的 classNamestring--
tableStyle给封装的 table 的 styleCSSProperties--
headerTitle左上角的 titleReactNode--
tooltip标题旁边的 tooltipLabelTooltipType--
options操作栏配置false | OptionConfig--
dateFormatter暂时只支持 dayjs - string 会格式化为 YYYY-DD-MM - number 代表时间戳false | "string" | "number" | (string & {}) | ((value: Dayjs, valueType: string) => string | number)--
beforeSearchSubmit格式化搜索表单提交数据((params: Partial<any>) => any)--
tableAlertRender设置或者返回false 即可关闭AlertRenderType<any>--
type支持 ProTable 的类型ProSchemaComponentTypes--
onReset重置表单时触发(() => void)--
columnEmptyText空值时显示ProFieldEmptyText--
manualRequest是否手动触发请求boolean--
editable编辑行相关的配置RowEditableConfig<any>--
onDataSourceChange可编辑表格修改数据的改变((dataSource: any[]) => void)--
cardBordered查询表单和 Table 的卡片 border 配置Bordered--
debounceTime去抖时间number--
revalidateOnFocus只在request 存在的时候生效,可编辑表格也不会生效booleanfalse
defaultSize默认的表格大小SizeType--
ErrorBoundary错误边界自定义false | ComponentClass<any, any>--

InnerRefType​

属性名描述类型默认值
params查询参数。any--
total总条数。number--
dataSource表格数据。any--
export导出表格数据。(rows: any, ExcelJS: any, options?: { beforeExport?: ((worksheet: any) => void) | undefined; filename?: string | undefined; } | undefined) => void(必选)
openModal用于打开弹窗; formType 可用于在 onFinish 的时候判断表单类型;(formType?: FormType | undefined, initialValues?: object | null | undefined, cb?: (() => void) | undefined) => void(必选)
formType当前的表单类型FormType--
data可以存储一些额外数据Record<string, any>(必选)
setData存入数据; setData 和 react 的 setState 一样, 只需要传入关心的字段就可以, 不会覆盖其它的字段。(values: Record<string, any>) => void(必选)

TableAlertOptionType​

属性名描述类型默认值
enableDelete是否开启 alert 上的删除boolean | ((selectedRowKeys: any[], selectedRows: any[]) => boolean | EnableDeleteType)true
delPopconfirmProps传给 alert 上删除确认框的属性。title 和 description 可以是函数;(Omit<PopconfirmProps, "title" | "description"> & { title?: ReactNode | ((selectedRowKeys: any[], selectedRows: any[]) => ReactNode); description?: ReactNode | ((selectedRowKeys: any[], selectedRows: any[]) => ReactNode); })--
delModalConfirmProps传给 alert 上删除确认框的属性。title 和 content 可以是函数;(Omit<ModalFuncProps, "title" | "content"> & { title?: ReactNode | ((selectedRowKeys: any[], selectedRows: any[]) => ReactNode); content?: ReactNode | ((selectedRowKeys: any[], selectedRows: any[]) => ReactNode); })--
spaceProps传递给 alert 中包裹各按钮的 Space 组件的属性。{size: 'middle'}

TableColumnType​

由于 ProTable 的 columns 既能用于生成 Table 也能用于生成 Form,因此 TableColumnType 类型其实是 TableColumnSelfType,TableColumnOriginType 和 FormColumnType 的结合。

TableColumnSelfType​

属性名描述类型默认值
enableDelete是否开启操作列上的删除boolean | ((record: any, index: number) => boolean | (EnableDeleteType & { btnIndex?: number; })) | undefined--
renderExport定义导出((text: string | number, record: any) => string | number)--
render给 render 方法注入 innerRef((dom: ReactNode, record: any, index: number, action: ActionType, innerRef: InnerRef) => any)--
type用于指定该 schema 是被用于表单还是表格"search" | "form" | "table"--
children套嵌表格TableColumnType<any, "text">[]--

TableColumnOriginType​

属性名描述类型默认值
title支持 ReactNode 和 方法ReactNode | ((schema: ProSchema<any, Omit<ColumnType<any>, "title" | "children" | "render" | "filters" | "onFilter" | "sorter"> & { sorter?: string | boolean | CompareFn<...> | { ...; }; } & { ...; }, ProSchemaComponentTypes, "text", { ...; }>, type: ProSchemaComponentTypes, dom: ReactNode) => ReactNode)--
className--string--
sortDirections--SortOrder[]--
showSorterTooltip--boolean | SorterTooltipProps--
search在查询表单中隐藏boolean | { transform: SearchTransformKeyFn; }--
request从服务器请求枚举ProFieldRequestData<any>--
params从服务器请求的参数,改变了会触发 reloadRecord<string, any> | ((record: any, column: ProSchema<any, Omit<ColumnType<any>, "title" | "children" | "render" | "filters" | "onFilter" | "sorter"> & { ...; } & { ...; }, "form", "text", unknown>) => Record<...>)--
tooltip展示一个 icon,hover 是展示一些提示信息LabelTooltipType--
debounceTimerequest防抖动时间 默认10 单位msnumber--
filters表头的筛选菜单项boolean | ColumnFilterItem[]--
onFilter筛选的函数,设置为 false 会关闭自带的本地筛选boolean | ((value: boolean | Key, record: any) => boolean)--
sorter--string | boolean | CompareFn<any> | { compare?: CompareFn<any>; multiple?: number | undefined; } | undefined--
colSpan--number--
dataIndex支持一个数字,[a,b] 会转化为 obj.a.bany--
shouldCellUpdate--((record: any, prevRecord: any) => boolean)--
rowSpan--number--
width--string | number--
minWidth--number--
onCell--GetComponentProps<any>--
onCellClickPlease use `onCell` instead((record: any, e: MouseEvent<HTMLElement, MouseEvent>) => void)--
key确定这个列的唯一值,一般用于 dataIndex 重复的情况Key--
hidden--boolean--
fixed--FixedType--
onHeaderCell--GetComponentProps<ColumnType<any> | ColumnGroupType<any>>--
ellipsis是否缩略CellEllipsisType--
align--AlignType--
rowScope--RowScopeType--
sortOrder--SortOrder--
defaultSortOrder--SortOrder--
sortIcon--((props: { sortOrder: SortOrder; }) => ReactNode)--
filtered--boolean--
filterDropdown--ReactNode | ((props: FilterDropdownProps) => ReactNode)--
filterOnClose--boolean--
filterMultiple--boolean--
filteredValue--FilterValue | null--
defaultFilteredValue--FilterValue | null--
filterIcon--ReactNode | ((filtered: boolean) => ReactNode)--
filterMode--"menu" | "tree"--
filterSearch--FilterSearchType<ColumnFilterItem>--
filterDropdownPropsCan cover `<Dropdown>` propsCoverableDropdownProps--
filterResetToDefaultFilteredValue--boolean--
responsive--Breakpoint[]--
tip--string--
valueEnum支持 object 和Map,Map 是支持其他基础类型作为 keyProSchemaValueEnumObj | ProSchemaValueEnumMap | ((row: any) => ProSchemaValueEnumObj | ProSchemaValueEnumMap)--
formItemProps自定义的 formItemProps(FormItemProps<any> & { lightProps?: LightWrapperProps; }) | ((form: FormInstance<any>, config: { key?: Key | undefined; ... 19 more ...; proFieldProps?: (ProFieldProps & Record<...>) | undefined; } & ... 4 more ... & { ...; }) => FormItemProps<...> & { ...; }) | undefined--
renderText修改的数据是会被 valueType 消费((text: any, record: any, index: number, action: ProCoreActionType<{}>) => any)--
dependencies依赖字段的name,暂时只在拥有 request 的项目中生效,会自动注入到 params 中any[]--
ignoreFormItem忽略 FormItem,必须要和 renderFormItem 组件一起使用boolean--
hideInDescriptions在 descriptions 隐藏boolean--
hideInForm在 Form 中隐藏boolean--
hideInTable在 table 中隐藏boolean--
hideInSearch在 table的查询表单 中隐藏boolean--
proFieldProps设置到 ProField 上面的 Props,内部属性(ProFieldProps & Record<string, any>)--
index--number--
colSize每个表单占据的格子大小number--
initialValue搜索表单的默认值any--
copyable是否拷贝boolean--
hideInSetting不在配置工具中显示boolean--
orderForm 的排序number--
listKey--string--
readonly只读boolean--
disable列设置的 disabledboolean | { checkbox: boolean; }--
valueType--ProFieldValueType | { type: "money"; status?: "normal" | "active" | "success" | "exception"; locale?: string | undefined; showSymbol?: boolean | ((value: any) => boolean) | undefined; ... 4 more ...; width?: number | undefined; } | ... 4 more ... | undefined--

FormColumnType​

EnableDeleteType​

属性名描述类型默认值
disabled操作列中的删除按钮是否禁用。boolean--
visible操作列中的删除按钮是否可见。boolean--
danger操作列中的删除按钮的 danger 属性。boolean--
btnText操作列中的删除按钮的文字。string--

全局事件​

事件名描述说明
@proTableReload组件注册了一个 reload 事件, 可以通过 document.dispatchEvent(new Event('@proTableReload')) 方法来触发表格刷新. 新增这个 reload 事件是希望能在其它的兄弟页面来触发表格页面的刷新, 比如在一些缓存场景, 新增页面提交成功后能够通过这个事件来触发表格页面的刷新.v1.0.0