diff --git a/src/app/canvas-share-data.service.ts b/src/app/canvas-share-data.service.ts index da9bb5d..4f40baa 100644 --- a/src/app/canvas-share-data.service.ts +++ b/src/app/canvas-share-data.service.ts @@ -28,17 +28,11 @@ export class CanvasShareDataService { originaleveryStoreyData: any; // 总平面图/楼层/区域 楼层数据 // 总平面图/建筑 楼层 - - - - // 处置 节点 allDisposalNode: any = []; // 所有 处置节点 allNodeMarkers: any = { highlightMarkers: {}, markers: {} }; // 灾情 标签信息 selectPanelPoint: DisposalNodeData = new DisposalNodeData(); // 当前数据节点 selectPanelPointBaseData: any = { description: '', notes: '', weather: '', airTemperature: '', windDirection: '', windScale: '' }; // 当前 数据节点 对应 父级节点 - - isInheritSky: any; //缓存 节点 天气 customizeDisposalNode: any; // 新建 自定义数据节点 底图+名称 // 处置 节点 @@ -57,7 +51,6 @@ export class CanvasShareDataService { ['地下消火栓', '室外消火栓'], ['室内消火栓', '室内消火栓'], ['供水管网', '供水管网'], - ['湿式自动喷淋系统', '湿式自动喷淋系统'], ['水幕系统', '水幕系统'], ['消防泵房', '消防泵房'], ['水泵接合器(地上)', '水泵接合器'], @@ -81,6 +74,25 @@ export class CanvasShareDataService { ['泡沫管网', '消防管网'], ['DCS控制室', 'DCS控制室'], ['消防控制室', '消防控制室'], + ['水喷淋系统', '自动喷水灭火系统'], + ['湿式自动喷淋系统', '自动喷水灭火系统'], + ['干式自动喷淋系统', '自动喷水灭火系统'], + ['消防电话', '消防通信'], + ['扶梯', '自动扶梯'], + ['风机房', '风机房'], + ['风亭', '风亭'], + ['防火卷帘', '防火卷帘'], + ['手提式BC类干粉灭火器', '灭火器'], + ['推车式ABC干粉灭火器', '灭火器'], + ['手提式泡沫灭火器', '灭火器'], + ['推车式BC干粉灭火器', '灭火器'], + ['推车式灭火器', '灭火器'], + ['手提式二氧化碳灭火器', '灭火器'], + ['手提式ABC类干粉灭火器', '灭火器'], + ['手提式清水灭火器', '灭火器'], + ['手推式泡沫灭火器', '灭火器'], + ['推车式泡沫灭火器', '灭火器'], + ['灭火器', '灭火器'] ]); /** * 向其他组件发送信息 * diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.html b/src/app/plan-audit/wait-examineer/wait-examineer.component.html index 23d36ce..eba6b28 100644 --- a/src/app/plan-audit/wait-examineer/wait-examineer.component.html +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.html @@ -127,7 +127,7 @@
- + @@ -169,7 +169,7 @@
- + @@ -190,8 +190,8 @@ - - + +
{{i.displayName}} :
{{i.path[i.path.length - 2]}}-{{i.path[i.path.length - 1]}}: {{i.oldValue | differentContentTitle}} @@ -205,7 +205,7 @@ - + @@ -237,7 +237,7 @@ - + diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.ts b/src/app/plan-audit/wait-examineer/wait-examineer.component.ts index 435d9f1..2ffe814 100644 --- a/src/app/plan-audit/wait-examineer/wait-examineer.component.ts +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.ts @@ -62,6 +62,9 @@ export class WaitExamineerComponent implements OnInit { } this.getAlltabledate() this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(this.src); + + + } planTypeIndex //平面图类型 选择是总平面图还是层平面图 @@ -168,7 +171,7 @@ export class WaitExamineerComponent implements OnInit { differentContentOfBuildingsInfo: any//当前单位变更数据 之 建筑信息 differentContentOfFunction: any = []//当前单位变更数据 之 功能分区 differentContentOfPicture: any//当前单位变更数据 之 实景图 - bianzhi=false + bianzhi = false radioClick(e, item) { this.selectedItem = item console.log(item) @@ -177,28 +180,56 @@ export class WaitExamineerComponent implements OnInit { let differentContent = JSON.parse(this.selectedItem.differentContent) + + console.log('差异信息', differentContent) + + // 单位信息 this.differentContentOfUnitInfo = differentContent.filter(item => item.propertyName == 'basicInfo') // 实景图 this.differentContentOfPicture = differentContent.filter(item => item.propertyName == 'realityImageGroups') - //建筑信息 - this.differentContentOfBuildingsInfo = JSON.parse(JSON.stringify(differentContent.filter(item => item.propertyName == 'buildings')[0])) - this.differentContentOfBuildingsInfo.childrens.forEach(element => { - element.childrens = element.childrens.filter(item => item.isObj == false) - }); - //功能分区 - let differentContentOfFunction = JSON.parse(JSON.stringify(differentContent.filter(item => item.propertyName == 'buildings')[0])) - this.differentContentOfFunction = [] - differentContentOfFunction.childrens.forEach(item => { - item.childrens.forEach(i => { - if (i.propertyName == "buildingFunctionalDivisions") { - i.propertyName = item.propertyName - this.differentContentOfFunction.push(i) + + if (differentContent.filter(item => item.propertyName == 'buildings').length != 0) { + //建筑信息 + this.differentContentOfBuildingsInfo = JSON.parse(JSON.stringify(differentContent.filter(item => item.propertyName == 'buildings')[0])) + + function resolveDiff(list: Array, path?: Array): Array { + let resultList: Array = []; + for (let i = 0; i < list.length; i++) { + if (path == null) path = []; + let item = list[i]; + //递归最底层 + if (!item.childrens.length) { + let res = new Result(); + res.path = path.concat([item.displayName]); + res.oldValue = item.oldValue; + res.newValue = item.newValue; + resultList.push(res); + } else { + !!item.displayName && path.push(item.displayName); + let deepList = resolveDiff(item.childrens, path) + resultList = resultList.concat(deepList); + } } + return resultList; + } + this.differentContentOfBuildingsInfo.childrens.forEach(element => { + element.difData = resolveDiff(element.childrens) }); - }); - + // console.log('建筑信息', this.differentContentOfBuildingsInfo + //功能分区 + let differentContentOfFunction = JSON.parse(JSON.stringify(differentContent.filter(item => item.propertyName == 'buildings')[0])) + this.differentContentOfFunction = [] + differentContentOfFunction.childrens.forEach(item => { + item.childrens.forEach(i => { + if (i.propertyName == "buildingFunctionalDivisions") { + i.propertyName = item.propertyName + this.differentContentOfFunction.push(i) + } + }); + }); + } } @@ -213,22 +244,22 @@ export class WaitExamineerComponent implements OnInit { this.id = item.id this.fetchUrl = '' this.viewer = {} - + if (item.contentType == 11) { - this.bianzhi=false + this.bianzhi = false window.setTimeout(() => { this.showtype = 3 sessionStorage.setItem('companyId', item.itemId) }, 0) } else if (item.contentType == 12) { - this.bianzhi=false + this.bianzhi = false //水源 this.http.get(`/api/WaterSources/${item.itemId}`).subscribe((data) => { this.waterData = data this.showtype = 12 }) } else if (item.contentType == 13) { - this.bianzhi=false + this.bianzhi = false //消防力量 this.http.get(`/api/CustomFireForce/${item.itemId}`).subscribe((data: any) => { if (data.forceType != 0) {//如果是其他消防力量 @@ -250,7 +281,7 @@ export class WaitExamineerComponent implements OnInit { }) } else if (item.contentType == 14) { - this.bianzhi=false + this.bianzhi = false //联动力量 this.http.get(`/api/LinkageForces/${item.itemId}`).subscribe((data: any) => { @@ -264,35 +295,35 @@ export class WaitExamineerComponent implements OnInit { this.companyId = data.companyId this.companyName = data.companyName if (data.planType != 2 && data.planType != 1) { - if(data.planMode==2){ - this.bianzhi=true - this.src=`/planManagement/createplanonlinefive?navIsOpen=false&companyId=${data.companyId}&planName=${data.name}&unitName=${data.companyName}&planCategory=${data.planCategory}&planId=${data.id}&unitTypeId=${data.company.buildingTypes[0].id}&orName=${data.company.organizationName}&orId=${data.company.organizationId}&pattern=false` + if (data.planMode == 2) { + this.bianzhi = true + this.src = `/planManagement/createplanonlinefive?navIsOpen=false&companyId=${data.companyId}&planName=${data.name}&unitName=${data.companyName}&planCategory=${data.planCategory}&planId=${data.id}&unitTypeId=${data.company.buildingTypes[0].id}&orName=${data.company.organizationName}&orId=${data.company.organizationId}&pattern=false` //this.src=`/keyUnit/viewunitinfoplan?id=${data.companyId}&orName=${data.company.organizationId}&orId=${data.company.organizationName}` - }else{ - this.bianzhi=false - this.fetchUrl = data.attachmentUrls[0] - var index = this.fetchUrl.indexOf("\/") - if (this.fetchUrl.substr(0, index) == 'psw') { - this.showtype = 1 - var obj = document.getElementById('viewer') - if (obj != null) { - obj.innerHTML = '' - } - window.setTimeout(() => { - this.viewer = new photoViewer({ - container: document.querySelector('#viewer'), - panorama: '/api/Objects/PlanPlatform/' + this.fetchUrl, - - }); - }) - } else { - this.lookWord() - } + this.bianzhi = false + this.fetchUrl = data.attachmentUrls[0] + var index = this.fetchUrl.indexOf("\/") + if (this.fetchUrl.substr(0, index) == 'psw') { + this.showtype = 1 + var obj = document.getElementById('viewer') + if (obj != null) { + obj.innerHTML = '' + } + window.setTimeout(() => { + this.viewer = new photoViewer({ + container: document.querySelector('#viewer'), + panorama: '/api/Objects/PlanPlatform/' + this.fetchUrl, + + }); + }) + + } else { + this.lookWord() + } } - + } else { - this.bianzhi=false + this.bianzhi = false this.organizationName = item.organizationName this.planData = data this.handleData() @@ -322,13 +353,13 @@ export class WaitExamineerComponent implements OnInit { //毕升 lookWord() { this.showtype = 0 - let src + let src let suffix = this.fetchUrl.split('.')[this.fetchUrl.split('.').length - 1].toLowerCase() if (suffix == 'docx' || suffix == 'doc') { let arr = this.fetchUrl.split('.') arr[arr.length - 1] = 'pdf' - src = `/api/Objects/PlanPlatform/` + arr.join('.') - }else if (suffix == 'pdf') { + src = `/api/Objects/PlanPlatform/` + arr.join('.') + } else if (suffix == 'pdf') { src = `/api/Objects/PlanPlatform/` + this.fetchUrl } this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(src); @@ -800,4 +831,19 @@ export class remark { } } } +} + +class DiffItem { + newValue: any + oldValue: any + childrens: Array + operation: number + displayName: string + propertyName: string +} + +class Result { + path: string[] + oldValue: any + newValue: any } \ No newline at end of file