中化加油站项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
1.8 KiB

import { ThreeDimensionalHomeComponent } from "src/app/gis/three-dimensional-home/three-dimensional-home.component";
/**
* 加载管理器
*/
export class LoadTool {
static s_loadingData: Map<any, string> = new Map();
static s_loadingNum: number = 0;
static readonly c_tag_preloadMark = "preloadMark";//预加载标绘物模型(不阻断)
static readonly c_tag_createMark = "createMark";//创建标绘物(不阻断)
static readonly c_tag_facilityPrefab = "facilityPrefab";//设备预制体
/**
* 新增加载数据
* @param data
* @param tag
*/
static add(data: any, tag?: string) {
switch (tag) {
case LoadTool.c_tag_preloadMark:
case LoadTool.c_tag_createMark: return;
}
let oldNum = LoadTool.s_loadingNum;
LoadTool.s_loadingData.set(data, tag);
LoadTool.s_loadingNum = LoadTool.s_loadingData.size;
if (oldNum == 0 && LoadTool.s_loadingNum == 1) {
LoadTool.onStart();
}
}
/**
* 加载完成,移除记录
* @param data
*/
static remove(data: any) {
let oldNum = LoadTool.s_loadingNum;
if (LoadTool.s_loadingData.has(data)) {
LoadTool.s_loadingData.delete(data);
}
LoadTool.s_loadingNum = LoadTool.s_loadingData.size;
if (oldNum > 0 && LoadTool.s_loadingNum == 0) {
LoadTool.onEnd();
}
}
/**
* 开始加载
*/
static onStart() {
console.log("开始加载");
ThreeDimensionalHomeComponent.instance.maskLayerService.sendMessage(true)
}
/**
* 全部加载结束
*/
static onEnd() {
console.log("结束加载");
ThreeDimensionalHomeComponent.instance.maskLayerService.sendMessage(false)
}
}