import { TableColumnCtx } from '../../../../scripts/build/node_modules/element-plus'; import { ColumnProps, SuperFormItemProps } from '../../../types'; export interface Pageable { pageNum: number; pageSize: number; total: number; } export interface PaginationProps { pageable: Pageable; layout?: string; handleSizeChange: (size: number) => void; handleCurrentChange: (currentPage: number) => void; } export interface TableColumnProps { column: ColumnProps; currentRowIndex?: number; currentColumnIndex?: number; ifDblclick?: boolean; isValidate?: boolean; pageable?: Pageable; } export interface SpanMethodProps { row: any; column: TableColumnCtx; rowIndex: number; columnIndex: number; } export interface ProTableProps { columns: ColumnProps[]; data?: (any[] | undefined | null); requestApi?: (params: any) => Promise; requestAuto?: boolean; requestError?: (params: any) => void; dataCallback?: (data: any) => any; title?: string; pagination?: boolean; initParam?: any; border?: boolean; toolButton?: ('refresh' | 'setting' | 'search')[] | boolean; rowKey?: string; showSummary?: boolean; sumText?: string; sumNaNText?: string; ifDblclick?: boolean; align?: string; height?: string | number; ifContinuousMultiple?: boolean; autoScroll?: boolean; spanMethod?: (row: SpanMethodProps) => number[] | { rowspan: number; colspan: number; }; showSearch?: boolean; field?: SuperFormItemProps[]; highlightCurrentRow?: boolean; layout?: string; } export interface SummaryMethodProps { columns: TableColumnCtx[]; data: T[]; }