jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
56 lines (55 loc) • 2.61 kB
TypeScript
import React from 'react';
import type { ActionObject, Api, IScopedContext, RendererData, Schema, ScopedComponentType } from 'jamis-core';
import type { ServiceProps } from './types';
export default class Service extends React.Component<ServiceProps> {
static defaultProps: Partial<ServiceProps>;
static propsList: Array<string>;
timer: ReturnType<typeof setTimeout>;
mounted: boolean;
socket: any;
dataProviderUnsubscribe?: Function;
isAutoRefresh?: boolean;
/**
* 正在reload的标识. 当作为form的target时, 会先调用receive -> reload触发ajax, 然后又触发了didUpdate中的ajax
*/
reloadPromise: Promise<void> | null;
disposers: (() => void)[];
constructor(props: ServiceProps);
componentDidMount(): void;
componentDidUpdate(prevProps: ServiceProps): void;
componentWillUnmount(): void;
doAction(action: ActionObject, args: any): Promise<any>;
initFetch(): Promise<void>;
runDataProvider: () => Promise<void>;
runDataProviderUnsubscribe(): void;
dataProviderSetData(data: any): void;
fetchWSData(ws: string | Api, data: any): void;
afterDataFetch(result: any): void;
afterSchemaFetch(schema: {
schema?: Schema;
schemaData?: Record<string, any>;
}): void;
initInterval: (schema: any) => any;
reload(subpath?: string, query?: any, ctx?: RendererData, silent?: boolean): Promise<void>;
runSchemaProvider: () => Promise<void>;
silentReload(target?: string, query?: any): Promise<void>;
receive(values: object): void;
handleQuery(query: any): void;
reloadTarget(target: string, data?: any): void;
handleDialogConfirm(values: object[], action: ActionObject, ctx: any, targets: Array<any>): void;
handleDialogClose(confirmed?: boolean): void;
openFeedback(dialog: any, ctx: any): Promise<unknown>;
handleAction(e: React.UIEvent<any> | void, action: ActionObject, data: object, throwErrors?: boolean, delegate?: IScopedContext): void;
handleChange(value: any, name: string, submit?: boolean, changePristine?: boolean): void;
renderBody(): JSX.Element | null;
render(): JSX.Element;
}
export declare class ServiceRenderer extends Service {
static contextType: React.Context<IScopedContext<ScopedComponentType>>;
constructor(props: ServiceProps, context: IScopedContext);
reload(subpath?: string, query?: any, ctx?: any, silent?: boolean): any;
receive(values: any, subPath?: string): void;
componentWillUnmount(): void;
reloadTarget(target: string, data?: any): void;
setData(values: object): void;
}