import { Omit } from '../utils/type-utils'; import { PaginationProps } from 'antd/es/pagination'; import { ColumnProps, TableProps, TableLocale } from 'antd/es/table'; import { FormComponentProps } from 'antd/es/form'; import { CSSProperties } from 'react'; import { QueryGetter } from '../query'; export declare type FormProps = FormComponentProps['form']; export interface PaginationInfo { current: number; pageSize: number; } export declare type ColumnType = Omit, 'render'> & { showHrWhenEmpty?: boolean; render?: (record: T, index: number, instance: IFatTable, editing: boolean) => React.ReactNode; }; export declare type ColumnsType = ColumnType[]; export interface ListInfo { total: number; list: T[]; } export declare type Setter = Partial | ((prev: T) => Partial); /** * FatTable 可用操作 */ export interface IFatTable { fetch(validate?: boolean, resetPage?: boolean, extraParams?: Partial

): void; getSelected(): T[]; getSelectedIds(): any[]; clearSelected(): void; clearForm(): void; /** * 获取查询参数, 可以用于导出 */ getParams(): P & PaginationInfo; getList(): T[]; length(): number; getDefaultValues(): Partial

; setList(list: T[]): void; remove(ids: any[]): void; removeSelected(): void; handleRemoveSelected(): void; shiftUp(id: any): void; shiftDown(id: any): void; shift(id: any, dir?: 'up' | 'down'): void; submit(evt: React.FormEvent): void; canShiftUp(id: any): boolean; canShiftDown(id: any): boolean; updateItems(updator: (list: T[]) => T[]): void; updateItem(item: T): void; findAndReplace(id: any, replacer: (item: T) => T): void; scrollToLastPage(): void; scrollToFirstPage(): void; /** * 设置当前编辑的行id */ setEditing(record: T): void; /** * 取消编辑 */ cancelEdit(): void; save(): void; setSnapshot(setter: Setter): void; /** * 触发自定义事件 */ triggerAction(action: string, data: any): void; } /** * 渲染器类型声明 */ export declare type FatTableRenderer = (form: FormProps, defaultValues: Partial

, slots: { body: (props?: TableProps) => React.ReactNode; header: () => React.ReactNode; }, instance: IFatTable) => React.ReactNode; export declare type HeaderRenderer = (form: FormProps, defaultValues: Partial

, instance: IFatTable) => React.ReactNode; export declare type HeaderExtraRenderer = HeaderRenderer | React.ReactChild; export declare type FooterRenderer = (instance: IFatTable) => React.ReactNode; export declare type ExpandedRowRenderer = (record: T, index: number, indent: any, expanded: boolean, instance: IFatTable) => React.ReactNode; /** * generate default expanded rows */ export declare type ExpandedRowsGenerator = (dataSource: T[]) => Array; /** * 处理器类型声明 */ export declare type InitHandler = (query: QueryGetter) => Partial

; export declare type FetchHandler = (params: P & PaginationInfo, instance: IFatTable) => Promise>; export declare type FetchChildrenHandler = (id: any, record: T, params: P & PaginationInfo, instance: IFatTable) => Promise; export declare type SubmitHandler = (params: P) => boolean; export declare type ShiftHandler = (from: T, to: T | null, type: 'up' | 'down', instance: IFatTable) => Promise; export declare type RemoveHandler = (ids: any[], instance: IFatTable) => Promise; export declare type ChangeHandler = (list: T[], instance: IFatTable) => void; export declare type SaveHandler = (snapshot: T, instance: IFatTable) => Promise; export declare type PersistHandler = (params: P & PaginationInfo, instance: IFatTable) => object; export declare type ActionHandler = (name: string, data: any, instance: IFatTable) => void; /** * 参数 */ export interface FatTableProps { /** * 检索相关 */ namespace?: string; enablePersist?: boolean; enableSelect?: boolean; enablePagination?: boolean; defaultPagination?: Partial; offsetMode?: boolean; lazyMode?: boolean; onFetch?: FetchHandler; onFetchChildren?: FetchChildrenHandler; fetchOnMount?: boolean; onSubmit?: SubmitHandler; header?: HeaderRenderer; headerExtra?: HeaderExtraRenderer; footer?: FooterRenderer; getExtraParams?: () => Partial

; onInit?: Partial

| InitHandler; searchText?: string; children?: FatTableRenderer; /** * 可控模式 * 注意,可控模式和fetch(onFetch)模式只能取其一 */ value?: T[]; onChange?: ChangeHandler; /** * 展示相关 */ columns: ColumnsType; expandedRowRender?: ExpandedRowRenderer; /** * 展开相关 */ /** * 默认展开深度,支持树形结构 */ defaultExpandedLevel?: number; /** * 是否默认展开所有行,支持非树形结构 */ defaultExpandAllRows?: boolean; /** * 通过回调生成,默认展开的行. 返回需要展开的id数组 */ defaultExpandedRows?: ExpandedRowsGenerator; filterKey?: string; filterValue?: string; idKey?: string; className?: string; style?: CSSProperties; /** * 其他 */ confirmOnRemove?: boolean; removeConfirmText?: string; onShift?: ShiftHandler; onRemove?: RemoveHandler; onPersist?: PersistHandler; onSave?: SaveHandler; onAction?: ActionHandler; /** * 转发给Table */ showHeader?: boolean; title?: TableProps['title']; size?: 'default' | 'middle' | 'small'; bordered?: boolean; scroll?: { x?: number | true; y?: number; }; locale?: TableLocale; indentSize?: number; }