jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
71 lines (70 loc) • 3.09 kB
TypeScript
import React from 'react';
import type { ActionObject, IScopedContext } from 'jamis-core';
import { ScopedContext } from 'jamis-core';
import type { CSSRule, PageProps } from '../types';
interface PageState {
/** 边栏折叠 */
asideCollapsed: boolean;
}
export default class Page extends React.Component<PageProps, PageState> {
timer: ReturnType<typeof setTimeout>;
mounted: boolean;
style: HTMLStyleElement;
varStyle: HTMLStyleElement;
startX: number;
startWidth: number;
codeWrap: HTMLElement;
asideInner: React.RefObject<HTMLDivElement>;
pageRef: React.RefObject<HTMLDivElement>;
animationFrameId: number;
static defaultProps: Partial<PageProps>;
static propsList: Array<keyof PageProps>;
constructor(props: PageProps);
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: PageProps): void;
/**
* 构建 css
*/
updateStyle(): void;
buildCSS(cssRules?: CSSRule): string;
/**
* 构建用于 css 变量的内联样式
*/
updateVarStyle(): void;
reloadTarget(target: string, data?: any): void;
dispatchEventForward: (event: string, more?: Record<string, any>) => void;
handleAction(e: React.UIEvent<any> | void, action: ActionObject, ctx: object, throwErrors?: boolean, delegate?: IScopedContext): any;
handleQuery(query: any): void;
handleDialogConfirm(values: object[], action: ActionObject, ...rest: Array<any>): void;
handleDialogClose(confirmed?: boolean): void;
handleDrawerConfirm(values: object[], action: ActionObject, ...args: Array<any>): void;
handleDrawerClose(): void;
handleClick(e: any): void;
handleResizeMouseDown(e: React.MouseEvent): void;
handleResizeMouseMove(e: MouseEvent): void;
handleResizeMouseUp(): void;
openFeedback(dialog: any, ctx: any): Promise<unknown>;
reload(subpath?: any, query?: any, ctx?: any, silent?: boolean): void;
receive(values: object): void;
silentReload(target?: string, query?: any): void;
initInterval(value?: any): any;
handleRefresh(): Promise<void>;
handleChange(value: any, name: string, submit?: boolean, changePristine?: boolean, ...rest: any[]): void;
handleBulkChange(values: Object): void;
toggleFoldAside: () => void;
renderHeader(): JSX.Element | undefined;
render(): JSX.Element;
}
export declare class PageRenderer extends Page {
context: React.ContextType<typeof ScopedContext>;
static contextType: React.Context<IScopedContext<import("jamis-core").ScopedComponentType>>;
constructor(props: PageProps, context: IScopedContext);
componentWillUnmount(): void;
reloadTarget(target: string, data?: any): void;
handleAction(e: React.UIEvent<any>, action: ActionObject, ctx: object, throwErrors?: boolean, delegate?: IScopedContext): void;
handleDialogConfirm(values: object[], action: ActionObject, ...rest: Array<any>): void;
handleDrawerConfirm(values: object[], action: ActionObject, ...rest: Array<any>): void;
setData(values: object): void;
}
export {};