diff --git a/src/app/canvas-share-data.service.ts b/src/app/canvas-share-data.service.ts index 56daf18..afffbeb 100644 --- a/src/app/canvas-share-data.service.ts +++ b/src/app/canvas-share-data.service.ts @@ -20,6 +20,7 @@ export class CanvasShareDataService { isChange:boolean = false; // 数据 是否改动 selectTemplateData:any; // 选择当前 模板数据 + isMultiSelect:boolean = false; // 单选/多选 模板图标 // 总平面图/建筑 楼层 selectStorey: any = {area: '', details: ''}; // 选择当前 楼层 数据 @@ -29,7 +30,7 @@ export class CanvasShareDataService { // 处置 节点 allDisposalNode: any = []; // 所有 处置节点 - allNodeMarkers: any; // 灾情 标签信息 + allNodeMarkers: any = { highlightMarkers:{}, markers:{} }; // 灾情 标签信息 selectPanelPoint: DisposalNodeData = new DisposalNodeData(); // 当前数据节点 selectPanelPointBaseData: any = {description: '', notes: '', weather: '', airTemperature: '', windDirection: '', windScale: ''}; // 当前 数据节点 对应 父级节点 customizeDisposalNode:any; // 新建 自定义数据节点 底图+名称 diff --git a/src/app/key-unit/function-division-look/function-division.component.ts b/src/app/key-unit/function-division-look/function-division.component.ts index c9e0ccc..1828053 100644 --- a/src/app/key-unit/function-division-look/function-division.component.ts +++ b/src/app/key-unit/function-division-look/function-division.component.ts @@ -129,21 +129,45 @@ export class FunctionDivisionLookComponent implements OnInit { }) } + noDataList = [] //没有 创建功能分区 的建筑 //获得所有建筑的功能分区 getAllBuildingFunctionalZoning () { this.selectBuildingFunctionalZoning = [] this.allBuildingFunctionalZoning = [] - this.allBuilding.forEach(element => { + this.noDataList = [] + this.allBuilding.forEach((element,index) => { let data={buildingId: element.id} this.http.get(`/api/BuildingFunctionalDivisions`,{params:data}).subscribe((data:any)=>{ if (data.length) { element.functionalZoning = data this.selectBuildingFunctionalZoning.push([]) //拥有建筑功能分区的提前push空数组 - this.allBuildingFunctionalZoning.push(element) } + this.allBuildingFunctionalZoning.push(element) + this.noDataList.push(true) + } else { + this.noDataList.push(false) + } + if (this.noDataList.length === this.allBuilding.length) { this.addVoluntarilyPartition() } }) }); } + // 没有 创建 建筑功能分区时 自动创建 + addVoluntarilyPartition () { + let isFalse = [] + this.noDataList.forEach(item=> { item===false? isFalse.push(1) : null }) + if (isFalse.length === this.allBuilding.length) { //没有 建筑功能分区时 + let data = { + buildingId: this.allBuilding[0].id, + region: "", + area: 0, + details: "" + } + this.http.post('/api/BuildingFunctionalDivisions',data,{params:{companyId : this.route.snapshot.queryParams.id}}).subscribe(data=>{ + this.getAllBuilding() + }) + } //if + } + //封装函数刷新当前建筑功能分区 updateCurrent (e,index) { let data= {buildingId: e.id} diff --git a/src/app/key-unit/function-division/function-division.component.ts b/src/app/key-unit/function-division/function-division.component.ts index 2611f5e..ddc4d43 100644 --- a/src/app/key-unit/function-division/function-division.component.ts +++ b/src/app/key-unit/function-division/function-division.component.ts @@ -131,21 +131,45 @@ export class FunctionDivisionComponent implements OnInit { }) } + noDataList = [] //没有 创建功能分区 的建筑 //获得所有建筑的功能分区 getAllBuildingFunctionalZoning () { this.selectBuildingFunctionalZoning = [] this.allBuildingFunctionalZoning = [] - this.allBuilding.forEach(element => { + this.noDataList = [] + this.allBuilding.forEach((element,index) => { let data={buildingId: element.id} this.http.get(`/api/BuildingFunctionalDivisions`,{params:data}).subscribe((data:any)=>{ if (data.length) { element.functionalZoning = data this.selectBuildingFunctionalZoning.push([]) //拥有建筑功能分区的提前push空数组 - this.allBuildingFunctionalZoning.push(element) } + this.allBuildingFunctionalZoning.push(element) + this.noDataList.push(true) + } else { + this.noDataList.push(false) + } + if (this.noDataList.length === this.allBuilding.length) { this.addVoluntarilyPartition() } }) }); } + // 没有 创建 建筑功能分区时 自动创建 + addVoluntarilyPartition () { + let isFalse = [] + this.noDataList.forEach(item=> { item===false? isFalse.push(1) : null }) + if (isFalse.length === this.allBuilding.length) { //没有 建筑功能分区时 + let data = { + buildingId: this.allBuilding[0].id, + region: "", + area: 0, + details: "" + } + this.http.post('/api/BuildingFunctionalDivisions',data,{params:{companyId : this.route.snapshot.queryParams.id}}).subscribe(data=>{ + this.getAllBuilding() + }) + } //if + } + //封装函数刷新当前建筑功能分区 updateCurrent (e,index) { let data= {buildingId: e.id} diff --git a/src/app/key-unit/router-gis/router-gis.component.html b/src/app/key-unit/router-gis/router-gis.component.html index 857d101..01367b9 100644 --- a/src/app/key-unit/router-gis/router-gis.component.html +++ b/src/app/key-unit/router-gis/router-gis.component.html @@ -60,4 +60,6 @@ + + diff --git a/src/app/key-unit/router-gis/router-gis.component.scss b/src/app/key-unit/router-gis/router-gis.component.scss index 854f398..b9fc918 100644 --- a/src/app/key-unit/router-gis/router-gis.component.scss +++ b/src/app/key-unit/router-gis/router-gis.component.scss @@ -109,4 +109,11 @@ .routeGISPublicIcon { position: absolute; color: #fff; font-size: 14px; } //导航 定位部分公共样式 //选择路线 方案 button .routeType { margin: 0 10px; outline: none; border: none; background-color: transparent; font-size: 14px; font-weight: 550; color: rgb(122, 116, 116); } -.selectRouteType { color: #0080FF; } \ No newline at end of file +.selectRouteType { color: #0080FF; } + +//保存 +.submitRouter { + position: absolute; + top: 15px; + right: 30px; +} \ No newline at end of file diff --git a/src/app/key-unit/router-gis/router-gis.component.ts b/src/app/key-unit/router-gis/router-gis.component.ts index 3c50e52..26c5451 100644 --- a/src/app/key-unit/router-gis/router-gis.component.ts +++ b/src/app/key-unit/router-gis/router-gis.component.ts @@ -1,5 +1,7 @@ +import { HttpClient } from '@angular/common/http'; import { Component, EventEmitter, NgZone, OnInit, Output } from '@angular/core'; import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; +import { ActivatedRoute } from '@angular/router'; declare var AMap: any; @Component({ @@ -9,14 +11,75 @@ declare var AMap: any; }) export class RouterGISComponent implements OnInit { @Output() onCustomEvent: EventEmitter = new EventEmitter();//创建实力 - constructor(public _ngZone:NgZone,public snackBar: MatSnackBar,) { } + constructor(public _ngZone:NgZone,public snackBar: MatSnackBar,private http:HttpClient,private route:ActivatedRoute,) { } ngOnInit(): void { + this.getCompanyData() + } + + ngAfterViewInit(): void { window.setTimeout(()=>{ this.mapInit() },0) } + //获取单位 信息 + getCompanyData () { + this.http.get(`/api/Companies/${this.route.snapshot.queryParams.id}`).subscribe((data:any)=>{ + if (data.driveRouteStartPoint && data.driveRouteStartPoint.x && data.driveRouteStartPoint.y && data.driveRouteStartName) { //开始坐标 名称 + this.routeStart = data.driveRouteStartName + this.startCoordinate = [data.driveRouteStartPoint.x,data.driveRouteStartPoint.y] + } + if (data.driveRouteEndPoint && data.driveRouteEndPoint.x && data.driveRouteEndPoint.y && data.driveRouteEndName) { //结束坐标 名称 + this.routeEnd = data.driveRouteEndName + this.endCoordinate = [data.driveRouteEndPoint.x,data.driveRouteEndPoint.y] + } else if (data.location && data.location.x && data.location.y) { + this.routeEnd = data.name + this.endCoordinate = [data.location.x,data.location.y] + } + }) + } + + //保存 路线 + submitRouter () { + if (this.startCoordinate && this.endCoordinate && this.routeStart && this.routeEnd) { + let start = {x:null, y:null} + let end = {x:null, y:null} + if (this.startCoordinate instanceof Array) { + start.x = this.startCoordinate[0] + start.y = this.startCoordinate[1] + } else { + start.x = this.startCoordinate.lng + start.y = this.startCoordinate.lat + } + if (this.endCoordinate instanceof Array) { + end.x = this.endCoordinate[0] + end.y = this.endCoordinate[1] + } else { + end.x = this.endCoordinate.lng + end.y = this.endCoordinate.lat + } + let params = { + id: this.route.snapshot.queryParams.id, + driveRouteStartPoint: start, + driveRouteStartName: this.routeStart, + driveRouteEndPoint: end, + driveRouteEndName: this.routeEnd, + } + this.http.put(`/api/Companies/${this.route.snapshot.queryParams.id}`,params).subscribe(data=>{ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('保存成功','确定',config); + }) + } else { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('请先规划路线','确定',config); + } + } + //地图初始化 mapInit () { let that = this @@ -31,6 +94,9 @@ export class RouterGISComponent implements OnInit { layers:[layer], //当只想显示标准图层时layers属性可缺省, }); that.map.setCity('上海市'); + AMap.plugin('AMap.Driving', function() { + that.startCoordinate && that.endCoordinate? that.queryGISRoute() : null + }) } map:any; //地图实例 @@ -41,6 +107,9 @@ export class RouterGISComponent implements OnInit { timeout:any; //延时器 routeGIS:any; //查询结果 规划路线 selectType:boolean = true; //路线选择 推荐方案/躲避用拥堵 + routes:any = { distance: 0, time: 0, steps: [], };//导航查询结果 路线规划 + startCoordinate:any//开始坐标 + endCoordinate:any//结束坐标 //输入框 输入事件 routeChange (e) { @@ -56,7 +125,6 @@ export class RouterGISComponent implements OnInit { var autoComplete = new AMap.Autocomplete(autoOptions); autoComplete.search(keywords, function(status, result) { if (result && result.tips && result.tips.length) { //搜索到数据时 - that._ngZone.run(()=>{ if(e == 0){ that.routeStartList = result.tips @@ -113,10 +181,6 @@ export class RouterGISComponent implements OnInit { this.endCoordinate = data2 } - routes:any = { distance: 0, time: 0, steps: [], };//导航查询结果 路线规划 - startCoordinate:any//开始坐标 - endCoordinate:any//结束坐标 - //导航查询 queryGISRoute () { if (this.startCoordinate && this.endCoordinate) { diff --git a/src/app/ui/collection-tools/collection-tools.component.html b/src/app/ui/collection-tools/collection-tools.component.html index 09f418f..176ca4d 100644 --- a/src/app/ui/collection-tools/collection-tools.component.html +++ b/src/app/ui/collection-tools/collection-tools.component.html @@ -14,9 +14,9 @@ 想定作业名称visibility - + + 多选 + 显示图例 diff --git a/src/app/ui/collection-tools/collection-tools.component.ts b/src/app/ui/collection-tools/collection-tools.component.ts index 400ca8b..2ad033f 100644 --- a/src/app/ui/collection-tools/collection-tools.component.ts +++ b/src/app/ui/collection-tools/collection-tools.component.ts @@ -2436,6 +2436,12 @@ export class CollectionToolsComponent implements OnInit { this.selectingSitePlan = this.sitePlanData[index] || {} this.canvasData.selectStorey = this.sitePlanData[index] || {} //服务中 存一份数据 this.selectSitePlanIndex = index + if (index == -1) { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('匹配楼层已被删除','确定',config); + } Promise.all([fireData,planData]).then((res)=>{ this.getSitePlanStorey(this.selectingSitePlan) //获取 平面图 楼层数据 @@ -2452,6 +2458,12 @@ export class CollectionToolsComponent implements OnInit { this.selectingSitePlan = this.sitePlanData[index] || {} this.canvasData.selectStorey = this.sitePlanData[index] || {} //服务中 存一份数据 this.selectSitePlanIndex = index + if (index == -1) { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('匹配楼层已被删除','确定',config); + } Promise.all([fireData,planData]).then((res)=>{ this.getBuildingStorey(this.selectingSitePlan) //获取 建筑 楼层数据