|
|
|
import { Component, OnInit, ViewChild, Inject } from '@angular/core';
|
|
|
|
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';
|
|
|
|
import { ImagesData } from './imagesdata.component'
|
|
|
|
import { Router,ActivatedRoute } from '@angular/router'
|
|
|
|
import { TabbarAndScoreService } from 'src/app/http-interceptors/tabbar-and-score.service';
|
|
|
|
|
|
|
|
|
|
|
|
export interface Food {
|
|
|
|
value: string;
|
|
|
|
name: string;
|
|
|
|
}
|
|
|
|
@Component({
|
|
|
|
selector: 'app-fire-fighting-device',
|
|
|
|
templateUrl: './fire-fighting-device.component.html',
|
|
|
|
styleUrls: ['./fire-fighting-device.component.scss']
|
|
|
|
})
|
|
|
|
export class FireFightingDeviceComponent implements OnInit {
|
|
|
|
|
|
|
|
constructor(private tabbarService: TabbarAndScoreService,private router:Router,private route:ActivatedRoute,public http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { }
|
|
|
|
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.getCompanyInformation()
|
|
|
|
this.getAllBuilding()
|
|
|
|
}
|
|
|
|
|
|
|
|
//定义属性数据
|
|
|
|
singleElection:Food[]=[
|
|
|
|
{value:'true', name: '有'},
|
|
|
|
{value:'false', name: '无'}]
|
|
|
|
|
|
|
|
companyBuiltInGrouping:any = []; //单位消防设施内置分组
|
|
|
|
companyDetails:any = []; //单位详情
|
|
|
|
companyEachDetails:any = [] //单位每层详情
|
|
|
|
companyOptionalGrouping:any = []; //单位消防设施可选分组
|
|
|
|
|
|
|
|
//获得单位基本信息
|
|
|
|
getCompanyInformation () {
|
|
|
|
let companyId = this.route.snapshot.queryParams.id
|
|
|
|
this.http.get(`/api/Companies/${companyId}`).subscribe((data:any)=>{
|
|
|
|
if (data.buildingTypes.length) {
|
|
|
|
let newData = {buildingType: data.buildingTypes[0].id,companyId : companyId}
|
|
|
|
this.http.get('/api/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) => {
|
|
|
|
elements.total = element.facilityCount[index]
|
|
|
|
elements.expanded = false});
|
|
|
|
});
|
|
|
|
}) //http
|
|
|
|
} //if
|
|
|
|
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
//创建单位消防设施内置分组项
|
|
|
|
addCompanyGrouping (e) {
|
|
|
|
let data = e
|
|
|
|
let dialogRef = this.dialog.open(ImgsDataDetail,{data});
|
|
|
|
dialogRef.afterClosed().subscribe(data=>{
|
|
|
|
if (data) {
|
|
|
|
e.facilityItems.push(data)
|
|
|
|
this.tabbarService.sendMessage('changeScore');//通知服务改变分数
|
|
|
|
} });
|
|
|
|
}
|
|
|
|
|
|
|
|
//保存单位消防设施内置分组项
|
|
|
|
editCompanyGrouping(e) {
|
|
|
|
let header = {groupId:e.id}
|
|
|
|
let data = []
|
|
|
|
e.facilityItems.forEach((element,index) => {
|
|
|
|
let msg = {
|
|
|
|
isBuiltin: element.isBuiltin,
|
|
|
|
details: element.details,
|
|
|
|
name: element.name,
|
|
|
|
isEachFloor: element.isEachFloor,
|
|
|
|
order: element.order}
|
|
|
|
data.push(msg)
|
|
|
|
if (index==e.facilityItems.length-1) {
|
|
|
|
this.http.post('/api/CompanyFacilityItems/Batch',data,{params:header}).subscribe(data=>{
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('数据更新成功','确定',config);
|
|
|
|
this.tabbarService.sendMessage('changeScore');//通知服务改变分数
|
|
|
|
}) }
|
|
|
|
}); //forEach
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//checked单位消防设施内置分组项时
|
|
|
|
checkedCompany (e,item,items) {
|
|
|
|
if (e.checked) {
|
|
|
|
item.selectBuiltInGrouping.push(items)
|
|
|
|
} else {
|
|
|
|
item.selectBuiltInGrouping.splice(item.selectBuiltInGrouping.findIndex(oldItem => oldItem == items), 1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//删除消防设施内置分组项
|
|
|
|
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/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 = []
|
|
|
|
this.tabbarService.sendMessage('changeScore');//通知服务改变分数
|
|
|
|
}) //http
|
|
|
|
} //if
|
|
|
|
}); //forEach
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('请选择内置分组项','确定',config);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//保存单位消防设施可选分组
|
|
|
|
editCompanyOptional (e,item) {
|
|
|
|
e.stopPropagation() //阻止冒泡
|
|
|
|
item.propertyInfos.forEach((element,index) => {
|
|
|
|
element.propertyValue = String(element.propertyValue)
|
|
|
|
if (index == item.propertyInfos.length-1 ) {
|
|
|
|
this.http.post('/api/CompanyOptionalGroups',item).subscribe(data=>{
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('数据更新成功','确定',config);
|
|
|
|
this.tabbarService.sendMessage('changeScore');//通知服务改变分数
|
|
|
|
})
|
|
|
|
} //if
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
//单位消防设施切换展开面板
|
|
|
|
SwitchBoard (e) {
|
|
|
|
e.expanded = !e.expanded
|
|
|
|
if (e.expanded) { //展开面板展开时
|
|
|
|
if (e.isEachFloor) { //逐层统计时
|
|
|
|
let data = this.companyEachDetails[e.name]
|
|
|
|
if (data) {
|
|
|
|
e.loopTable = []
|
|
|
|
data.forEach(item => {
|
|
|
|
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)}
|
|
|
|
});
|
|
|
|
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=='图片') {
|
|
|
|
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) }
|
|
|
|
|
|
|
|
}); //propertyInfos
|
|
|
|
tableMsg.body.push(everyBody)
|
|
|
|
}); //assets
|
|
|
|
e.loopTable.push(tableMsg)
|
|
|
|
});
|
|
|
|
|
|
|
|
} //data有数据时
|
|
|
|
} else { //非逐层统计时
|
|
|
|
let data = this.companyDetails[e.name]
|
|
|
|
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)}
|
|
|
|
});
|
|
|
|
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=='图片') {
|
|
|
|
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) }
|
|
|
|
|
|
|
|
});
|
|
|
|
e.body.push(everyBody)
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
} //非逐层统计时
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
allBuildingGrouping:any; //所有建筑的消防设施 内置分组+可选分组
|
|
|
|
//获取所有建筑
|
|
|
|
getAllBuilding () {
|
|
|
|
let companyId = this.route.snapshot.queryParams.id
|
|
|
|
this.http.get('/api/Buildings',{params:{
|
|
|
|
companyId:companyId
|
|
|
|
}}).subscribe((data:any)=>{
|
|
|
|
this.allBuildingGrouping = data
|
|
|
|
// console.log(888,data)
|
|
|
|
if (this.allBuildingGrouping.length) {
|
|
|
|
this.getAllBuildingFacilities()
|
|
|
|
} else {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('暂无建筑数据','确定',config);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
//消防水系统
|
|
|
|
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/BuildingFacilities/FacilityStat',{params:{
|
|
|
|
buildingId : this.allBuildingGrouping[$event].id
|
|
|
|
}}).subscribe(data=>{
|
|
|
|
this.FacilityStat = data
|
|
|
|
this.changeData()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
//获取所有建筑的消防设施
|
|
|
|
getAllBuildingFacilities () {
|
|
|
|
let companyId = this.route.snapshot.queryParams.id
|
|
|
|
let index = 0
|
|
|
|
this.allBuildingGrouping.forEach(element => {
|
|
|
|
let header = {buildingId: element.id, buildingType: element.buildingTypes[0].id,companyId:companyId}
|
|
|
|
this.http.get('/api/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) => {
|
|
|
|
newElement.total = elements.facilityCount[index]
|
|
|
|
newElement.expanded = false });
|
|
|
|
});
|
|
|
|
})
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
//清空手动输入的值
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
|
|
//创建建筑消防设施内置分组项
|
|
|
|
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) {
|
|
|
|
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 companyId = this.route.snapshot.queryParams.id
|
|
|
|
let header = {companyId:companyId,buildingId:e.id, groupId:item.id}
|
|
|
|
let data = []
|
|
|
|
item.facilityItems.forEach((element,index) => {
|
|
|
|
let msg = {
|
|
|
|
isBuiltin: element.isBuiltin,
|
|
|
|
details: element.details,
|
|
|
|
name: element.name,
|
|
|
|
isEachFloor: element.isEachFloor,
|
|
|
|
order: element.order}
|
|
|
|
data.push(msg)
|
|
|
|
if (index==item.facilityItems.length-1) {
|
|
|
|
this.http.post('/api/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/BuildingFacilities/FacilityStatUpdate',putBody,{
|
|
|
|
params:{
|
|
|
|
buildingId : item.buildingId
|
|
|
|
}
|
|
|
|
}).subscribe(data => {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('数据更新成功','确定',config);
|
|
|
|
this.tabbarService.sendMessage('changeScore');//通知服务改变分数
|
|
|
|
},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);
|
|
|
|
this.tabbarService.sendMessage('changeScore');//通知服务改变分数
|
|
|
|
}
|
|
|
|
},err => {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('更新失败','确定',config);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}); //forEach
|
|
|
|
}
|
|
|
|
|
|
|
|
//删除建筑消防设施内置分组项
|
|
|
|
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 data = `&name=${element.name}`
|
|
|
|
msg = msg + data
|
|
|
|
if (index === item.selectBuiltInGrouping.length-1) {
|
|
|
|
this.http.delete('/api/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.selectBuiltInGrouping = []
|
|
|
|
this.tabbarService.sendMessage('changeScore');//通知服务改变分数
|
|
|
|
}) //http
|
|
|
|
} //if
|
|
|
|
}) //forEach
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('请选择内置分组项','确定',config);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//保存建筑消防设施可选分组
|
|
|
|
editBuildingOptional (e,item) {
|
|
|
|
let companyId = this.route.snapshot.queryParams.id
|
|
|
|
e.stopPropagation() //阻止冒泡
|
|
|
|
item.propertyInfos.forEach((element,index) => {
|
|
|
|
element.propertyValue = String(element.propertyValue)
|
|
|
|
if (index == item.propertyInfos.length-1 ) {
|
|
|
|
this.http.post('/api/BuildingOptionalGroups',item,{params:{
|
|
|
|
companyId :companyId
|
|
|
|
}}).subscribe(data=>{
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('数据更新成功','确定',config);
|
|
|
|
this.tabbarService.sendMessage('changeScore');//通知服务改变分数
|
|
|
|
})
|
|
|
|
} //if
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
//建筑消防设施切换展开面板
|
|
|
|
SwitchBuildingBoard (item,e) {
|
|
|
|
e.expanded = !e.expanded
|
|
|
|
if (e.expanded) { //展开面板展开时
|
|
|
|
if (e.isEachFloor) { //逐层统计时
|
|
|
|
let data = item.buildingEachDetails[e.name]
|
|
|
|
if (data) {
|
|
|
|
e.loopTable = []
|
|
|
|
data.forEach(item => {
|
|
|
|
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)}
|
|
|
|
});
|
|
|
|
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=='图片') {
|
|
|
|
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) }
|
|
|
|
|
|
|
|
}); //propertyInfos
|
|
|
|
tableMsg.body.push(everyBody)
|
|
|
|
}); //assets
|
|
|
|
e.loopTable.push(tableMsg)
|
|
|
|
});
|
|
|
|
|
|
|
|
} //data有数据时
|
|
|
|
} else { //非逐层统计时
|
|
|
|
let data = item.buildingDetails[e.name]
|
|
|
|
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)}
|
|
|
|
});
|
|
|
|
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=='图片') {
|
|
|
|
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) }
|
|
|
|
|
|
|
|
});
|
|
|
|
e.body.push(everyBody)
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
} //非逐层统计时
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//单位消防设施预览图片
|
|
|
|
previewImg (e) {
|
|
|
|
if (e.isEachFloor) { //逐层统计时
|
|
|
|
let newData = this.companyEachDetails[e.name]
|
|
|
|
if (newData) {
|
|
|
|
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)} });
|
|
|
|
});
|
|
|
|
}); //newDate
|
|
|
|
|
|
|
|
if (data.images.length) {
|
|
|
|
let dialogRef = this.dialog.open(ImagesData,{data}); //打开图片弹窗
|
|
|
|
} 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); }
|
|
|
|
} else { //非逐层统计时
|
|
|
|
let newData = this.companyDetails[e.name]
|
|
|
|
let imgName
|
|
|
|
if (newData) {
|
|
|
|
let data = {name:e.name, images:[]}
|
|
|
|
newData.forEach(element => {
|
|
|
|
element.propertyInfos.forEach(elements => {
|
|
|
|
if (elements.propertyName.includes('名称')) {imgName = elements.propertyValue}
|
|
|
|
if (elements.propertyType===3) {
|
|
|
|
elements.propertyName = imgName
|
|
|
|
data.images.push(elements)} });
|
|
|
|
});
|
|
|
|
if (data.images.length) {
|
|
|
|
let dialogRef = this.dialog.open(ImagesData,{data}); //打开图片弹窗
|
|
|
|
} 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); }
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//建筑消防设施预览图片
|
|
|
|
previewBuildingImg (item,e) {
|
|
|
|
if (e.isEachFloor) { //逐层统计时
|
|
|
|
let newData = item.buildingEachDetails[e.name]
|
|
|
|
if (newData) {
|
|
|
|
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)} });
|
|
|
|
});
|
|
|
|
}); //newDate
|
|
|
|
|
|
|
|
if (data.images.length) {
|
|
|
|
let dialogRef = this.dialog.open(ImagesData,{data}); //打开图片弹窗
|
|
|
|
} 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); }
|
|
|
|
} else { //非逐层统计时
|
|
|
|
let newData = item.buildingDetails[e.name]
|
|
|
|
let imgName
|
|
|
|
if (newData) {
|
|
|
|
let data = {name:e.name, images:[]}
|
|
|
|
newData.forEach(element => {
|
|
|
|
element.propertyInfos.forEach(elements => {
|
|
|
|
if (elements.propertyName.includes('名称')) {imgName = elements.propertyValue}
|
|
|
|
if (elements.propertyType===3) {
|
|
|
|
elements.propertyName = imgName
|
|
|
|
data.images.push(elements)}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
if (data.images.length) {
|
|
|
|
let dialogRef = this.dialog.open(ImagesData,{data}); //打开图片弹窗
|
|
|
|
} 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); }
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|