import React from 'react'; import { TableProps } from 'antd'; import { ColumnType } from 'antd/lib/table'; import './index.less'; export type DColumnType = ColumnType & { cellEllipsis?: boolean; }; export type DTableSourceProps = { records: TableProps['dataSource']; total: number; loading?: boolean; }; export type TableParamsProps = { current?: number; size?: number; [key: string]: any; }; export type DTableProps = Omit, 'columns'> & { /** 表格列的基础默认配置,默认所有列居中,表头文字超出显示省略号,详见 antd columns */ defaultColumnProps?: DColumnType; /** 操作列配置,可以是一个普通列配置对象,也可以是一个columns的 render 函数 */ actionColumn?: DColumnType | DColumnType['render']; /** 表格数据的加载函数,在表格创建、分页变化、额外参数变化时自动运行,如果设置该属性,则 dataSource 失效 */ loadMore?: (params?: TableParamsProps, records?: DTableSourceProps['records']) => Promise; /** 加载数据失败时是否显示错误信息(仅loadMore可用时生效) */ showErrorMsg?: boolean | ((err: any) => string); /** 额外的请求参数,(仅loadMore可用时生效) */ extraParams?: TableParamsProps; /** 表格列配置 */ columns?: DColumnType[]; }; export type DTableRef = { /** 手动刷新列表方法 * @param params 可选的新参数,如果不传则使用现有参数 */ refresh: (_params?: TableParamsProps) => void; /** 手动刷新列表到指定页数方法 * @param page 指定页数 */ refreshToPage: (_page: number) => void; /** 获取当前分页信息 */ getPaginationState: () => { current: number; size: number; total: number; }; }; declare const DTable: React.ForwardRefExoticComponent, "columns"> & { /** 表格列的基础默认配置,默认所有列居中,表头文字超出显示省略号,详见 antd columns */ defaultColumnProps?: DColumnType | undefined; /** 操作列配置,可以是一个普通列配置对象,也可以是一个columns的 render 函数 */ actionColumn?: DColumnType | DColumnType['render']; /** 表格数据的加载函数,在表格创建、分页变化、额外参数变化时自动运行,如果设置该属性,则 dataSource 失效 */ loadMore?: ((params?: TableParamsProps, records?: DTableSourceProps['records']) => Promise) | undefined; /** 加载数据失败时是否显示错误信息(仅loadMore可用时生效) */ showErrorMsg?: boolean | ((err: any) => string) | undefined; /** 额外的请求参数,(仅loadMore可用时生效) */ extraParams?: TableParamsProps | undefined; /** 表格列配置 */ columns?: DColumnType[] | undefined; } & React.RefAttributes>; export default DTable;