import type { VNode } from 'vue'; import type { PaginationProps, TableColumnCtx } from 'element-plus'; export type DefaultRow = any; export type CI = { column: TableColumnCtx; $index: number; }; export type CRI = { column: TableColumnCtx; row: DefaultRow; $index: number; }; export type ColumnProps = TableColumnCtx & { cellRenderer?: (data: CRI) => VNode; headerCellRenderer?: (data: CI) => VNode; reserveRadioSelection?: boolean; }; export interface Config { currentPage: string; pageSize: string; total: string; } export type IQueryParams = { [key: string]: any; }; export type PaginationProp = PaginationProps & { defaultPageSize?: number; showRecord?: boolean; showTotal?: boolean; }; export type IResolveData = { list: any[]; total: number; }; export type IHttpRequestParams = { params: IQueryParams; resolve: (data: IResolveData) => void; reject: (e: Error) => void; }; export interface TablePageContext { pagination: Partial; config?: Partial; }