diff --git a/src/app/ui/fire-fighting-device/fire-fighting-device.component.html b/src/app/ui/fire-fighting-device/fire-fighting-device.component.html index e6ccda2..799f1b8 100644 --- a/src/app/ui/fire-fighting-device/fire-fighting-device.component.html +++ b/src/app/ui/fire-fighting-device/fire-fighting-device.component.html @@ -1,5 +1,5 @@
- + + + + + - + - +
@@ -169,17 +321,22 @@

{{item.name}}

- description + description +
- - - + + + - {{radio.name}} + {{radio.name}}
diff --git a/src/app/ui/fire-fighting-device/fire-fighting-device.component.ts b/src/app/ui/fire-fighting-device/fire-fighting-device.component.ts index 38f6734..b199750 100644 --- a/src/app/ui/fire-fighting-device/fire-fighting-device.component.ts +++ b/src/app/ui/fire-fighting-device/fire-fighting-device.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import {HttpClient, HttpHeaders} from '@angular/common/http' +import { HttpClient, HttpHeaders } from '@angular/common/http' import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { ImgsDataDetail } from './addGrouping.component' import { MatSnackBarConfig, MatSnackBar } from '@angular/material/snack-bar'; @@ -18,7 +18,7 @@ export interface Food { }) export class FireFightingDeviceComponent implements OnInit { - constructor(public http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } + constructor(public http: HttpClient, public dialog: MatDialog, public snackBar: MatSnackBar) { } ngOnInit(): void { this.getCompanyInformation() @@ -26,30 +26,31 @@ export class FireFightingDeviceComponent implements OnInit { } //定义属性数据 - singleElection:Food[]=[ - {value:'true', name: '有'}, - {value:'false', name: '无'}] + singleElection: Food[] = [ + { value: 'true', name: '有' }, + { value: 'false', name: '无' }] - companyBuiltInGrouping:any = []; //单位消防设施内置分组 - companyDetails:any = []; //单位详情 - companyEachDetails:any = [] //单位每层详情 - companyOptionalGrouping:any = []; //单位消防设施可选分组 + companyBuiltInGrouping: any = []; //单位消防设施内置分组 + companyDetails: any = []; //单位详情 + companyEachDetails: any = [] //单位每层详情 + companyOptionalGrouping: any = []; //单位消防设施可选分组 //获得单位基本信息 - getCompanyInformation () { - this.http.get('/api/CompanyAccount/Company').subscribe((data:any)=>{ + getCompanyInformation() { + this.http.get('/api/CompanyAccount/Company').subscribe((data: any) => { if (data.buildingTypes.length) { - let newData = {buildingType: data.buildingTypes[0].id} - this.http.get('/api/CompanyAccount/CompanyFacilities',{params:newData}).subscribe((data:any)=>{ //获得单位的消防设施 + let newData = { buildingType: data.buildingTypes[0].id } + this.http.get('/api/CompanyAccount/CompanyFacilities', { params: newData }).subscribe((data: any) => { //获得单位的消防设施 this.companyBuiltInGrouping = data[0].summary.companyFacilityGroups this.companyOptionalGrouping = data[0].summary.companyOptionalGroups this.companyDetails = data[0].details this.companyEachDetails = data[0].eachDetails this.companyBuiltInGrouping.forEach(element => { //循环单位内置分组项 element.selectBuiltInGrouping = [] - element.facilityItems.forEach((elements,index) => { + element.facilityItems.forEach((elements, index) => { elements.total = element.facilityCount[index] - elements.expanded = false}); + elements.expanded = false + }); }); }) //http } //if @@ -58,38 +59,241 @@ export class FireFightingDeviceComponent implements OnInit { } //创建单位消防设施内置分组项 - addCompanyGrouping (e) { + addCompanyGrouping(e) { let data = e - let dialogRef = this.dialog.open(ImgsDataDetail,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) { e.facilityItems.push(data) } }); + let dialogRef = this.dialog.open(ImgsDataDetail, { data }); + dialogRef.afterClosed().subscribe(data => { + if (data) { e.facilityItems.push(data) } + }); + } + + //消防水系统 + fireProtectionWaterSystem = { + waterSupplyNetwork: { name: '供水管网', total: '', details: '' },//供水管网 + sprinklerSystem: { name: '自动喷水灭火系统', total: '', details: '' }//自动喷水灭火系统 + } + //消防灭火给水系统 + FireExtinguishingWaterSupplySystem = { + sprinklerSystem: { name: '自动喷水灭火系统', total: '', details: '' },//自动喷水灭火系统 + AutomaticGasFireExtinguishingSystem: { name: '气体自动灭火系统', total: '', details: '' },//气体自动灭火系统 + firePumpRoom: { name: '消防泵房', total: '', details: '' }//消防泵房 + } + //其他 + other = { + purgingSystem: { name: '排烟系统', total: '', details: '' },//排烟系统 + fireExtinguisher: { name: '灭火器', total: '', details: '' },//灭火器 + extinctionUsingGas: { name: '气体灭火', total: '', details: '' },//气体灭火 + fireControlCommunication: { name: '消防通信', total: '', details: '' }//消防通信 + } + //消防设施 + fireFightingEquipment = { + automaticAlarmSystem: { name: '自动报警系统', total: '', details: '' },//自动报警系统 + firePump: { name: '消防泵', total: '', details: '' }//消防泵 + } + //消火栓系统 + hydrantSystem = { + fireExtinguishingAgent: { name: '灭火剂', total: '', details: '' },//灭火剂 + AlarmFacilities: { name: '报警设施', total: '', details: '' },//报警设施 + FireControlPipeNetwork: { name: '消防管网', total: '', details: '' }//消防管网 + } + //其它设施 + otherFacilities = { + givePriorityToBroadcast: { name: '优先广播', total: '', details: '' },//优先广播 + VIdetector: { name: 'VI检测仪', total: '', details: '' },//VI检测仪 + foamWaterSpraySystem: { name: '泡沫水喷雾系统', total: '', details: '' },//泡沫水喷雾系统 + } + //自动消防设施 + automaticFireProtectionFacility = { + fireSprinklingSystem: { name: '喷水灭火系统', total: '', details: '' },//喷水灭火系统 + automaticAlarmSystem: { name: '自动报警系统', total: '', details: '' },//自动报警系统 + smokeControlAndExhaustSystem: { name: '防排烟系统', total: '', details: '' },//防排烟系统 + waterCurtainSystem: { name: '水幕系统', total: '', details: '' },//水幕系统 + firePump: { name: '消防泵', total: '', details: '' }//消防泵 + } + //消防水源 + fireWaterSupply = { + firePool: { name: '消防水池', total: '', details: '' }//消防水池 + } + //获得当前建筑的手动输入值 + FacilityStat: any//存放当前建筑手动输入的值 + selectedChange($event) { + //获得手动输入的值 + this.http.get('/api/CompanyAccount/FacilityStat', { + params: { + buildingId: this.allBuildingGrouping[$event].id + } + }).subscribe(data => { + this.FacilityStat = data + this.changeData() + }) + } + + //清空手动输入的值 + emptyData() { + this.fireProtectionWaterSystem = { + waterSupplyNetwork: { name: '供水管网', total: '', details: '' },//供水管网 + sprinklerSystem: { name: '自动喷水灭火系统', total: '', details: '' }//自动喷水灭火系统 + } + this.FireExtinguishingWaterSupplySystem = { + sprinklerSystem: { name: '自动喷水灭火系统', total: '', details: '' },//自动喷水灭火系统 + AutomaticGasFireExtinguishingSystem: { name: '气体自动灭火系统', total: '', details: '' },//气体自动灭火系统 + firePumpRoom: { name: '消防泵房', total: '', details: '' }//消防泵房 + } + this.other = { + purgingSystem: { name: '排烟系统', total: '', details: '' },//排烟系统 + fireExtinguisher: { name: '灭火器', total: '', details: '' },//灭火器 + extinctionUsingGas: { name: '气体灭火', total: '', details: '' },//气体灭火 + fireControlCommunication: { name: '消防通信', total: '', details: '' }//消防通信 + } + this.fireFightingEquipment = { + automaticAlarmSystem: { name: '自动报警系统', total: '', details: '' },//自动报警系统 + firePump: { name: '消防泵', total: '', details: '' }//消防泵 + } + this.hydrantSystem = { + fireExtinguishingAgent: { name: '灭火剂', total: '', details: '' },//灭火剂 + AlarmFacilities: { name: '报警设施', total: '', details: '' },//报警设施 + FireControlPipeNetwork: { name: '消防管网', total: '', details: '' }//消防管网 + } + this.otherFacilities = { + givePriorityToBroadcast: { name: '优先广播', total: '', details: '' },//优先广播 + VIdetector: { name: 'VI检测仪', total: '', details: '' },//VI检测仪 + foamWaterSpraySystem: { name: '泡沫水喷雾系统', total: '', details: '' },//泡沫水喷雾系统 + } + this.automaticFireProtectionFacility = { + fireSprinklingSystem: { name: '喷水灭火系统', total: '', details: '' },//喷水灭火系统 + automaticAlarmSystem: { name: '自动报警系统', total: '', details: '' },//自动报警系统 + smokeControlAndExhaustSystem: { name: '防排烟系统', total: '', details: '' },//防排烟系统 + waterCurtainSystem: { name: '水幕系统', total: '', details: '' },//水幕系统 + firePump: { name: '消防泵', total: '', details: '' }//消防泵 + } + this.fireWaterSupply = { + firePool: { name: '消防水池', total: '', details: '' }//消防水池 + } + } + + //将数据库获取的手动输入的值变成指定形式 + changeData() { + this.emptyData(); + this.FacilityStat.length != 0 ? + this.FacilityStat.forEach(element => { + if (element.groupName == '消防水系统') { + if (element.facilityName == '供水管网') { + this.fireProtectionWaterSystem.waterSupplyNetwork.total = element.count + this.fireProtectionWaterSystem.waterSupplyNetwork.details = element.description + } else if (element.facilityName == '自动喷水灭火系统') { + this.fireProtectionWaterSystem.sprinklerSystem.total = element.count + this.fireProtectionWaterSystem.sprinklerSystem.details = element.description + } + } else if (element.groupName == '消防灭火给水系统') { + if (element.facilityName == '自动喷水灭火系统') { + this.FireExtinguishingWaterSupplySystem.sprinklerSystem.total = element.count + this.FireExtinguishingWaterSupplySystem.sprinklerSystem.details = element.description + } else if (element.facilityName == '气体自动灭火系统') { + this.FireExtinguishingWaterSupplySystem.AutomaticGasFireExtinguishingSystem.total = element.count + this.FireExtinguishingWaterSupplySystem.AutomaticGasFireExtinguishingSystem.details = element.description + } else if (element.facilityName == '消防泵房') { + this.FireExtinguishingWaterSupplySystem.firePumpRoom.total = element.count + this.FireExtinguishingWaterSupplySystem.firePumpRoom.details = element.description + } + } else if (element.groupName == '其它') { + if (element.facilityName == '排烟系统') { + this.other.purgingSystem.total = element.count + this.other.purgingSystem.details = element.description + } else if (element.facilityName == '灭火器') { + this.other.fireExtinguisher.total = element.count + this.other.fireExtinguisher.details = element.description + } else if (element.facilityName == '气体灭火') { + this.other.extinctionUsingGas.total = element.count + this.other.extinctionUsingGas.details = element.description + } else if (element.facilityName == '消防通信') { + this.other.fireControlCommunication.total = element.count + this.other.fireControlCommunication.details = element.description + } + } else if (element.groupName == '消防设施') { + if (element.facilityName == '自动报警系统') { + this.fireFightingEquipment.automaticAlarmSystem.total = element.count + this.fireFightingEquipment.automaticAlarmSystem.details = element.description + } else if (element.facilityName == '消防泵') { + this.fireFightingEquipment.firePump.total = element.count + this.fireFightingEquipment.firePump.details = element.description + } + } else if (element.groupName == '消火栓系统') { + if (element.facilityName == '灭火剂') { + this.hydrantSystem.fireExtinguishingAgent.total = element.count + this.hydrantSystem.fireExtinguishingAgent.details = element.description + } else if (element.facilityName == '报警设施') { + this.hydrantSystem.AlarmFacilities.total = element.count + this.hydrantSystem.AlarmFacilities.details = element.description + } else if (element.facilityName == '消防管网') { + this.hydrantSystem.FireControlPipeNetwork.total = element.count + this.hydrantSystem.FireControlPipeNetwork.details = element.description + } + } else if (element.groupName == '其它设施') { + if (element.facilityName == '优先广播') { + this.otherFacilities.givePriorityToBroadcast.total = element.count + this.otherFacilities.givePriorityToBroadcast.details = element.description + } else if (element.facilityName == 'VI检测仪') { + this.otherFacilities.VIdetector.total = element.count + this.otherFacilities.VIdetector.details = element.description + } else if (element.facilityName == '泡沫水喷雾系统') { + this.otherFacilities.foamWaterSpraySystem.total = element.count + this.otherFacilities.foamWaterSpraySystem.details = element.description + } + } else if (element.groupName == '自动消防设施') { + if (element.facilityName == '喷水灭火系统') { + this.automaticFireProtectionFacility.fireSprinklingSystem.total = element.count + this.automaticFireProtectionFacility.fireSprinklingSystem.details = element.description + } else if (element.facilityName == '自动报警系统') { + this.automaticFireProtectionFacility.automaticAlarmSystem.total = element.count + this.automaticFireProtectionFacility.automaticAlarmSystem.details = element.description + } else if (element.facilityName == '防排烟系统') { + this.automaticFireProtectionFacility.smokeControlAndExhaustSystem.total = element.count + this.automaticFireProtectionFacility.smokeControlAndExhaustSystem.details = element.description + } else if (element.facilityName == '水幕系统') { + this.automaticFireProtectionFacility.waterCurtainSystem.total = element.count + this.automaticFireProtectionFacility.waterCurtainSystem.details = element.description + } else if (element.facilityName == '消防泵') { + this.automaticFireProtectionFacility.firePump.total = element.count + this.automaticFireProtectionFacility.firePump.details = element.description + } + } else if (element.groupName == '消防水源') { + if (element.facilityName == '消防水池') { + this.fireWaterSupply.firePool.total = element.count + this.fireWaterSupply.firePool.details = element.description + } + } + }) : null } + + //保存单位消防设施内置分组项 editCompanyGrouping(e) { - let header = {groupId:e.id} + let header = { groupId: e.id } let data = [] - e.facilityItems.forEach((element,index) => { + e.facilityItems.forEach((element, index) => { let msg = { isBuiltin: element.isBuiltin, details: element.details, name: element.name, isEachFloor: element.isEachFloor, - order: element.order} + order: element.order + } data.push(msg) - if (index==e.facilityItems.length-1) { - this.http.post('/api/CompanyAccount/CompanyFacilityItems/Batch',data,{params:header}).subscribe(data=>{ + if (index == e.facilityItems.length - 1) { + this.http.post('/api/CompanyAccount/CompanyFacilityItems/Batch', data, { params: header }).subscribe(data => { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('数据更新成功','确定',config); - }) } + this.snackBar.open('数据更新成功', '确定', config); + }) + } }); //forEach - + } //checked单位消防设施内置分组项时 - checkedCompany (e,item,items) { + checkedCompany(e, item, items) { if (e.checked) { item.selectBuiltInGrouping.push(items) } else { @@ -98,52 +302,52 @@ export class FireFightingDeviceComponent implements OnInit { } //删除消防设施内置分组项 - deleteCompanyGrouping (e) { + deleteCompanyGrouping(e) { if (e.selectBuiltInGrouping.length) { - let isDelete = confirm('您确定要删除吗') - if (isDelete) { - let msg:any = `?groupId=${e.id}` - e.selectBuiltInGrouping.forEach((element,index) => { - let data = `&name=${element.name}` - msg = msg + data - if (index === e.selectBuiltInGrouping.length-1) { - this.http.delete('/api/CompanyAccount/CompanyFacilityItems/Batch' + msg).subscribe(data=>{ - let deleteMsg = e.selectBuiltInGrouping - deleteMsg.forEach(deleteElement => { - e.facilityItems.splice(e.facilityItems.findIndex(item=>item.name==deleteElement.name),1) - }); - e.selectBuiltInGrouping = [] + let isDelete = confirm('您确定要删除吗') + if (isDelete) { + let msg: any = `?groupId=${e.id}` + e.selectBuiltInGrouping.forEach((element, index) => { + let data = `&name=${element.name}` + msg = msg + data + if (index === e.selectBuiltInGrouping.length - 1) { + this.http.delete('/api/CompanyAccount/CompanyFacilityItems/Batch' + msg).subscribe(data => { + let deleteMsg = e.selectBuiltInGrouping + deleteMsg.forEach(deleteElement => { + e.facilityItems.splice(e.facilityItems.findIndex(item => item.name == deleteElement.name), 1) + }); + e.selectBuiltInGrouping = [] - }) //http - } //if - }); //forEach - } + }) //http + } //if + }); //forEach + } } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('请选择内置分组项','确定',config); + this.snackBar.open('请选择内置分组项', '确定', config); } } //保存单位消防设施可选分组 - editCompanyOptional (e,item) { + editCompanyOptional(e, item) { e.stopPropagation() //阻止冒泡 - item.propertyInfos.forEach((element,index) => { + item.propertyInfos.forEach((element, index) => { element.propertyValue = String(element.propertyValue) - if (index == item.propertyInfos.length-1 ) { - this.http.post('/api/CompanyAccount/CompanyOptionalGroups',item).subscribe(data=>{ + if (index == item.propertyInfos.length - 1) { + this.http.post('/api/CompanyAccount/CompanyOptionalGroups', item).subscribe(data => { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('数据更新成功','确定',config); + this.snackBar.open('数据更新成功', '确定', config); }) } //if - }); + }); } //单位消防设施切换展开面板 - SwitchBoard (e) { + SwitchBoard(e) { e.expanded = !e.expanded if (e.expanded) { //展开面板展开时 if (e.isEachFloor) { //逐层统计时 @@ -151,26 +355,30 @@ export class FireFightingDeviceComponent implements OnInit { if (data) { e.loopTable = [] data.forEach(item => { - let tableMsg = {name:item.name, header:[], body:[]} + let tableMsg = { name: item.name, header: [], body: [] } item.assets[0].propertyInfos.forEach(element => { //表头 - if (element.propertyType!=3) { - let unit = element.physicalUnit? '('+ element.physicalUnit +')' : '' //单位 - tableMsg.header.push(element.propertyName+unit)} + if (element.propertyType != 3) { + let unit = element.physicalUnit ? '(' + element.physicalUnit + ')' : '' //单位 + tableMsg.header.push(element.propertyName + unit) + } }); item.assets.forEach(element => { //表格内容 let everyBody = {} - element.propertyInfos.forEach((elements,index) => { - if (elements.propertyType!=3 && elements.propertyName!='图片' && elements.propertyType!=6) { - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = elements.propertyValue } - if (elements.propertyType==6) { - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = elements.propertyValue=='1'?'是':'否' } - if (elements.propertyType!=3 && elements.propertyName=='图片') { + element.propertyInfos.forEach((elements, index) => { + if (elements.propertyType != 3 && elements.propertyName != '图片' && elements.propertyType != 6) { + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = elements.propertyValue + } + if (elements.propertyType == 6) { + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = elements.propertyValue == '1' ? '是' : '否' + } + if (elements.propertyType != 3 && elements.propertyName == '图片') { let imgLength = [] - element.propertyInfos.find(item=>{ if(item.propertyType==3){imgLength.push(item)} }) - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = String(imgLength.length) } + element.propertyInfos.find(item => { if (item.propertyType == 3) { imgLength.push(item) } }) + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = String(imgLength.length) + } }); //propertyInfos tableMsg.body.push(everyBody) @@ -181,28 +389,32 @@ export class FireFightingDeviceComponent implements OnInit { } //data有数据时 } else { //非逐层统计时 let data = this.companyDetails[e.name] - if (data) { + if (data) { e.header = [] e.body = [] data[0].propertyInfos.forEach(element => { //表头 - if (element.propertyType!=3) { - let unit = element.physicalUnit? '('+ element.physicalUnit +')' : '' //单位 - e.header.push(element.propertyName+unit)} + if (element.propertyType != 3) { + let unit = element.physicalUnit ? '(' + element.physicalUnit + ')' : '' //单位 + e.header.push(element.propertyName + unit) + } }); data.forEach(element => { //表格内容 let everyBody = {} - element.propertyInfos.forEach((elements,index) => { - if (elements.propertyType!=3 && elements.propertyName!='图片' && elements.propertyType!=6) { - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = elements.propertyValue } - if (elements.propertyType==6) { - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = elements.propertyValue=='1'?'是':'否' } - if (elements.propertyType!=3 && elements.propertyName=='图片') { + element.propertyInfos.forEach((elements, index) => { + if (elements.propertyType != 3 && elements.propertyName != '图片' && elements.propertyType != 6) { + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = elements.propertyValue + } + if (elements.propertyType == 6) { + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = elements.propertyValue == '1' ? '是' : '否' + } + if (elements.propertyType != 3 && elements.propertyName == '图片') { let imgLength = [] - element.propertyInfos.find(item=>{ if(item.propertyType==3){imgLength.push(item)} }) - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = String(imgLength.length) } + element.propertyInfos.find(item => { if (item.propertyType == 3) { imgLength.push(item) } }) + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = String(imgLength.length) + } }); e.body.push(everyBody) @@ -218,36 +430,37 @@ export class FireFightingDeviceComponent implements OnInit { - allBuildingGrouping:any; //所有建筑的消防设施 内置分组+可选分组 + allBuildingGrouping: any; //所有建筑的消防设施 内置分组+可选分组 //获取所有建筑 - getAllBuilding () { - this.http.get('/api/CompanyAccount/Buildings').subscribe((data:any)=>{ + getAllBuilding() { + this.http.get('/api/CompanyAccount/Buildings').subscribe((data: any) => { this.allBuildingGrouping = data - if (this.allBuildingGrouping.length) { - this.getAllBuildingFacilities() + if (this.allBuildingGrouping.length) { + this.getAllBuildingFacilities() } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无建筑数据','确定',config); + this.snackBar.open('暂无建筑数据', '确定', config); } }) } //获取所有建筑的消防设施 - getAllBuildingFacilities () { + getAllBuildingFacilities() { this.allBuildingGrouping.forEach(element => { - let header = {buildingId: element.id, buildingType: element.buildingTypes[0].id} - this.http.get('/api/CompanyAccount/BuildingFacilities',{params:header}).subscribe(data=>{ + let header = { buildingId: element.id, buildingType: element.buildingTypes[0].id } + this.http.get('/api/CompanyAccount/BuildingFacilities', { params: header }).subscribe(data => { element.buildingFacilityGroups = data[0].summary.buildingFacilityGroups element.buildingOptionalGroups = data[0].summary.buildingOptionalGroups element.buildingDetails = data[0].details element.buildingEachDetails = data[0].eachDetails element.buildingFacilityGroups.forEach((elements) => { //循环每个建筑内置分组项 elements.selectBuiltInGrouping = [] - elements.facilityItems.forEach((newElement,index) => { + elements.facilityItems.forEach((newElement, index) => { newElement.total = elements.facilityCount[index] - newElement.expanded = false }); + newElement.expanded = false + }); }); }) @@ -256,51 +469,114 @@ export class FireFightingDeviceComponent implements OnInit { } //创建建筑消防设施内置分组项 - addBuildingGrouping (e,item) { - let data = {buildingId: e.id, item} - let dialogRef = this.dialog.open(ImgsDataDetail,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) { item.facilityItems.push(data) } - }); + addBuildingGrouping(e, item) { + let data = { buildingId: e.id, item } + let dialogRef = this.dialog.open(ImgsDataDetail, { data }); + dialogRef.afterClosed().subscribe(data => { + if (data) { item.facilityItems.push(data) } + }); } //保存建筑消防设施内置分组项 - editBuildingGrouping (e,item) { + editBuildingGrouping(e, item) { + function returnBody(object, groupName) { + let body = [] + for (const key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + const element = object[key]; + if (element.total || element.details) { + body.push({ + buildingId: item.buildingId, + groupName: groupName, + facilityName: element.name, + count: element.total, + description: element.details + }) + } + } + } + return body + } + let header = {buildingId:e.id, groupId:item.id} let data = [] - item.facilityItems.forEach((element,index) => { + item.facilityItems.forEach((element, index) => { let msg = { isBuiltin: element.isBuiltin, details: element.details, name: element.name, isEachFloor: element.isEachFloor, - order: element.order} + order: element.order + } data.push(msg) - if (index==item.facilityItems.length-1) { - this.http.post('/api/CompanyAccount/BuildingFacilityItems/Batch',data,{params:header}).subscribe(data=>{ + if (index == item.facilityItems.length - 1) { + this.http.post('/api/CompanyAccount/BuildingFacilityItems/Batch', data, { params: header }).subscribe(data => { + let putBody + if (item.name == '消防水源') { + putBody = returnBody(this.fireWaterSupply, '消防水源') + } else if (item.name == '消防水系统') { + putBody = returnBody(this.fireProtectionWaterSystem, '消防水系统') + } else if (item.name == '消防灭火给水系统') { + putBody = returnBody(this.FireExtinguishingWaterSupplySystem, '消防灭火给水系统') + } else if (item.name == '其它') { + putBody = returnBody(this.other, '其它') + } else if (item.name == '消防设施') { + putBody = returnBody(this.fireFightingEquipment, '消防设施') + } else if (item.name == '消火栓系统') { + putBody = returnBody(this.hydrantSystem, '消火栓系统') + } else if (item.name == '其它设施') { + putBody = returnBody(this.otherFacilities, '其它设施') + } else if (item.name == '自动消防设施') { + putBody = returnBody(this.automaticFireProtectionFacility, '自动消防设施') + } + if (putBody.length != 0) { + this.http.put('/api/CompanyAccount/FacilityStatUpdate', putBody, { + params: { + buildingId: item.buildingId + } + }).subscribe(data => { + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('数据更新成功', '确定', config); + + }, err => { + 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); + } + }, err => { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('数据更新成功','确定',config); - }) } + this.snackBar.open('更新失败', '确定', config); + }) + } }); //forEach } //删除建筑消防设施内置分组项 - deleteBuildingGrouping (e,item) { + deleteBuildingGrouping(e, item) { if (item.selectBuiltInGrouping.length) { let isDelete = confirm('您确定要删除吗') if (isDelete) { - let msg:any = `?buildingId=${e.id}&groupId=${item.id}` - item.selectBuiltInGrouping.forEach((element,index) => { + let msg: any = `?buildingId=${e.id}&groupId=${item.id}` + item.selectBuiltInGrouping.forEach((element, index) => { let data = `&name=${element.name}` msg = msg + data - if (index === item.selectBuiltInGrouping.length-1) { - this.http.delete('/api/CompanyAccount/BuildingFacilityItems/Batch'+msg).subscribe(data=>{ + if (index === item.selectBuiltInGrouping.length - 1) { + this.http.delete('/api/CompanyAccount/BuildingFacilityItems/Batch' + msg).subscribe(data => { let deleteMsg = item.selectBuiltInGrouping deleteMsg.forEach(deleteElement => { - item.facilityItems.splice(item.facilityItems.findIndex(items=>items.name==deleteElement.name),1) + item.facilityItems.splice(item.facilityItems.findIndex(items => items.name == deleteElement.name), 1) }); item.selectBuiltInGrouping = [] @@ -308,32 +584,32 @@ export class FireFightingDeviceComponent implements OnInit { } //if }) //forEach } - } else { - 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); } } //保存建筑消防设施可选分组 - editBuildingOptional (e,item) { + editBuildingOptional(e, item) { e.stopPropagation() //阻止冒泡 - item.propertyInfos.forEach((element,index) => { + item.propertyInfos.forEach((element, index) => { element.propertyValue = String(element.propertyValue) - if (index == item.propertyInfos.length-1 ) { - this.http.post('/api/CompanyAccount/BuildingOptionalGroups',item).subscribe(data=>{ + if (index == item.propertyInfos.length - 1) { + this.http.post('/api/CompanyAccount/BuildingOptionalGroups', item).subscribe(data => { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('数据更新成功','确定',config); + this.snackBar.open('数据更新成功', '确定', config); }) } //if - }); + }); } //建筑消防设施切换展开面板 - SwitchBuildingBoard (item,e) { + SwitchBuildingBoard(item, e) { e.expanded = !e.expanded if (e.expanded) { //展开面板展开时 if (e.isEachFloor) { //逐层统计时 @@ -341,58 +617,66 @@ export class FireFightingDeviceComponent implements OnInit { if (data) { e.loopTable = [] data.forEach(item => { - let tableMsg = {name:item.name, header:[], body:[]} + let tableMsg = { name: item.name, header: [], body: [] } item.assets[0].propertyInfos.forEach(element => { //表头 - if (element.propertyType!=3) { - let unit = element.physicalUnit? '('+ element.physicalUnit +')' : '' //单位 - tableMsg.header.push(element.propertyName+unit)} + if (element.propertyType != 3) { + let unit = element.physicalUnit ? '(' + element.physicalUnit + ')' : '' //单位 + tableMsg.header.push(element.propertyName + unit) + } }); item.assets.forEach(element => { //表格内容 let everyBody = {} - element.propertyInfos.forEach((elements,index) => { - if (elements.propertyType!=3 && elements.propertyName!='图片' && elements.propertyType!=6) { - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = elements.propertyValue } - if (elements.propertyType==6) { - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = elements.propertyValue=='1'?'是':'否' } - if (elements.propertyType!=3 && elements.propertyName=='图片') { + element.propertyInfos.forEach((elements, index) => { + if (elements.propertyType != 3 && elements.propertyName != '图片' && elements.propertyType != 6) { + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = elements.propertyValue + } + if (elements.propertyType == 6) { + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = elements.propertyValue == '1' ? '是' : '否' + } + if (elements.propertyType != 3 && elements.propertyName == '图片') { let imgLength = [] - element.propertyInfos.find(item=>{ if(item.propertyType==3){imgLength.push(item)} }) - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = String(imgLength.length) } + element.propertyInfos.find(item => { if (item.propertyType == 3) { imgLength.push(item) } }) + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = String(imgLength.length) + } }); //propertyInfos tableMsg.body.push(everyBody) }); //assets e.loopTable.push(tableMsg) }); - + } //data有数据时 } else { //非逐层统计时 let data = item.buildingDetails[e.name] - if (data) { + if (data) { e.header = [] e.body = [] data[0].propertyInfos.forEach(element => { //表头 - if (element.propertyType!=3) { - let unit = element.physicalUnit? '('+ element.physicalUnit +')' : '' //单位 - e.header.push(element.propertyName+unit)} + if (element.propertyType != 3) { + let unit = element.physicalUnit ? '(' + element.physicalUnit + ')' : '' //单位 + e.header.push(element.propertyName + unit) + } }); data.forEach(element => { //表格内容 let everyBody = {} - element.propertyInfos.forEach((elements,index) => { - if (elements.propertyType!=3 && elements.propertyName!='图片' && elements.propertyType!=6) { - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = elements.propertyValue } - if (elements.propertyType==6) { - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = elements.propertyValue=='1'?'是':'否' } - if (elements.propertyType!=3 && elements.propertyName=='图片') { + element.propertyInfos.forEach((elements, index) => { + if (elements.propertyType != 3 && elements.propertyName != '图片' && elements.propertyType != 6) { + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = elements.propertyValue + } + if (elements.propertyType == 6) { + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = elements.propertyValue == '1' ? '是' : '否' + } + if (elements.propertyType != 3 && elements.propertyName == '图片') { let imgLength = [] - element.propertyInfos.find(item=>{ if(item.propertyType==3){imgLength.push(item)} }) - let unit = elements.physicalUnit? '('+ elements.physicalUnit +')' : '' //单位 - everyBody[elements.propertyName+unit] = String(imgLength.length) } + element.propertyInfos.find(item => { if (item.propertyType == 3) { imgLength.push(item) } }) + let unit = elements.physicalUnit ? '(' + elements.physicalUnit + ')' : '' //单位 + everyBody[elements.propertyName + unit] = String(imgLength.length) + } }); e.body.push(everyBody) @@ -407,124 +691,135 @@ export class FireFightingDeviceComponent implements OnInit { } //单位消防设施预览图片 - previewImg (e) { + previewImg(e) { if (e.isEachFloor) { //逐层统计时 let newData = this.companyEachDetails[e.name] if (newData) { - let data = {name:e.name, images:[]} - let imgName + let data = { name: e.name, images: [] } + let imgName newData.forEach(item => { item.assets.forEach(element => { - element.propertyInfos.forEach( elements => { - if (elements.propertyName.includes('名称')) {imgName = elements.propertyValue} - if (elements.propertyType===3) { - elements.propertyName = imgName - data.images.push(elements)} }); + element.propertyInfos.forEach(elements => { + if (elements.propertyName.includes('名称')) { imgName = elements.propertyValue } + if (elements.propertyType === 3) { + elements.propertyName = imgName + data.images.push(elements) + } + }); }); }); //newDate if (data.images.length) { - let dialogRef = this.dialog.open(ImagesData,{width:'1350px',height:'700px',data}); //打开图片弹窗 + let dialogRef = this.dialog.open(ImagesData, { width: '1350px', height: '700px', data }); //打开图片弹窗 } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无图片数据','确定',config); + this.snackBar.open('暂无图片数据', '确定', config); } - } else{ + } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无图片数据','确定',config); } + this.snackBar.open('暂无图片数据', '确定', config); + } } else { //非逐层统计时 let newData = this.companyDetails[e.name] - let imgName + let imgName if (newData) { - let data = {name:e.name, images:[]} + let data = { name: e.name, images: [] } newData.forEach(element => { - element.propertyInfos.forEach(elements => { - if (elements.propertyName.includes('名称')) {imgName = elements.propertyValue} - if (elements.propertyType===3) { + element.propertyInfos.forEach(elements => { + if (elements.propertyName.includes('名称')) { imgName = elements.propertyValue } + if (elements.propertyType === 3) { elements.propertyName = imgName - data.images.push(elements)} }); + data.images.push(elements) + } + }); }); if (data.images.length) { - let dialogRef = this.dialog.open(ImagesData,{width:'1350px',height:'700px',data}); //打开图片弹窗 + let dialogRef = this.dialog.open(ImagesData, { width: '1350px', height: '700px', data }); //打开图片弹窗 } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无图片数据','确定',config); + this.snackBar.open('暂无图片数据', '确定', config); } - + } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无图片数据','确定',config); } + this.snackBar.open('暂无图片数据', '确定', config); + } } } //建筑消防设施预览图片 - previewBuildingImg (item,e) { + previewBuildingImg(item, e) { if (e.isEachFloor) { //逐层统计时 let newData = item.buildingEachDetails[e.name] if (newData) { - let data = {name:e.name, images:[]} + let data = { name: e.name, images: [] } let imgName newData.forEach(item => { item.assets.forEach(element => { - element.propertyInfos.forEach( elements => { - if (elements.propertyName.includes('名称')) {imgName = elements.propertyValue} - if (elements.propertyType===3) { - elements.propertyName = imgName - data.images.push(elements)} }); + element.propertyInfos.forEach(elements => { + if (elements.propertyName.includes('名称')) { imgName = elements.propertyValue } + if (elements.propertyType === 3) { + elements.propertyName = imgName + data.images.push(elements) + } + }); }); }); //newDate - + if (data.images.length) { - let dialogRef = this.dialog.open(ImagesData,{width:'1350px',height:'700px',data}); //打开图片弹窗 + let dialogRef = this.dialog.open(ImagesData, { width: '1350px', height: '700px', data }); //打开图片弹窗 } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无图片数据','确定',config); + this.snackBar.open('暂无图片数据', '确定', config); } - } else{ + } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无图片数据','确定',config); } + this.snackBar.open('暂无图片数据', '确定', config); + } } else { //非逐层统计时 let newData = item.buildingDetails[e.name] - let imgName + let imgName if (newData) { - let data = {name:e.name, images:[]} + let data = { name: e.name, images: [] } newData.forEach(element => { - element.propertyInfos.forEach(elements => { - if (elements.propertyName.includes('名称')) {imgName = elements.propertyValue} - if (elements.propertyType===3) { + element.propertyInfos.forEach(elements => { + if (elements.propertyName.includes('名称')) { imgName = elements.propertyValue } + if (elements.propertyType === 3) { elements.propertyName = imgName - data.images.push(elements)} - }); + data.images.push(elements) + } + }); }); if (data.images.length) { - let dialogRef = this.dialog.open(ImagesData,{width:'1350px',height:'700px',data}); //打开图片弹窗 + let dialogRef = this.dialog.open(ImagesData, { width: '1350px', height: '700px', data }); //打开图片弹窗 } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无图片数据','确定',config); + this.snackBar.open('暂无图片数据', '确定', config); } - + } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 - this.snackBar.open('暂无图片数据','确定',config); } + this.snackBar.open('暂无图片数据', '确定', config); + } } } diff --git a/src/app/ui/realistic-picture/realistic-picture.component.scss b/src/app/ui/realistic-picture/realistic-picture.component.scss index 075375c..761c269 100644 --- a/src/app/ui/realistic-picture/realistic-picture.component.scss +++ b/src/app/ui/realistic-picture/realistic-picture.component.scss @@ -50,6 +50,7 @@ .material { cursor:pointer; height: 30px; + line-height: 26px; font-size: 16px; margin-top: 10px; padding-left: 15px;