import { ProTableProps } from "@ant-design/pro-components"; import React, { ReactElement } from "react"; import { Column, DataItem, DataSourceProp } from "../../type"; import "./data-list.scss"; import { DataSource as IDataSource, DataSourceSelectArguments, DataSourceSelectResult, DataSourceParams } from "maishu-jueying/providers"; export type Props = Omit, "columns" | "dataSource"> & { columns?: Column[]; toolBarControls?: React.ReactElement[]; dataSource?: DataSourceProp | IDataSource; onDataLoad?: (result: DataSourceSelectResult, args: DataSourceSelectArguments) => void; filter?: string; }; interface State { dataSource?: IDataSource; selectedRows: T[]; isEditMode: boolean; } export interface RowContext { dataItem: T; } export declare class DataList extends React.Component, State> { private actionRef; static defaultProps: Partial; dataItems?: T[]; private editableFormRef; private filter?; /** props.filter 声明的基础过滤条件,过滤工具栏(FilterBar)的表达式叠加在其上 */ private baseFilter?; private _buildTree?; private columns; constructor(props: Props); /** 基础过滤条件与工具栏表达式以 and 组合 */ private static combineFilter; search(filter?: string): void; /** 供过滤工具栏(FilterBar)等子组件调用:表达式叠加在 props.filter 之上 */ searchByFilter(filter?: string): void; private new; protected edit(): void; delete(dataItems?: T[]): void; protected select(pageIndex: number, pageSize?: number, filter?: string): Promise>; protected get dataSource(): IDataSource | undefined; setBuildTree(value: boolean): void; update(entity: T, reload?: boolean): Promise | undefined; private save; reload(): Promise | undefined; get selectedRows(): T[]; private createColumns; static bindPropertyFunctions(element: ReactElement, context: any): React.ReactElement>; private renderToolBar; private renderNormalModeButtons; /** 渲染在编辑模式下的按钮 */ private renderEditModeButtons; private renderEditableActionProxy; private getProTableProps; onSave(key: React.Key | React.Key[], record: T, originRow: T): Promise; private onChange; static createDataSource(options: DataSourceParams | T[] | IDataSource | undefined): IDataSource | undefined; static getDerivedStateFromProps(props: Partial>, state: State): Partial>; findSearchColumn(dataIndex: string): Column | undefined; buildFilter(fields: Record): string; render(): React.ReactNode; } export default DataList;