diff --git a/src/app/http-interceptors/cache-token.service.ts b/src/app/http-interceptors/cache-token.service.ts index ec040d3..0192004 100644 --- a/src/app/http-interceptors/cache-token.service.ts +++ b/src/app/http-interceptors/cache-token.service.ts @@ -16,7 +16,7 @@ export class CacheTokenService { login () { return new Promise ((resolve,reject)=>{ sessionStorage.setItem("buildingTypeId",'5e7c9078a3050b1a840ed4ba'); //建筑类型 - sessionStorage.setItem("planId",''); //预案ID + sessionStorage.setItem("planId",'5f6957a29e91f4410005f5d7'); //预案ID sessionStorage.setItem("companyId",'5f67042b9e91f4410005f55c'); //单位ID this.http.post('/api/Account/SignIn',this.loginData).subscribe((data:any)=>{ sessionStorage.setItem("level",data.level); diff --git a/src/app/ui/collection-tools/collection-tools.component.html b/src/app/ui/collection-tools/collection-tools.component.html index 22fe9b2..0e3b5fb 100644 --- a/src/app/ui/collection-tools/collection-tools.component.html +++ b/src/app/ui/collection-tools/collection-tools.component.html @@ -1,6 +1,6 @@
-
+ -
+
- + +
+
+ 总平面图 +
+
+ {{item.name}} +
+ +
- - +
-
+ -
+
+ -
+ + -
+
keyboard_arrow_up keyboard_arrow_down @@ -249,207 +279,213 @@
+ +
+ +
+ +
- -
- -
-
-
- 属性 -
-
- -
-

面积(平方米)

-
{{canvasData.selectStorey.area}}
-

详情

-
- {{canvasData.selectStorey.details}} + +
+ + 属性 + + + 消防要素 + +
+
+ +
+ +
+

面积(平方米)

+
{{canvasData.selectStorey.area}}
+

详情

+
+ {{canvasData.selectStorey.details}} +
-
- -
-

{{assetName}}

+ +
+

{{assetName}}

-
-

宽度(像素)

- -

高度(像素)

- -

角度

-
- - +
+

宽度(像素)

+
{{assetWidth}}
+

高度(像素)

+
{{assetHeight}}
+

角度

+
+ +
{{sliderValue}}
+
-
- -
-

厚度

-
- - + +
+

厚度

+
+ +
{{sliderValueThickness}}
+
-
-

是否高亮

-
- - 选中高亮 -
-
-
- 颜色 -
+ +
+
+ 颜色 +
+
+ +

透明度

+ + +
{{colorDivSliderValue}}%
-
-
    -
  • -
-
- 透明度 - - {{colorDivSliderValue}}% -
-
- -
-

{{item.PropertyName}}({{item.PhysicalUnit}})

- -
- -
-

{{item.PropertyName}}({{item.PhysicalUnit}})

- -
- -
-

{{item.PropertyName}}({{item.PhysicalUnit}})

- -
- -
-
-

{{item.PropertyName}}

- {{imagesArr.length ? imagesArr.length : 0}} / {{item.PropertyValue}} - -
添加
- - -
-
-
+
+ +
+

{{item.PropertyName}}({{item.PhysicalUnit}})

+ +
{{item.PropertyValue}}
+
+ +
+

{{item.PropertyName}}({{item.PhysicalUnit}})

+ +
{{item.PropertyValue}}
+
+ +
+

{{item.PropertyName}}({{item.PhysicalUnit}})

+
{{item.PropertyValue}}
+
+ +
+
+ +

{{item.PropertyName}}

+ {{imagesArr.length ? imagesArr.length : 0}} / {{item.PropertyValue}} + +
+
+
+
+ +
+
- -
-
- - delete -
-
- -
-

{{item.PropertyName}}

- -
- -
-

{{item.PropertyName}}

- - -
- -
-

{{item.PropertyName}}

- -
- -
-

{{item.PropertyName}}

- -
-
-
- -
- -
- -
- -
-
- 消防要素 + +
+

{{item.PropertyName}}

+
+
西
+
+
+
东南
+
西南
+
东北
+
西北
+ +
+ +
+

{{item.PropertyName}}

+
+
+ + +
+ +
+

{{item.PropertyName}}

+
全部
+
高区
+
中区
+
低区
+
高中区
+
高低区
+
中底区
+
+ +
+

{{item.PropertyName}}

+
消火栓
+
喷淋
+
水幕
+
泡沫
+
消防
+
+
+
- -
- - + +
+ +
+ + + + + + + {{node.name}} + + ({{node.children.length}}) + visibility + - - - - {{node.name}} - - ({{node.children.length}}) - visibility - - - - - - - {{node.name}} - - ({{node.children.length}}) - visibility - - - + + + + + {{node.name}} + + ({{node.children.length}}) + visibility + + + +
-
+
diff --git a/src/app/ui/collection-tools/collection-tools.component.scss b/src/app/ui/collection-tools/collection-tools.component.scss index 9691f49..374f61a 100644 --- a/src/app/ui/collection-tools/collection-tools.component.scss +++ b/src/app/ui/collection-tools/collection-tools.component.scss @@ -12,8 +12,8 @@ flex-direction: column; .buildingbtnchecked{ - background-color: #34A6FD; color: white; + background-image: url("../../../assets/images/标签选中.png")!important; } } @@ -63,38 +63,133 @@ } } -//头部操作栏 +// //头部操作栏 +// .headerOperate { +// img { +// width: 24px; +// height: 24px; +// vertical-align: middle; +// margin-left: 1px; +// } +// span{ +// font-size: 18px; +// } +// flex: 5%; +// display: flex; +// align-items:center; +// min-height: 40px; +// box-sizing: border-box; +// margin: 3px 0; +// background-color: white; +// button{ +// border: 0.5px solid rgb(208, 211, 214); +// margin: 0 2px; +// } +// .editdeletebtn{ +// display: none; +// } +// .bigeditdeletebtn:hover{ +// .editdeletebtn{ +// display: inline-block; +// } +// } +// } .headerOperate { - img { - width: 24px; - height: 24px; - vertical-align: middle; - margin-left: 1px; - } + position: relative; span{ font-size: 18px; } - flex: 5%; + flex: 2%; display: flex; align-items:center; min-height: 40px; box-sizing: border-box; margin: 3px 0; - background-color: white; - button{ - border: 0.5px solid rgb(208, 211, 214); - margin: 0 2px; - } - .editdeletebtn{ - display: none; + + .bigeditdeletebtn{ + margin-right: 12px; + height: 80%; + display: flex; + flex-direction: column; + // align-items:center;/*由于flex-direction: column,因此align-items代表的是水平方向*/ + justify-content: center; + user-select: none; + background-image: url("../../../assets/images/标签正常.png") ; + background-size:100% 100%; + color: white; + span{ + padding: 0 13px; + padding-right: 18px; + } } .bigeditdeletebtn:hover{ - .editdeletebtn{ - display: inline-block; + cursor: pointer; + background-image: url("../../../assets/images/标签经过.png") ; + } + .bigTalkBox{ + user-select: none; + .titleIcon{ + font-size: 33px; + vertical-align: sub; + color: white; + } + .talkBox{ + width: 309px; + height: 326px; + border: 1px solid #30bbec; + background-color: #013a64; + opacity: .9 ; + position: absolute; + top: 32px; + right:4px; + z-index: 2000; + .btndiv{ + div{ + border-radius: 18px; + width: 70px; + height: 30px; + text-align: center; + line-height: 30px; + display: inline-block; + font-size: 13px; + color: white; + cursor: pointer; + + } + div:nth-child(1){ + background-color: #fe9400; + margin: 10px; + } + div:nth-child(2){ + background-color: #f95e5a; + } + } + .bottomDiv{ + position: absolute; + bottom:6px; + width: 100%; + height: 32px; + line-height: 32px; + display: flex; + color: white; + text-align: center; + div:nth-child(1){ + flex: 1; + } + div:nth-child(2){ + flex: 6; + color: #409eff; + background: url('../../../assets/images/输入框.png'); + background-size: 100% 100%; + } + div:nth-child(3){ + flex: 1; + + } + } } } } - //功能区 // icon统一样式 .mat-icon { @@ -103,27 +198,25 @@ } //左右两侧功能栏 统一样式 .publicCss { + overflow: hidden; border-radius: 5px; - position: absolute; - height: 100%; top: 0; } .functionalDomain { - flex: 90%; + flex: 98%; .functionalDomainContent { + display: flex; position: relative; width: 100%; height: 100%; } .functionalDomainLeft { - background-color: #fff; + flex: 1; display: flex; flex-direction: column; margin-left: 0px; transition: margin-left 0.5s; - min-width: 235px; border: 1px solid #E6EAEE; - width: 235px; left: 0; z-index: 111; .leftDragDiv{ @@ -135,14 +228,19 @@ cursor: e-resize; } } + .canvas{ + flex: 5; + } .functionalDomainRight { + color: white; + // background-color: #113e5e; z-index: 1001; margin-right: 0px; transition: margin-right 0.5s; - border: 1px solid #464646; + border: 1px solid #30bbec; width: 235px; right: 0; - + flex: 1; } //右边导航栏显示隐藏 .togglePanel2 { @@ -160,23 +258,23 @@ //右边操作栏 .title{ width: 100%; - height: 35px; - background-color: #464646; - div{ - width: 50%; - height: 35px; - line-height: 35px; - background-color: #595959; - border-radius: 5px; - span{ - color: white; - font-size: 14px; - font-weight: 400; - padding-left: 5px; - } + height: 40px; + line-height: 40px; + border-bottom:2px solid #accbf2; + display: flex; + align-content: center; + span{ + display: inline-block; + flex: 1; + text-align: center; + } + span:hover{ + cursor: pointer; } } - +.selectedTitle{ + background: #0c2d44; +} //右侧属性 .property{ @@ -186,15 +284,20 @@ height: 100%; overflow-y: auto; p{ - color: #9c9fa5; - padding-left: 5px; + color: #d0e0f4; + padding-left: 7px; + letter-spacing:3px; + margin: 5px 0; } .siteproperty_size{ - background-color: #e3e3e3; + border-bottom:1px solid #d0e0f4; width: 93%; margin: 0 auto; - border-radius: 3px; min-height: 21px; + color: #2399f1; + padding-bottom: 5px; + font-size: 16px; + letter-spacing:2px; } .rightAttribute{ width: 12%; @@ -210,9 +313,21 @@ overflow-y: auto; height: 100%; p{ - color: #9c9fa5; - margin:1px 0 3px 8px; - font-size: 14px; + + color: #d0e0f4; + padding-left: 7px; + letter-spacing:3px; + margin: 5px 0; + } + .siteproperty_size{ + border-bottom:1px solid #d0e0f4; + width: 93%; + margin: 0 auto; + min-height: 21px; + color: #2399f1; + padding-bottom: 5px; + font-size: 16px; + letter-spacing:2px; } span{ font-size: 15px; @@ -268,21 +383,7 @@ .colorBigDiv{ width: 88%; margin-left: 8px; - .colorBigTemplateDiv{ - span{ - color: #9c9fa5; - font-size: 14px; - height: 26px; - line-height: 26px; - } - .colorTemplateDiv{ - width: 65%; - height: 22px; - display: inline-block; - vertical-align: middle; - margin-left: 26px; - } - } + .colorDiv{ .colorLi{ @@ -297,14 +398,28 @@ } } } - + .colorBigTemplateDiv{ + span{ + color: #9c9fa5; + font-size: 14px; + height: 26px; + line-height: 26px; + } + .colorTemplateDiv{ + width: 65%; + height: 22px; + display: inline-block; + vertical-align: middle; + margin-left: 26px; + } + } } } //右侧消防要素 .firecategories{ position: relative; - display: flex; - flex-flow: column; + // display: flex; + // flex-flow: column; .firecategoriesTree{ overflow-y: auto; height: 100%; @@ -314,6 +429,13 @@ .isLookCss{ position: absolute; right: 6px; + z-index: 1000; + } + } + .mat-tree{ + background-color:transparent; + .mat-tree-node{ + color: white!important; } } } diff --git a/src/app/ui/collection-tools/collection-tools.component.ts b/src/app/ui/collection-tools/collection-tools.component.ts index 3d00c96..a0539e7 100644 --- a/src/app/ui/collection-tools/collection-tools.component.ts +++ b/src/app/ui/collection-tools/collection-tools.component.ts @@ -479,7 +479,7 @@ export class CollectionToolsComponent implements OnInit { } ngOnInit(): void { - + // this.canvas.setNameVisible(this.basicInfo,1) let that = this window.setTimeout(()=>{ document.getElementById("functionalDomainContent").oncontextmenu = function (event) { @@ -494,7 +494,20 @@ export class CollectionToolsComponent implements OnInit { }) } - + //右侧属性和消防要素切换 + isProperty = true + rightSwitch(type){ + if(type == 1){ + this.isProperty = true + }else{ + this.isProperty = false + } + } + //打开说话框 + isOpenTalk = false + openTalkDiv(){ + this.isOpenTalk = !this.isOpenTalk + } ngAfterViewInit(): void { // 监听canvas组件选中素材事件 @@ -530,7 +543,7 @@ export class CollectionToolsComponent implements OnInit { } basicInfo:boolean = true //基本信息名称显隐 - wantToWork:boolean = true //想定作业名称显隐 + wantToWork:boolean = false //想定作业名称显隐 //点击基本信息名称 basicInfoClick(){ this.basicInfo = !this.basicInfo @@ -1064,24 +1077,21 @@ export class CollectionToolsComponent implements OnInit { //计算 可视区域内宽度, 是否缩放背景图 backGroundScale () { let that = this - let dad = document.querySelector('.functionalDomainContent').clientWidth - let dadHeight = document.querySelector('.functionalDomainContent').clientHeight - let left = document.querySelector('.functionalDomainLeft').clientWidth - let right = document.querySelector('.functionalDomainRight').clientWidth - let imgWidth = dad - left - right//可视区域内 宽度 + let dadWidth = document.querySelector('.canvas').clientWidth + let dadHeight = document.querySelector('.canvas').clientHeight let img = new Image() img.src = this.selectingSitePlan.imageUrl; img.onload = function(){ - if (img.height > dadHeight && img.width > imgWidth) { - let width = imgWidth/img.width + if (img.height > dadHeight && img.width > dadWidth) { + let width = dadWidth/img.width let height = dadHeight/img.height that.canvas.setBackgroundScale((width>height? height : width)-0.005) return } else if (img.height > dadHeight) { that.canvas.setBackgroundScale((dadHeight/img.height)-0.005) return - } else if (img.width > imgWidth) { - that.canvas.setBackgroundScale((imgWidth/img.width)-0.005) + } else if (img.width > dadWidth) { + that.canvas.setBackgroundScale((dadWidth/img.width)-0.005) return } }; @@ -1661,6 +1671,7 @@ export class CollectionToolsComponent implements OnInit { let params = {componentId: sessionStorage.getItem('planId')} this.http.get('/api/Disasters',{params:params}).subscribe((data:any)=>{ this.allFirePlan = data + this.getDisposalNode() if (!data.length) { let msg = { name: '灾情', diff --git a/src/app/ui/collection-tools/panel.scss b/src/app/ui/collection-tools/panel.scss index 857c3ff..e66d284 100644 --- a/src/app/ui/collection-tools/panel.scss +++ b/src/app/ui/collection-tools/panel.scss @@ -278,7 +278,7 @@ justify-content: space-between; /* 水平居中 */ } .functionalDomainContent { - width: 300px; + // width: 300px; height: 100%; textarea { border-radius: 5px; diff --git a/src/app/ui/dangerous/dangerous.component.scss b/src/app/ui/dangerous/dangerous.component.scss index 488243e..150b9c7 100644 --- a/src/app/ui/dangerous/dangerous.component.scss +++ b/src/app/ui/dangerous/dangerous.component.scss @@ -188,4 +188,5 @@ z-index: 101; left: 6px; top: 0; + } diff --git a/src/app/ui/plan-assistance/plan-assistance.component.html b/src/app/ui/plan-assistance/plan-assistance.component.html index 4d9ed9b..8e9cf2c 100644 --- a/src/app/ui/plan-assistance/plan-assistance.component.html +++ b/src/app/ui/plan-assistance/plan-assistance.component.html @@ -3,15 +3,15 @@
到场力量
-
+

{{item.Name}}

{{item.FireTeamName}}

已到场
-
diff --git a/src/app/ui/plan-assistance/plan-assistance.component.ts b/src/app/ui/plan-assistance/plan-assistance.component.ts index 799c99b..a3db338 100644 --- a/src/app/ui/plan-assistance/plan-assistance.component.ts +++ b/src/app/ui/plan-assistance/plan-assistance.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit, AfterViewInit, ViewChild, } from '@angular/core'; import { WorkingAreaComponent } from 'src/app/working-area/working-area.component'; import {CanvasShareDataService} from '../../canvas-share-data.service'; +import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; import * as ObjectID from 'bson-objectid'; @Component({ @@ -9,7 +10,7 @@ import * as ObjectID from 'bson-objectid'; styleUrls: ['./plan-assistance.component.scss'] }) export class PlanAssistanceComponent implements OnInit, AfterViewInit { - constructor(public canvasData: CanvasShareDataService) { } + constructor(public canvasData: CanvasShareDataService, public snackBar: MatSnackBar, ) { } @ViewChild('workingArea') workingArea: WorkingAreaComponent; @@ -6639,7 +6640,7 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { DrawMode: null, Thickness: 0, IsFromBuilding: false, - GameMode: 2 + GameMode: 0 }; // 所有车辆信息 @@ -6864,15 +6865,15 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { y: 1237 }, Name: '水罐消防车', - FireTeamName: '八塘消防救援站', //所属消防队 - ReachTime: 240, //到场剩余时间 - WaterYield: '12t',//载水量 - Foam: '0t', //载泡沫 - PeopleNum: 6, //载人数 - Tonnage: '14t', //吨位 - Assignment: '冷却', //执行任务 - LinkCar: '', //连接车辆 - WaterOccupy: '', //水源占用 + FireTeamName: '八塘消防救援站', // 所属消防队 + ReachTime: 240, // 到场剩余时间 + WaterYield: '12t', // 载水量 + Foam: '0t', // 载泡沫 + PeopleNum: 6, // 载人数 + Tonnage: '14t', // 吨位 + Assignment: '冷却', // 执行任务 + LinkCar: '', // 连接车辆 + WaterOccupy: '', // 水源占用 PropertyInfos: [ { Enabled: true, @@ -6914,15 +6915,15 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { y: 1237 }, Name: '水罐泡沫消防车', - FireTeamName: '八塘消防救援站', //所属消防队 - ReachTime: 240, //到场剩余时间 - WaterYield: '6t',//载水量 - Foam: '2t', //载泡沫 - PeopleNum: 6, //载人数 - Tonnage: '8t', //吨位 - Assignment: '冷却', //执行任务 - LinkCar: '', //连接车辆 - WaterOccupy: '', //水源占用 + FireTeamName: '八塘消防救援站', // 所属消防队 + ReachTime: 240, // 到场剩余时间 + WaterYield: '6t', // 载水量 + Foam: '2t', // 载泡沫 + PeopleNum: 6, // 载人数 + Tonnage: '8t', // 吨位 + Assignment: '冷却', // 执行任务 + LinkCar: '', // 连接车辆 + WaterOccupy: '', // 水源占用 PropertyInfos: [ { Enabled: true, @@ -6964,15 +6965,15 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { y: 1237 }, Name: '水罐泡沫消防车', - FireTeamName: '八塘消防救援站', //所属消防队 - ReachTime: 240, //到场剩余时间 - WaterYield: '3t',//载水量 - Foam: '1t', //载泡沫 - PeopleNum: 8, //载人数 - Tonnage: '5t', //吨位 - Assignment: '堵截', //执行任务 - LinkCar: '', //连接车辆 - WaterOccupy: '', //水源占用 + FireTeamName: '八塘消防救援站', // 所属消防队 + ReachTime: 240, // 到场剩余时间 + WaterYield: '3t', // 载水量 + Foam: '1t', // 载泡沫 + PeopleNum: 8, // 载人数 + Tonnage: '5t', // 吨位 + Assignment: '堵截', // 执行任务 + LinkCar: '', // 连接车辆 + WaterOccupy: '', // 水源占用 PropertyInfos: [ { Enabled: true, @@ -7014,15 +7015,15 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { y: 1237 }, Name: '举高喷射消防车', - FireTeamName: '八塘消防救援站', //所属消防队 - ReachTime: 300, //到场剩余时间 - WaterYield: '16t',//载水量 - Foam: '2t', //载泡沫 - PeopleNum: 4, //载人数 - Tonnage: '18t', //吨位 - Assignment: '灭火', //执行任务 - LinkCar: '', //连接车辆 - WaterOccupy: '', //水源占用 + FireTeamName: '八塘消防救援站', // 所属消防队 + ReachTime: 300, // 到场剩余时间 + WaterYield: '16t', // 载水量 + Foam: '2t', // 载泡沫 + PeopleNum: 4, // 载人数 + Tonnage: '18t', // 吨位 + Assignment: '灭火', // 执行任务 + LinkCar: '', // 连接车辆 + WaterOccupy: '', // 水源占用 PropertyInfos: [ { Enabled: true, @@ -7064,15 +7065,15 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { y: 1237 }, Name: '水罐泡沫消防车', - FireTeamName: '龚州消防救援站', //所属消防队 - ReachTime: 660, //到场剩余时间 - WaterYield: '6t',//载水量 - Foam: '2t', //载泡沫 - PeopleNum: 6, //载人数 - Tonnage: '8t', //吨位 - Assignment: '供液', //执行任务 - LinkCar: '', //连接车辆 - WaterOccupy: '', //水源占用 + FireTeamName: '龚州消防救援站', // 所属消防队 + ReachTime: 660, // 到场剩余时间 + WaterYield: '6t', // 载水量 + Foam: '2t', // 载泡沫 + PeopleNum: 6, // 载人数 + Tonnage: '8t', // 吨位 + Assignment: '供液', // 执行任务 + LinkCar: '', // 连接车辆 + WaterOccupy: '', // 水源占用 PropertyInfos: [ { Enabled: true, @@ -7114,15 +7115,15 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { y: 1237 }, Name: '水罐泡沫消防车', - FireTeamName: '龚州消防救援站', //所属消防队 - ReachTime: 720, //到场剩余时间 - WaterYield: '5t',//载水量 - Foam: '1t', //载泡沫 - PeopleNum: 6, //载人数 - Tonnage: '7t', //吨位 - Assignment: '供液', //执行任务 - LinkCar: '', //连接车辆 - WaterOccupy: '', //水源占用 + FireTeamName: '龚州消防救援站', // 所属消防队 + ReachTime: 720, // 到场剩余时间 + WaterYield: '5t', // 载水量 + Foam: '1t', // 载泡沫 + PeopleNum: 6, // 载人数 + Tonnage: '7t', // 吨位 + Assignment: '供液', // 执行任务 + LinkCar: '', // 连接车辆 + WaterOccupy: '', // 水源占用 PropertyInfos: [ { Enabled: true, @@ -7164,15 +7165,15 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { y: 1237 }, Name: '水罐泡沫消防车', - FireTeamName: '龚州消防救援站', //所属消防队 - ReachTime: 960, //到场剩余时间 - WaterYield: '3t',//载水量 - Foam: '1t', //载泡沫 - PeopleNum: 6, //载人数 - Tonnage: '5t', //吨位 - Assignment: '供液', //执行任务 - LinkCar: '', //连接车辆 - WaterOccupy: '', //水源占用 + FireTeamName: '龚州消防救援站', // 所属消防队 + ReachTime: 960, // 到场剩余时间 + WaterYield: '3t', // 载水量 + Foam: '1t', // 载泡沫 + PeopleNum: 6, // 载人数 + Tonnage: '5t', // 吨位 + Assignment: '供液', // 执行任务 + LinkCar: '', // 连接车辆 + WaterOccupy: '', // 水源占用 PropertyInfos: [ { Enabled: true, @@ -7214,15 +7215,15 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { y: 1237 }, Name: '举高喷射消防车', - FireTeamName: '龚州消防救援站', //所属消防队 - ReachTime: 960, //到场剩余时间 - WaterYield: '18t',//载水量 - Foam: '2t', //载泡沫 - PeopleNum: 4, //载人数 - Tonnage: '20t', //吨位 - Assignment: '灭火', //执行任务 - LinkCar: '', //连接车辆 - WaterOccupy: '', //水源占用 + FireTeamName: '龚州消防救援站', // 所属消防队 + ReachTime: 960, // 到场剩余时间 + WaterYield: '18t', // 载水量 + Foam: '2t', // 载泡沫 + PeopleNum: 4, // 载人数 + Tonnage: '20t', // 吨位 + Assignment: '灭火', // 执行任务 + LinkCar: '', // 连接车辆 + WaterOccupy: '', // 水源占用 PropertyInfos: [ { Enabled: true, @@ -7249,6 +7250,8 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { bottomIsShow = false; // 底部车辆信息是否展示 rightIsShow = true; // 右侧楼层是否展示 rightSayIsShow = false; // 右侧语音是否展示 + selectCarID:string = ''; // 选中车辆 样式 + ngOnInit(): void { const that = this; window.setTimeout(() => { @@ -7261,28 +7264,62 @@ export class PlanAssistanceComponent implements OnInit, AfterViewInit { ngAfterViewInit(): void { this.workingArea.loadDemoScene(this.demoData, 0.149); + + this.dataInit(); + // 监听canvas组件选中素材事件 + this.workingArea.on("select",obj=>{ + //选中素材属性注入函数 + this.selectCar(obj.assetData,false) + }) + // 监听canvas组件取消选中素材事件 + this.workingArea.on("deselect",obj=>{ + this.bottomIsShow = false; + this.selectCarID = '' + }); } // 开始绘制 plot(e) { + e == 0 ? this.workingArea.beginPaintingArrows() : this.workingArea.beginPaintPipeline(); + } + // 到场车辆初始化 + dataInit() { + this.allCarsData.forEach(item => { + item.ReachTime == 0 ? this.workingArea.ShowCarIcon(item) : null; + }); } - //倒计时结束 - handleEvent (e,item) { - e.left==0? item.ReachTime=0 : null + // 倒计时结束 + handleEvent(e, item) { + if (e.left == 0) { + item.ReachTime = 0; + this.workingArea.ShowCarIcon(item); + } else { + item.ReachTime = e.left / 1000; + } } //选择 车辆 - selectCar (e) { - console.log(e) - this.canvasData.selectCar = e - this.bottomIsShow = true + selectCar (e,isSelect:boolean = true) { + if (e.ReachTime == 0) { + this.canvasData.selectCar = e + this.selectCarID = JSON.parse(JSON.stringify( e.Id )) + this.bottomIsShow = true + let list = [] + list.push(e.Id) + isSelect? this.workingArea.setHighlight(list) : null + } else { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000; + this.snackBar.open('车辆目前未到场', '确定', config); + } } - //关闭 底部车辆信息 - closeBottom () { - this.bottomIsShow = false + // 关闭 底部车辆信息 + closeBottom() { + this.bottomIsShow = false; } // 打开 右侧楼层 diff --git a/src/app/ui/plan/collection-tools.component.ts b/src/app/ui/plan/collection-tools.component.ts index 233f1f6..63062ad 100644 --- a/src/app/ui/plan/collection-tools.component.ts +++ b/src/app/ui/plan/collection-tools.component.ts @@ -9,7 +9,7 @@ import {WorkingAreaComponent} from '../../working-area/working-area.component' import {CanvasShareDataService,GameMode} from '../../canvas-share-data.service' //引入服务 import Viewer from 'viewerjs'; @Component({ - selector: 'app-collection-tools', + selector: 'plan', templateUrl: './collection-tools.component.html', styleUrls: ['./collection-tools.component.scss'] }) diff --git a/src/app/ui/similar-plans/similar-plans.component.html b/src/app/ui/similar-plans/similar-plans.component.html index 5c5605a..c35b400 100644 --- a/src/app/ui/similar-plans/similar-plans.component.html +++ b/src/app/ui/similar-plans/similar-plans.component.html @@ -1,4 +1,4 @@ -
+ +
+ +
\ No newline at end of file diff --git a/src/app/ui/similar-plans/similar-plans.component.ts b/src/app/ui/similar-plans/similar-plans.component.ts index 78997e0..078b54c 100644 --- a/src/app/ui/similar-plans/similar-plans.component.ts +++ b/src/app/ui/similar-plans/similar-plans.component.ts @@ -31,4 +31,5 @@ export class SimilarPlansComponent implements OnInit { + } diff --git a/src/app/working-area/working-area.component.ts b/src/app/working-area/working-area.component.ts index 33bb2d6..b6a977b 100644 --- a/src/app/working-area/working-area.component.ts +++ b/src/app/working-area/working-area.component.ts @@ -121,6 +121,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV // 是否登录 public verificationURL = '/ui/plan'; // 验证url地址是否为验证页面 + public verificationURLTwo = '/ui/similarPlans'; // 验证url地址是否为验证页面 count = 0; isLogin() { const token = sessionStorage.getItem('token'); // 判断 是否登录状态 @@ -241,7 +242,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV this.content.nativeElement.appendChild(this.app.view); const url = this.router.url; // tslint:disable-next-line: no-unused-expression - url === this.verificationURL ? this.isLogin() : null; + url === this.verificationURL || url === this.verificationURLTwo ? this.isLogin() : null; this.createBackgroundImage(); // this.createPreviewSinglePointIcon(); @@ -250,6 +251,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV // this.createEnterPaintEndButton(); // this.backgroundImage.addChild(this.paintingLine); this.on('select', obj => { + console.log('选择了' + obj); if (this.allowEdit) { if (obj instanceof MultipointIcon) { obj.setPointVisiable(true); @@ -372,7 +374,10 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV public setHighlight(ids: string[]): void { this.selection.deselectAll(); ids.forEach(item => { - const obj = this.backgroundImage.getChildByName(item); + let obj = this.backgroundImage.getChildByName(item); + if (obj === null) { + obj = this.app.stage.getChildByName(item); + } this.selection.select(obj); }); } @@ -429,106 +434,118 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV list.forEach(element => { const single = new SinglePointIcon(element, this); }); - this.setNameVisible(false, GameMode.BasicInformation); + this.setNameVisible(false, GameMode.BasicInformation); const tempData = { - TemplateId: null, - FloorId: null, - Angle: 0, - Color: 0, - Enabled: true, - FillMode: 0, - FireElementId: 0, - FixedSize: false, - CanConnection: true, - ConnectionObjs: [], - Height: 45, - Width: 45, - Id: '5f67f92238f13cd2048cae9d', - ImageUrl: './assets/images/泡沫消防车.png', - InteractiveMode: 0, - MultiPoint: null, - Point: { - x: 1295, - y: 1237 - }, - Name: '', - PropertyInfos: [ - { - Enabled: true, - Order: 0, - PhysicalUnit: '', - PropertyName: '名称/编号', - PropertyType: 0, - PropertyValue: '', - Required: false, - RuleName: '', - RuleValue: '', - Tag: '', - Visible: true - } - ], - Border: null, - DrawMode: null, - Thickness: 0, - IsFromBuilding: false, - GameMode: 2 - }; - - const tempData2 = { - TemplateId: null, - FloorId: null, - Angle: 0, - Color: 0, - Enabled: true, - FillMode: 0, - FireElementId: 0, - CanConnection: true, - ConnectionObjs: [], - FixedSize: false, - Height: 45, - Width: 45, - Id: '5f67f92238f13cd2048cae9d', - ImageUrl: './assets/images/水罐消防车.png', - InteractiveMode: 0, - MultiPoint: null, - Point: { - x: 1295, - y: 1237 - }, - Name: '', - PropertyInfos: [ - { - Enabled: true, - Order: 0, - PhysicalUnit: '', - PropertyName: '名称/编号', - PropertyType: 0, - PropertyValue: '', - Required: false, - RuleName: '', - RuleValue: '', - Tag: '', - Visible: true - } - ], - Border: null, - DrawMode: null, - Thickness: 0, - IsFromBuilding: false, - GameMode: 2 - }; - this.ShowCarIcon(tempData); - this.ShowCarIcon(tempData2); - this.ShowCarIcon(tempData); - this.ShowCarIcon(tempData2); - this.ShowCarIcon(tempData); - this.ShowCarIcon(tempData2); - - // // 开始绘制管线 - // this.beginPaintPipeline(); - this.beginPaintingArrows(); + Id: '5f6719a4e03abe3856d87d7b', + Name: '作业面', + Angle: 0, + Color: '#066eed80', + Point: { + x: 2139, + y: 399 + }, + Width: 32, + Border: { + w: 0, + x: 0, + y: 0, + z: 0 + }, + Height: 32, + Enabled: true, + FloorId: '5f670bb79e91f4410005f564', + DrawMode: 0, + FillMode: 1, + GameMode: 1, + ImageUrl: '/api/Objects/PlanPlatform/5e7b384e8121c2286c0cb290.png', + CompanyId: '5f67042b9e91f4410005f55c', + FixedSize: false, + CanConnection: true, + ConnectionObjs: [], + Thickness: 0, + BuildingId: '5f6704859e91f4410005f55f', + MultiPoint: [ + { + x: 2139, + y: 399 + }, + { + x: 2194, + y: 399 + }, + { + x: 2194, + y: 1217 + }, + { + x: 2139, + y: 1217 + }, + ], + TemplateId: '5e7b38610137e12020bd7f7b', + FireElementId: '5e7967f30814180f1c1ecaab', + PropertyInfos: [ + { + Tag: '', + Order: 0, + Enabled: true, + Visible: true, + Required: false, + RuleName: '', + RuleValue: '', + PhysicalUnit: '', + PropertyName: '名称/编号', + PropertyType: 0, + PropertyValue: '15' + }, + { + Tag: '', + Order: 0, + Enabled: true, + Visible: true, + Required: false, + RuleName: '', + RuleValue: '', + PhysicalUnit: '', + PropertyName: '压力', + PropertyType: 0, + PropertyValue: '0.1Mpa' + }, + { + Tag: '', + Order: 0, + Enabled: true, + Visible: true, + Required: false, + RuleName: '', + RuleValue: '', + PhysicalUnit: '张', + PropertyName: '图片', + PropertyType: 4, + PropertyValue: '5' + }, + { + Tag: null, + Order: 0, + Enabled: false, + Visible: false, + Required: false, + RuleName: null, + RuleValue: null, + PhysicalUnit: null, + PropertyName: '图片', + PropertyType: 3, + PropertyValue: '/api/Objects/WebPlan2D/5f67042b9e91f4410005f55c/5f6717b48db9a325049fa975.jpg' + } + ], + IsFromBuilding: true, + InteractiveMode: 0 + } + ; + + const poly = new PolygonIcon(tempData, this); } /** * 显示车辆图标 @@ -769,7 +786,6 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV } else { this.paintingArrows.ready = true; this.paintingArrows = null; - this.beginPaintPipeline(); } break; } @@ -959,7 +975,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV /** * 开始绘制管线 */ - private beginPaintPipeline(): void { + public beginPaintPipeline(): void { this.paintMode = PaintMode.Pipeline; } public paintingPipelineFinish(): void { @@ -968,7 +984,6 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV this.paintPoints.splice(0, this.paintPoints.length); this.paintingPipeline = null; } - this.beginPaintingArrows(); } public beginPaintingArrows(): void { this.paintMode = PaintMode.Arrows; @@ -1258,6 +1273,10 @@ export class SinglePointIcon extends PIXI.Container { this.text.y = this.image.y - this.image.height / 2; this.text.anchor.set(0.5, 1); + if (this.assetData.GameMode === 2) { + this.text.visible = false; + } + this.addChild(this.text); this.addChild(this.image); }