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(); }); } //获取所有建筑的消防设施 async getAllBuildingFacilities() { let companyId = this.route.snapshot.queryParams.id; let index = 0; for (let index = 0; index < this.allBuildingGrouping.length; index++) { const element = this.allBuildingGrouping[index]; let header = { buildingId: element.id, buildingType: element.buildingTypes[0].id, companyId: companyId, }; await new Promise((resolve, reject) => { 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; }); }); // console.log(element.name, data) resolve(); }, (err) => { console.log(element.name + "消防设施网络获取失败", err); } ); }); } } //清空手动输入的值 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]; 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); } } } }