import React from 'react'; import XBaseObject, { XBaseObjectProps } from "./XBaseObject"; import XHtml2canvas from "../toolkit/XHtml2canvas"; import XBaseTest from "./XBaseTest"; /** * 应用启动组件属性 */ export interface XBaseAppProps extends XBaseObjectProps { /** * 应用菜单列表 */ menus?: any[]; /** * 获取应用路由 */ getRoutes?: (app: XBaseApp) => any[]; /** * antd主题文件 * 例如: * token: { * "colorPrimary": "#1677FF", * "colorInfo": "#1677FF", * "fontSize": 13, * }, */ theme?: any; } /** * 应用启动组件,提供路由管理和全局数据管理 * @name 应用启动组件 * @groupName 应用 */ export default class XBaseApp

extends XBaseObject { static defaultProps: { parent: string; pureRender: boolean; dataSourceUrl: string; filterData: {}; mustHasFilter: boolean; }; static ConfigProvider: any; static theme: any; MenuData: any[]; MenuAllRoutes: any[]; MenuRoutes: any[]; page: any; apps: {}; componentMap: {}; rootElement: HTMLElement; autoTest: XBaseTest<{}, {}>; /** * 下载设计元模型 * MenuData: 菜单数据,不为空对象时,则直接下载 */ static DownloadDomainModel: typeof DownloadDomainModel; static XHtml2canvas: typeof XHtml2canvas; static PromptConfirm: typeof PromptConfirm; constructor(props: XBaseAppProps); loadGlobalConfig(): Promise; /** * 重新设置菜单 * @param menuData 菜单列表 */ RefreshMenu(menuData: any): void; GetMenuRoutes(): any[]; ReSetUserMenus(): void; SetUserMenus(userMenus: []): void; /** * 加载javascript应用 * @param src js路径 * @param rootPath 异步加载库根目录 */ LoadScript: (src: string, rootPath: string) => Promise; /** * 加载APP插件 * @param menuPath 菜单path * @param requireName 编译时模块名称 * @param jsPath app.js网络地址 * @param version app.js版本号 * @param rootPath app.js相对路径 * @param formatMenu 格式化菜单 * @param callback 加载app插件回调 * @constructor */ LoadApp(menuPath: any, requireName: string, jsPath: string, version: string, rootPath: string, formatMenu: (app: {}) => {}, callback: (firstLoad: boolean, app: {}) => void): Promise; /** * 格式化处理memnus * @param menus 菜单列表 * @param parent 父对象 * @param parentPath 父path * @constructor */ FormatMenus(menus?: any[], parent?: any, parentPath?: string): any[]; formatOperations(_operations: any, parentName?: string, operations?: {}, allList?: any[], validate?: boolean): {}; private renderRoute; componentDidMount(): void; render(): React.JSX.Element; } declare function DownloadDomainModel(MenuData?: any[], systemName?: string, sleepTime?: number, packageName?: any, returnFile?: boolean): Promise; declare function PromptConfirm({ onRef, when, msg }: { onRef: any; when: any; msg: any; }): React.JSX.Element; export {};