amis
Version:
一种MIS页面生成工具
127 lines (126 loc) • 6.19 kB
TypeScript
import React from 'react';
import { RendererProps } from '../factory';
import { SchemaNode, Schema, Action, Api } from '../types';
import { ICRUDStore } from '../store/crud';
import { IScopedContext } from '../Scoped';
interface CRUDProps extends RendererProps {
api?: Api;
filter?: Schema;
store: ICRUDStore;
defaultParams: object;
syncLocation?: boolean;
primaryField?: string;
mode?: 'table' | 'grid' | 'cards' | 'list';
toolbarInline?: boolean;
toolbar?: SchemaNode;
headerToolbar?: SchemaNode;
footerToolbar?: SchemaNode;
bulkActions?: Array<Action>;
itemActions?: Array<Action>;
orderField?: string;
saveOrderApi?: Api;
quickSaveApi?: Api;
quickSaveItemApi?: Api;
initFetch?: boolean;
perPageAvailable?: Array<number | string>;
messages: {
fetchFailed?: string;
fetchSuccess?: string;
saveFailed?: string;
saveSuccess?: string;
};
pickerMode?: boolean;
pageField?: string;
perPageField?: string;
hideQuickSaveBtn?: boolean;
autoJumpToTopOnPagerChange?: boolean;
interval?: number;
silentPolling?: boolean;
stopAutoRefreshWhen?: string;
stopAutoRefreshWhenModalIsOpen?: boolean;
filterTogglable?: boolean;
filterDefaultVisible?: boolean;
syncResponse2Query?: boolean;
keepItemSelectionOnPageChange?: boolean;
loadDataOnce?: boolean;
source?: string;
}
export default class CRUD extends React.Component<CRUDProps, any> {
static propsList: Array<string>;
static defaultProps: {
toolbarInline: boolean;
headerToolbar: string[];
footerToolbar: string[];
primaryField: string;
syncLocation: boolean;
pageField: string;
perPageField: string;
hideQuickSaveBtn: boolean;
autoJumpToTopOnPagerChange: boolean;
silentPolling: boolean;
filterTogglable: boolean;
filterDefaultVisible: boolean;
loadDataOnce: boolean;
};
control: any;
lastQuery: any;
dataInvalid: boolean;
timer: number;
mounted: boolean;
constructor(props: CRUDProps);
componentWillMount(): void;
componentDidMount(): void;
componentWillReceiveProps(nextProps: CRUDProps): void;
componentDidUpdate(): void;
componentWillUnmount(): void;
controlRef(control: any): void;
handleAction(e: React.UIEvent<any> | undefined, action: Action, ctx: object, delegate?: boolean): any;
handleBulkAction(selectedItems: Array<any>, unSelectedItems: Array<any>, e: React.UIEvent<any>, action: Action): any;
handleItemAction(action: Action, ctx: any): void;
handleFilterInit(values: object): void;
handleFilterReset(values: object): void;
handleFilterSubmit(values: object, jumpToFirstPage?: boolean, replaceLocation?: boolean, search?: boolean): void;
handleBulkGo(selectedItems: Array<any>, unSelectedItems: Array<any>, e: React.MouseEvent<any>): any;
handleDialogConfirm(values: object[], action: Action, ctx: any, components: Array<any>): any;
handleDialogClose(): void;
openFeedback(dialog: any, ctx: any): Promise<{}>;
search(values?: any, silent?: boolean, clearSelection?: boolean, forceReload?: boolean): void;
silentSearch(values?: object): void;
handleChangePage(page: number, perPage?: number): void;
handleSave(rows: Array<object> | object, diff: Array<object> | object, indexes: Array<number>, unModifiedItems?: Array<any>, rowsOrigin?: Array<object> | object): void;
handleSaveOrder(moved: Array<object>, rows: Array<object>): void;
handleSelect(items: Array<any>, unSelectedItems: Array<any>): void;
handleChildPopOverOpen(popOver: any): void;
handleChildPopOverClose(popOver: any): void;
handlQuery(values: object): void;
reload(subpath?: string, query?: any): void;
receive(values: object): void;
reloadTarget(target: string, data: any): void;
doAction(action: Action, data: object, throwErrors?: boolean): any;
unSelectItem(item: any, index: number): void;
clearSelection(): void;
hasBulkActionsToolbar(): string | number | false | Schema | import("../types").SchemaArray | ((searchElement: SchemaNode, fromIndex?: number | undefined) => number) | ((callbackfn: (value: SchemaNode, index: number, array: SchemaNode[]) => boolean, thisArg?: any) => boolean) | ((callbackfn: (value: SchemaNode, index: number, array: SchemaNode[]) => void, thisArg?: any) => void) | {
(callbackfn: (previousValue: SchemaNode, currentValue: SchemaNode, currentIndex: number, array: SchemaNode[]) => SchemaNode): SchemaNode;
(callbackfn: (previousValue: SchemaNode, currentValue: SchemaNode, currentIndex: number, array: SchemaNode[]) => SchemaNode, initialValue: SchemaNode): SchemaNode;
<U>(callbackfn: (previousValue: U, currentValue: SchemaNode, currentIndex: number, array: SchemaNode[]) => U, initialValue: U): U;
} | ((value: SchemaNode, start?: number | undefined, end?: number | undefined) => import("../types").SchemaArray) | ((searchElement: SchemaNode, fromIndex?: number | undefined) => boolean) | undefined;
hasBulkActions(): number | false;
renderBulkActions(childProps: any): JSX.Element | null;
renderPagination(): JSX.Element | null;
renderStatistics(): JSX.Element | null;
renderSwitchPerPage(childProps: any): JSX.Element | null;
renderLoadMore(): "" | JSX.Element;
renderFilterToggler(): JSX.Element | null;
renderToolbar(toolbar?: SchemaNode, index?: number, childProps?: any, toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode): {} | null;
renderHeaderToolbar(childProps: any, toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode): {} | null;
renderFooterToolbar(childProps: any, toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode): {} | null;
renderSelection(): React.ReactNode;
render(): JSX.Element;
}
export declare class CRUDRenderer extends CRUD {
static contextType: React.Context<IScopedContext>;
componentWillMount(): void;
componentWillUnmount(): void;
reloadTarget(target: string, data: any): void;
}
export {};