jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
172 lines (171 loc) • 9.5 kB
TypeScript
import type { Instance } from 'mobx-state-tree';
import type { ActionObject, Api, Payload, fetchOptions } from 'jamis-core';
type FetchInitDataOptions = fetchOptions & {
forceReload?: boolean;
loadDataOnce?: boolean;
loadDataOnceFetchOnFilter?: boolean;
/**
* 支持自定义属于映射,默认不配置,读取 rows 或者 items
*/
source?: string;
loadDataMode?: boolean;
syncResponse2Query?: boolean;
columns?: Array<any>;
isTable2?: Boolean;
};
export declare const CRUDStore: import("mobx-state-tree").IModelType<{
id: import("mobx-state-tree").ISimpleType<string>;
path: import("mobx-state-tree").IType<string | undefined, string, string>;
storeType: import("mobx-state-tree").ISimpleType<string>;
disposed: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
parentId: import("mobx-state-tree").IType<string | undefined, string, string>;
childrenIds: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
} & {
hasRemoteData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
data: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
initedAt: import("mobx-state-tree").IType<number | undefined, number, number>;
updatedAt: import("mobx-state-tree").IType<number | undefined, number, number>;
pristine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
action: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
dialogOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
dialogData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
drawerOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
drawerData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
rendererProxy: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("jamis-core").RendererProxy, import("jamis-core").RendererProxy, import("jamis-core").RendererProxy>, [undefined]>;
} & {
msg: import("mobx-state-tree").IType<string | undefined, string, string>;
error: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
fetching: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
saving: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
busying: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
checking: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
initializing: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
schema: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
schemaKey: import("mobx-state-tree").IType<string | undefined, string, string>;
} & {
pristineQuery: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
query: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
prevPage: import("mobx-state-tree").IType<number | undefined, number, number>;
page: import("mobx-state-tree").IType<number | undefined, number, number>;
perPage: import("mobx-state-tree").IType<number | undefined, number, number>;
total: import("mobx-state-tree").IType<number | undefined, number, number>;
mode: import("mobx-state-tree").IType<string | undefined, string, string>;
hasNext: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
selectedAction: import("mobx-state-tree").IType<any, any, any>;
columns: import("mobx-state-tree").IType<any, any, any>;
items: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>, [undefined]>;
selectedItems: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>, [undefined]>;
unSelectedItems: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>, [undefined]>;
filterTogggable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
filterVisible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hasInnerModalOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
readonly isAlive: boolean;
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: Array<string>): void;
syncProp(key: string, propValue: any, prevPropValue: any): void;
dispose: (callback?: () => void) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void;
} & {
getValueByName(name: string, canAccessSuper?: boolean): any;
getPristineValueByName(name: string): any;
} & {
initData(data?: Record<string, any>, skipSetPristine?: boolean): void;
reset(): void;
updateData(data?: object, tag?: object, replace?: boolean): void;
changeValue(name: string, value: any, changePristine?: boolean, force?: boolean, otherModifier?: (data: Object) => void): void;
setCurrentAction(action: object): void;
openDialog(ctx?: any, additonal?: object, callback?: (ret: any) => void): void;
closeDialog(result?: any): void;
openDrawer(ctx: any, additonal?: object, callback?: (ret: any) => void): void;
closeDrawer(result?: any): void;
updateRendererProxy(proxy: import("jamis-core").RendererProxy): void;
} & {
readonly loading: boolean;
} & {
markFetching: (fetching?: boolean) => void;
markSaving: (saving?: boolean) => void;
markBusying: (busying?: boolean) => void;
markInitializing: (initializing?: boolean) => void;
fetchInitData: (api: Api, data?: object, options?: fetchOptions) => Promise<any>;
fetchData: (api: Api, data?: object, options?: fetchOptions) => Promise<any>;
reInitData: (data: object | undefined, replace?: boolean) => void;
updateMessage: (msg?: string, error?: boolean) => void;
clearMessage: () => void;
setHasRemoteData: () => void;
saveRemote: (api: Api, data?: object, options?: fetchOptions) => Promise<any>;
fetchSchema: (api: Api, data?: object, options?: fetchOptions & {
syncInitializing?: boolean;
syncSchema?: boolean;
}) => Promise<{
shema?: import("jamis-core").Schema;
schemaData?: Record<string, any>;
}>;
checkRemote: (api: Api, data?: object, options?: fetchOptions) => Promise<any>;
runSchemaProvider: (schemaProvider: () => Promise<any>, replaceData: boolean) => Promise<import("jamis-core").Schema | import("jamis-core").Schema[] | undefined>;
updateSchema: (schema: any, key: string) => void;
} & {
readonly lastPage: number;
readonly filterData: any;
readonly mergedData: any;
readonly hasModalOpened: boolean;
readonly selectedItemsAsArray: any[];
fetchCtxOf(data: any, options: {
pageField?: string;
perPageField?: string;
}): any;
} & {
/**
* 配置store
*/
config({ total, perPage, page, items }: {
total?: number;
perPage?: number;
page?: number;
items?: any[];
}): void;
/**
* 新增items项, 新增项会unshift到数组最前面
*/
addItems(...itemsToAdd: any[]): void;
updateItem(updateFn: (item: Record<string, any>) => Record<string, any>): void;
/**
* 删除管理的items项, 满足filter函数要求的会被删除
*/
deleteItems(filter: (item: any) => boolean): void;
/**
* 重置状态
*/
reset(args?: {
items?: any[];
page?: number;
}): void;
getData: (superData: any) => any;
updateSelectData: (selected: Array<any>, unSelected: Array<any>) => void;
setPristineQuery: () => void;
updateQuery: (values: object, updater?: Function, pageField?: string, perPageField?: string, replace?: boolean) => void;
fetchInitData: (api: Api, data: object, options?: FetchInitDataOptions | undefined) => Promise<import("mobx-state-tree/dist/internal").FlowReturn<Payload | undefined>>;
changePage: (page: number, perPage?: number | string) => void;
selectAction: (action: ActionObject) => void;
saveRemote: (api: Api, data?: object, options?: fetchOptions) => Promise<any>;
setFilterTogglable: (toggable: boolean, filterVisible?: boolean) => void;
setFilterVisible: (visible: boolean) => void;
setSelectedItems: (items: Array<any>) => void;
setUnSelectedItems: (items: Array<any>) => void;
setInnerModalOpened: (value: boolean) => void;
initFromScope: (rowsData: any[]) => void;
exportAsCSV: (options?: {
loadDataOnce?: boolean;
api?: Api;
data?: any;
}) => Promise<void>;
updateColumns: (columns: Array<any>) => void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type ICRUDStore = Instance<typeof CRUDStore>;
export {};