import type { ColumnType } from 'antd/es/table/interface'; import type { TableProps } from 'antd/es/table/Table'; import type { ReactNode } from 'react'; import type { ProFieldProps } from '../pro-field/interface'; export interface ProTableColumnType extends ColumnType, Pick { /** * 异步请求 options */ request?: () => Promise; /** * 下拉、单选、多选等候选项 */ options?: any[]; /** * 标题的提示文案 */ titleTooltip?: ReactNode; /** * td 文字对齐 */ textAlign?: 'left' | 'center' | 'right'; } export interface ProTableColumnGroupType extends Omit, 'dataIndex'> { children: ProTableColumnsType; } export type ProTableColumnsType = (ProTableColumnGroupType | ProTableColumnType)[]; export interface ProTableProps extends Omit, 'columns'> { columns: ProTableColumnsType; onChangeSize?: (size: TableProps['size']) => void; /** * 表格工具栏左上角工具栏 */ tools?: ReactNode; /** * 内置工具,默认全部显示 */ setting?: ('fullScreen' | 'size')[]; /** * 自定义渲染设置区域,setting 为自带的设置操作 */ renderSetting?: (setting: ReactNode) => ReactNode; } export interface ProTableContextState { size?: TableProps['size']; onChangeSize: (size: TableProps['size']) => void; }