declare namespace GT { interface IActive { // 页面唯一标识符 key: string; // 页面唯一id id: number; // 页面参数 params: { [key: string]: any }; // 历史记录 history?: IActive[]; options?: IPageOptions; } interface IPageOptions { // 坐标 left?: string | number; top?: string | number; right?: string | number; // 尺寸 width?: string | number; height?: string | number; name?: string; // 页面标题 limit?: boolean; // 拖拽是否可超出父级 drag?: boolean; // 是否可拖拽 zoom?: boolean; // 是否可放大 minWidth?: number; // 最小宽度 minHeight?: number; // 最小高度 header?: boolean; // 是否有title background?: boolean; // 背景色 } interface IRouterOptions { // 异步组件地址 component: () => Promise; models?: () => Promise; // 页面唯一标识符 key: number; options?: IPageOptions; } interface IPageProps { id: number; params: any; router: IRouterFunc; } interface IRouterFunc { // 根据key新增页面 add: ( key: string, params?: any, callback?: (pageId: number) => void, ) => void; // 根据id删除页面 remove: (id: number) => void; // 根据id跳转页面 push: (key: string, params?: any, id?: number) => void; // 根据id回退页面 back: (id: number) => void; } } interface IStateHandler { onStart: () => void; onUpdate: () => void; onStop: () => void; }