|
|
|
@ -7469,15 +7469,6 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit {
|
|
|
|
|
ngOnInit(): void { |
|
|
|
|
const that = this; |
|
|
|
|
|
|
|
|
|
// iframe接收消息
|
|
|
|
|
window.addEventListener('message', function(e) { |
|
|
|
|
if (e.source != window.parent)
|
|
|
|
|
return; |
|
|
|
|
console.log('children',e) |
|
|
|
|
}, false); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
window.setTimeout(() => { |
|
|
|
|
document.getElementById('center').oncontextmenu = function(event) { |
|
|
|
|
that.workingArea.cancelPaint(); |
|
|
|
@ -7487,9 +7478,14 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ngAfterViewInit(): void { |
|
|
|
|
const that = this; |
|
|
|
|
this.workingArea.loadDemoScene(this.demoData, 0.149); |
|
|
|
|
|
|
|
|
|
this.dataInit(); |
|
|
|
|
// this.dataInit();
|
|
|
|
|
// iframe接收消息
|
|
|
|
|
window.parent.postMessage({eventKey: 'GET_VECHILE_REQUEST'}, '*'); |
|
|
|
|
window.addEventListener('message', function(e) { that.carDataKeDa(e) }, false); |
|
|
|
|
|
|
|
|
|
// 监听canvas组件选中素材事件
|
|
|
|
|
this.workingArea.on('select', obj => { |
|
|
|
|
// 选中素材属性注入函数
|
|
|
|
@ -7515,6 +7511,86 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit {
|
|
|
|
|
e == 0 ? this.workingArea.beginPaintingArrows() : this.workingArea.beginPaintPipeline(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
carData = [] //科达 车辆数据
|
|
|
|
|
//科达对接 车辆数据处理
|
|
|
|
|
carDataKeDa (e) { |
|
|
|
|
console.log('iframe子页面接收数据',e.data) |
|
|
|
|
if (e.data.data && e.data.data.length) { |
|
|
|
|
e.data.data.forEach(element => { |
|
|
|
|
element.TemplateId = null, |
|
|
|
|
element.FloorId = null, |
|
|
|
|
element.Angle = 0, |
|
|
|
|
element.Pipelines = [], |
|
|
|
|
element.Type = element.Type, |
|
|
|
|
element.Color = 0, |
|
|
|
|
element.Enabled = true, |
|
|
|
|
element.FillMode = 0, |
|
|
|
|
element.FireElementId = 0, |
|
|
|
|
element.FixedSize = false, |
|
|
|
|
element.CanConnection = true, |
|
|
|
|
element.ConnectionObjs = [], |
|
|
|
|
element.Height = 45, |
|
|
|
|
element.Width = 45, |
|
|
|
|
element.Id = element.Id || ObjectID.default.generate(), |
|
|
|
|
element.ImageUrl = this.carImgUrl(element.Type), |
|
|
|
|
element.InteractiveMode = 0, |
|
|
|
|
element.MultiPoint = null, |
|
|
|
|
element.Point = { |
|
|
|
|
x: 1295, |
|
|
|
|
y: 1237 |
|
|
|
|
}, |
|
|
|
|
element.Name = element.Name, |
|
|
|
|
element.FireTeamName = element.FireTeamName, // 所属消防队
|
|
|
|
|
element.ReachTime = element.ReachTime || 0, // 到场剩余时间
|
|
|
|
|
element.WaterYield = element.WaterYield || '0t', // 载水量
|
|
|
|
|
element.Foam = element.Foam || '0t', // 载泡沫
|
|
|
|
|
element.PeopleNum = element.PeopleNum || 0, // 载人数
|
|
|
|
|
element.Tonnage = element.Tonnage || '0t', // 吨位
|
|
|
|
|
element.Assignment = element.Assignment || '无', // 执行任务
|
|
|
|
|
element.LinkCar = [], // 连接车辆
|
|
|
|
|
element.WaterOccupy = [], // 水源占用
|
|
|
|
|
element.PropertyInfos = [ |
|
|
|
|
{ |
|
|
|
|
Enabled: true, |
|
|
|
|
Order: 0, |
|
|
|
|
PhysicalUnit: '', |
|
|
|
|
PropertyName: '名称/编号', |
|
|
|
|
PropertyType: 0, |
|
|
|
|
PropertyValue: element.FireTeamName, |
|
|
|
|
Required: false, |
|
|
|
|
RuleName: '', |
|
|
|
|
RuleValue: '', |
|
|
|
|
Tag: '', |
|
|
|
|
Visible: true |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
element.Border = null, |
|
|
|
|
element.DrawMode = null, |
|
|
|
|
element.Thickness = 0, |
|
|
|
|
element.IsFromBuilding = false, |
|
|
|
|
element.GameMode = 2 |
|
|
|
|
let isHave = this.carData.find(item=>{ return item.Id === element.Id }) |
|
|
|
|
if (isHave == undefined) { //没有当前车辆时
|
|
|
|
|
this.carData.push(element) |
|
|
|
|
this.workingArea.ShowCarIcon(element) |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//车辆 匹配素材 图片
|
|
|
|
|
carImgUrl (e) { |
|
|
|
|
if (e == 1) { |
|
|
|
|
return './assets/images/举高喷射消防车.png' |
|
|
|
|
} else if (e == 2) { |
|
|
|
|
return './assets/images/泡沫消防车.png' |
|
|
|
|
} else if (e == 3) { |
|
|
|
|
return './assets/images/水罐消防车.png' |
|
|
|
|
} else { |
|
|
|
|
return './assets/images/压缩空气泡沫消防车.png' |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 到场车辆初始化
|
|
|
|
|
dataInit() { |
|
|
|
|
this.allCarsData.forEach(item => { |
|
|
|
@ -7534,16 +7610,19 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit {
|
|
|
|
|
|
|
|
|
|
// 选择 车辆
|
|
|
|
|
selectCar(e, isSelect: boolean = true) { |
|
|
|
|
if (e.ReachTime == 0) { |
|
|
|
|
const list = []; |
|
|
|
|
list.push(e.Id); |
|
|
|
|
isSelect ? this.workingArea.setHighlight(list) : null; |
|
|
|
|
} else if (e.ReachTime && e.ReachTime != 0) { |
|
|
|
|
const config = new MatSnackBarConfig(); |
|
|
|
|
config.verticalPosition = 'top'; |
|
|
|
|
config.duration = 3000; |
|
|
|
|
this.snackBar.open('车辆目前未到场', '确定', config); |
|
|
|
|
} |
|
|
|
|
// if (e.ReachTime == 0) {
|
|
|
|
|
// const list = [];
|
|
|
|
|
// list.push(e.Id);
|
|
|
|
|
// isSelect ? this.workingArea.setHighlight(list) : null;
|
|
|
|
|
// } else if (e.ReachTime && e.ReachTime != 0) {
|
|
|
|
|
// const config = new MatSnackBarConfig();
|
|
|
|
|
// config.verticalPosition = 'top';
|
|
|
|
|
// config.duration = 3000;
|
|
|
|
|
// this.snackBar.open('车辆目前未到场', '确定', config);
|
|
|
|
|
// }
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 关闭 底部车辆信息
|
|
|
|
|