Browse Source

修复多个单位切换时,未重新获取应急信息的问题

尝试修复不能创建应急信息的问题
dev
刘向辉 3 years ago
parent
commit
044811fe0a
  1. 22
      README.md
  2. 5
      src/app/babylon/controller/data-manager.ts
  3. 1
      src/app/babylon/controller/event-manager/events/event-mark-info-change.ts
  4. 4
      src/app/babylon/controller/inputController.ts
  5. 4
      src/app/babylon/controller/scene-manager.ts
  6. 6
      src/app/babylon/controller/status/login-status.ts
  7. 34
      src/app/babylon/view/mark-window/mark-window.ts

22
README.md

@ -1,5 +1,27 @@
# 中国石化加油站项目
## 🌼v1.0.2 主要变化 完成功能,部署测试
### 🌻 简介
> 时间:2021、12、7 周二
> 修复 bug,三维优化
### 🌻 详情
> 前端部分
- [🚩 重大变更] 无
- [🌱 新增] 无
- [🍀 完善] 无
> 三维部分
- [🚩 重大变更] 无
- [🌱 新增] 无
- [🍀 完善] 修复多个单位切换时,未重新获取应急预案信息的问题
- [🍀 完善] 增加打印,排查部署与本地差异: 部署后新建单位创建应急预案不成功,本地未出现此情况
## 🌼v1.0.1 主要变化 完成功能,部署测试
### 🌻 简介

5
src/app/babylon/controller/data-manager.ts

@ -40,6 +40,7 @@ import { ModelEditData } from '../model/data/model-data/model-edit-data';
import { TransformData } from '../model/data/transform-data';
import { BabylonTool } from '../tool/babylon-tool';
import { TsTool } from '../tool/ts-tool';
import { MarkWindow } from '../view/mark-window/mark-window';
import { ConfigManager } from './config-manager';
import { ModeManager } from './mode-manager';
import { ServeManager } from './serve-manager';
@ -75,10 +76,10 @@ export class DataManager {
if (dataFromServe) {
if (DataManager.institutionData != null) {
console.log("单位id", institutionID.toString());
//同一单位
console.log("=======", DataManager.institutionData.normalData.key, institutionID.toString());
if (DataManager.institutionData.normalData.key == institutionID.toString()) {
console.log("同一单位");
console.log("同一单位", DataManager.institutionData.normalData.key);
if (onSuccess) {
onSuccess(institutionID.toString());
}

1
src/app/babylon/controller/event-manager/events/event-mark-info-change.ts

@ -13,7 +13,6 @@ export class Event_MarkInfoChange extends Event_Base {
markInfo: ModelInfo_mark;
static dispatch(eventType: MarkInfoChangeType, markInfo: ModelInfo_mark) {
let eventInfo = new Event_MarkInfoChange();
eventInfo.eventType = eventType;
eventInfo.markInfo = markInfo;

4
src/app/babylon/controller/inputController.ts

@ -96,6 +96,10 @@ export class InputController {
//添加监听事件
EventManager.addListener<Event_MarkInfoChange>(Event_MarkInfoChange, (eventData, eventState) => {
this.markInfo = eventData.markInfo;
if (eventData.markInfo == null) {
console.trace("Event_MarkInfoChange====");
return;
}
this.markData = eventData.markInfo.markData;
this.markType = eventData.markInfo.markData.type;
switch (eventData.eventType) {

4
src/app/babylon/controller/scene-manager.ts

@ -830,15 +830,11 @@ export class SceneManager {
return;
} else {
console.log(modelInfo.modelData instanceof ModelData_facility, (modelInfo.modelData as ModelData_facility).posType);
if (modelInfo.modelData instanceof ModelData_facility && modelInfo.modelData.posType == FacilityPosType.In) {
console.log("1111");
//来自建筑模型中的设备
modelInfo.dispose(false);
}
else {
console.log("222");
TsTool.arrayRemove(SceneManager.s_allModelInfo, modelInfo);
modelInfo.dispose();
}

6
src/app/babylon/controller/status/login-status.ts

@ -9,6 +9,7 @@ import { BabylonTool } from "../../tool/babylon-tool";
import { BuildingWindow } from "../../view/building-window/building-window";
import { InstitutionCreateWindow } from "../../view/institution/institution-create-window";
import { InstitutionSelectWindow } from "../../view/institution/institution-select-window";
import { MarkWindow } from "../../view/mark-window/mark-window";
import { TopbarWindow } from "../../view/topbar-window/topbar-window";
import { DataManager } from "../data-manager";
@ -103,9 +104,12 @@ export class LoginSatus extends StatusBase {
if (DataManager.institutionData != null) {
//不同单位,释放建筑
console.log("=======", DataManager.institutionData.normalData.key, simpleData.key.toString());
if (DataManager.institutionData.normalData.key != simpleData.key) {
BuildingWindow.instance.dispose();
if (MarkWindow.instance != null) {
MarkWindow.instance.dispose();
}
}
}

34
src/app/babylon/view/mark-window/mark-window.ts

@ -39,6 +39,7 @@ import { WeatherTool } from "./weather-tool";
export class MarkWindow extends UIBase {
/**
*
*/
@ -87,7 +88,7 @@ export class MarkWindow extends UIBase {
/**
*
*/
allMarkPlanData: AllMarkPlanData;
allMarkPlanData: AllMarkPlanData = null;
/**
@ -143,12 +144,7 @@ export class MarkWindow extends UIBase {
// 创建输入控制器
const control = new InputController(SceneManager.Instance.scene);
DataManager.initMarkData((data: AllMarkPlanData) => {
instance.onGetAllMarkPlanData(data);
MarkWindow.instance.selectMarkNode(null, null, true); //模拟选中空节点,创建游离节点
// console.log("标绘信息", data);
// console.log(JSON.stringify(data));
});
this.weatherTool = new WeatherTool(SceneManager.Instance.defaultCamera, SceneManager.Instance.scene);
@ -163,7 +159,7 @@ export class MarkWindow extends UIBase {
onOpen() {
super.onOpen();
this.onShow();
}
onClose() {
@ -180,7 +176,29 @@ export class MarkWindow extends UIBase {
onShow() {
super.onShow();
let instance = this;
if (this.allMarkPlanData == null) {
DataManager.initMarkData((data: AllMarkPlanData) => {
instance.onGetAllMarkPlanData(data);
MarkWindow.instance.selectMarkNode(null, null, true); //模拟选中空节点,创建游离节点
// console.log("标绘信息", data);
// console.log(JSON.stringify(data));
});
}
else {
MarkWindow.instance.selectMarkNode(null, null, true); //模拟选中空节点,创建游离节点
}
}
/**
*
*/
dispose() {
this.allMarkPlanData = null;
}
//#endregion

Loading…
Cancel
Save