xframelib
Version:
积累的前端开发基础库,来源于项目和服务于项目。
143 lines (142 loc) • 3.98 kB
TypeScript
import { LayoutContainerEnum, IWidgetConfig } from '../../model/Layout';
import { Ref } from 'vue';
/**
* 布局对象定义
*/
export interface ILayoutContainer {
topContainer: Ref<HTMLElement | undefined>;
centerBackContainer: Ref<HTMLElement | undefined>;
centerMainContainer: Ref<HTMLElement | undefined>;
centerFrontContainer: Ref<HTMLElement | undefined>;
bottomContainer: Ref<HTMLElement | undefined>;
leftContainer: Ref<HTMLElement | undefined>;
rightContainer: Ref<HTMLElement | undefined>;
}
export declare class LayoutManager {
private layoutState;
private layoutMap;
private preConditionMap;
private widgetsLoadedSet;
/**
* WidgetConfig字典
*/
private widgetConfigDiction;
private _LayoutID;
private _mapItemRefs?;
constructor(layoutState: ILayoutContainer, layoutID: string, allWidgetConfig?: Array<IWidgetConfig>, mapRefs?: Map<string, any>);
/**
* 所属的Layout布局对象ID
* @returns
*/
getLayoutID(): string | undefined;
/**
* 获得widget配置参数,字典对象
* @returns
*/
getWidgetConfigMap(): Map<string, IWidgetConfig>;
/**
* 预先加载Widget组件
*/
preloadWidgets(): void;
/**
* 加载组件和子组件
* @param widgetItem 组件对象
*/
loadWidget(widgetItem: IWidgetConfig | string): any;
private loadOtherDependenceWidgets;
private _loadWidget;
/**
* 检查是否存在依赖其的组件
* @param widgetID
* @returns
*/
hasDependentWidgets(widgetID: string): boolean;
/**
* 卸载组件
* @param widgetItem
* @returns
*/
unloadWidget(widgetID: string): void;
/**
* 查询某一组件是否被加载
* @param widgetID 组件ID
* @returns
*/
isWidgetLoaded(widgetID: string): boolean;
/**
* 中心两DIV
* 左右分屏
* @param restore
*/
splitTwoContainer(restore?: boolean): void;
/**
* 获取到对应容器
* @param enumContainer
* @returns
*/
getLayoutContainer(enumContainer: LayoutContainerEnum): HTMLElement | undefined;
/**
* 改变容器可见性
* @param enumContainer
* @param isVisible
*/
changeContainerVisible(enumContainer: LayoutContainerEnum, isVisible?: boolean): void;
/**
* 改变组件的可见性
* @param enumContainer
* @param isVisible
*/
changeWidgetVisible(widgetID: string, isVisible?: boolean): void;
/**
* 获取Widget组件是否可见
* @param widgetID
* @returns
*/
isWidgetVisible(widgetID: string): boolean;
/**
* 根据ID,获取已经加载的Widget组件对象
* @param widgetID
* @returns
*/
getWidgetComponent(widgetID: string): any;
/**
* 获取组件记录
* @param widgetID 组件ID
* @returns
*/
getWigetItem(widgetID: string): IWidgetConfig | undefined;
/**
* 根据分组名,获取组件列表
* @param group 分组名
* @returns
*/
getGroupWigetItems(group: string): IWidgetConfig[];
/**
* 获取容器里的组件集合
* @param enumContainer
* @returns
*/
getContainerComponents(enumContainer: LayoutContainerEnum): Ref<Map<string, any>>;
/**
* 获取已经加载组件ID列表
* @returns ID列表数组
*/
getWidgetLoadedIDList(): string[];
/**
* 卸载所有已加载的组件
* @param excludeIDs 排除ID列表
*/
unloadAllWidgets(excludeIDs?: string[]): void;
/**
* 批量卸载一批Widget组件
* @param idList 组件ID列表
*/
unloadWidgets(idList: string[]): void;
/**
* 通过widgetid 获得LayoutManager
* @param widgetID
* @param allWidgetConfig
* @returns
*/
static getLayoutManager(widgetID: string, allWidgetConfig: Array<IWidgetConfig>): LayoutManager | undefined;
}