/* * @Descripttion: * @version: * @Author: sueRimn * @Date: 2020-12-25 16:13:50 * @LastEditors: sueRimn * @LastEditTime: 2021-03-20 15:35:16 */ import { Component, Inject, OnInit } from '@angular/core'; import { FormControl } from '@angular/forms'; import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; import { HttpClient } from '@angular/common/http' declare var CryptoJS import { DomSanitizer } from '@angular/platform-browser'; import { Viewer } from 'photo-sphere-viewer'; declare var echarts: any; @Component({ selector: 'app-wait-examineer', templateUrl: './wait-examineer.component.html', styleUrls: ['./wait-examineer.component.scss'] }) export class WaitExamineerComponent implements OnInit { constructor(private http:HttpClient,public snackBar: MatSnackBar,private sanitizer: DomSanitizer,public dialog: MatDialog) { } ngOnInit(): void { sessionStorage.setItem('gisplan','look') let level = sessionStorage.getItem("level"); if(level == "0"){//如果是总队 this.preparelevels = [ {name:"总队",value:"0"}, {name:"支队",value:"1"}, {name:"大队",value:"2"}, {name:"中队",value:"3"} ] this.PlanLevel=0 } if(level == "1"){//如果是支队 this.preparelevels = [ {name:"支队",value:"1"}, {name:"大队",value:"2"}, {name:"中队",value:"3"} ] this.PlanLevel=1 } if(level == "2"){//如果是大队 this.preparelevels = [ {name:"大队",value:"2"}, {name:"中队",value:"3"} ] this.PlanLevel=2 } if(level == "3"){//如果是中队 this.preparelevels = [ {name:"中队",value:"3"} ] this.PlanLevel=3 } var scrollflaga = true; var win=document.getElementById('tbodydiv') /* window.setTimeout(()=>{ var a = document.getElementById("table").offsetTop; window.onscroll=function(){ if(scrollflaga){ if(a>=win.scrollTop&&a<(win.scrollTop+win.offsetHeight)){ scrollflaga=false this.getAlltabledate() } } } }) */ this.getAlltabledate() this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); } ngOnDestroy () { /* this.indexbar.clear() this.indexbar.dispose() */ } iframeSrc src='' preparelevels:any selected = new FormControl(0); //选项卡 实例 level=''//操作类型 js//组织机构 addtime//时间 projectlevel//预案级别 previewshow=false//预览得分是否显示 tableDate isallDate=true//是否显示完成数据,默认显示 companyBuiltInGrouping=["基本信息","四周毗邻","消防设施"] indexbar //饼状图实例 indexzhu PlanLevel//编制级别 count//一共多少条 checked//是否选中 chuorzhong//判断初审还是终审 radioid//选中的id shenheTable=[]//选中要审核的对象 showtype=-1//0:word,1:全景图,2:二维三维,3:重点单位 compantData={name:'',buildingTypes:[],address:''} organizationName planData id companyId fetchUrl companyName //获取表格数据 getAlltabledate(){ let paramsdata:any = { Operation:this.level||[], ContentType:Number(this.projectlevel)||[], Level:this.PlanLevel||[], verifyState:[0,3] } this.http.get("/api/ContentVerifies",{params:paramsdata}).subscribe((data:any)=>{ this.tableDate=data.items this.count=data.totalCount }) } //提交查询 onSubmit(value){ this.getAlltabledate() } //刷新 record(){ this.level='' this.projectlevel='' let level = sessionStorage.getItem("level"); if(level == "0"){//如果是总队 this.PlanLevel=0 } if(level == "1"){//如果是支队 this.PlanLevel=1 } if(level == "2"){//如果是大队 this.PlanLevel=2 } if(level == "3"){//如果是中队 this.PlanLevel=3 } this.getAlltabledate() } //radio点击事件 viewer//全景图对象 waterData:any//需要传递给子组件的水源信息 LinkageForceDetailInfo:any//需要传递给子组件的联动力量信息 fireForceDetailInfo:any//需要传递给子组件的消防力量信息 postlevel:any radioClick(e,item){ this.showtype = -1 this.organizationName='' this.id=item.id this.fetchUrl='' this.viewer={} if(item.contentType == 11){ window.setTimeout(()=>{ this.showtype = 3 sessionStorage.setItem('companyId',item.itemId) },0) }else if(item.contentType == 12){ //水源 this.http.get(`/api/WaterSources/${item.itemId}`).subscribe((data)=>{ this.waterData = data this.showtype = 12 }) }else if(item.contentType == 13){ //消防力量 this.http.get(`/api/CustomFireForce/${item.itemId}`).subscribe((data:any)=>{ if(data.forceType != 0){//如果是其他消防力量 this.postlevel = 4 }else{ this.postlevel = data.level } if(data.fireForceDetailInfo && data.fireForceDetailInfo.location){ this.fireForceDetailInfo = data.fireForceDetailInfo this.showtype = 13 }else if(!data.fireForceDetailInfo){ //提示 该提交内容为空,从未保存过,请驳回该审核 this.showtype = 666 } else { data.fireForceDetailInfo.location={x:null,y:null} this.fireForceDetailInfo = data.fireForceDetailInfo this.showtype = 13 } }) }else if(item.contentType == 14){ //联动力量 this.http.get(`/api/LinkageForces/${item.itemId}`).subscribe((data:any)=>{ data.location ? null : data.location={x:null,y:null} this.LinkageForceDetailInfo = data this.showtype = 14 }) }else{ this.http.get(`/api/PlanComponents/${item.itemId}`).subscribe((data:any)=>{ this.companyId=data.companyId this.companyName=data.companyName if(data.planType!=2&&data.planType!=1){ 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 Viewer({ container: document.querySelector('#viewer'), panorama:'/api/Objects/PlanPlatform/'+ this.fetchUrl, }); }) }else{ this.lookWord() } }else{ this.organizationName=item.organizationName this.planData = data this.handleData() return //this.src=`/planAudit/planpass?id=${data.companyId}&companyName=${data.companyName}&auditPlanId=${data.id}&auditStatus=${data.auditStatus}&planType=1` //this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); //window.open(`/planAudit/planpass?id=${data.companyId}&companyName=${data.companyName}&auditPlanId=${data.id}&auditStatus=${data.auditStatus}&planType=1`) } }) } if(e.checked){ this.shenheTable.push(item) } else{ for(var i=0;i{ filename=data.fileName let json={ doc: { docId: docId, title: filename, //title: filename, fetchUrl: `http://${location.host}/api/Objects/PlanPlatform/`+this.fetchUrl }, user: { uid: identityJsonparse.sub, nickName: identityJsonparse.name, avatar: "", privilege: [ 'FILE_READ','FILE_DOWNLOAD', 'FILE_PRINT' ], }, } var stringjson=JSON.stringify(json) var wordArray = CryptoJS.enc.Utf8.parse(stringjson); var base64 = CryptoJS.enc.Base64.stringify(wordArray); this.src=`http://121.5.10.84/apps/editor/openPreview?data=${base64}` this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); //window.open(`http://121.5.10.84/apps/editor/openPreview?data=${base64}`) }) } //查看按钮跳转 lookNew(){ window.open(this.src) } //查看二维三维预案 thirdPartyURL planType twoOrthree handleData () { this.compantData={name:'',buildingTypes:[],address:''} this.planType = this.planData.planMode let data = this.planData if(data.planType==1){ this.twoOrthree=2 }else if(data.planType==2){ this.twoOrthree=3 } if (this.planData.planMode==0) { //预案planMode=0时, 查看word //this.lookWord() } else if (this.planData.planMode==1) { //预案planMode=1时, 解析文档 } else if (this.planData.planMode==2) { //预案planMode=2时, 跳查看页面组件 this.showtype=2 this.http.get(`/api/Plans/${data.companyId}`).subscribe((data:any)=>{ data && data.company? this.compantData = data.company : null }) sessionStorage.setItem("buildingTypeId", this.compantData.buildingTypes.length? this.compantData.buildingTypes[0].id: undefined); sessionStorage.setItem("companyId",this.companyId); sessionStorage.setItem("planId",this.id); sessionStorage.setItem("editable",'0'); sessionStorage.setItem("planName",data.name) let companyId = sessionStorage.getItem("companyId") this.thirdPartyURL=this.sanitizer.bypassSecurityTrustResourceUrl(`/planAudit/planpass?id=${this.companyId}&companyName=${data.companyName}&auditPlanId=${data.id}&auditStatus=${data.auditStatus}&planType=1`); //window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`) } else if (this.planData.planMode==3) { //预案planMode=3时, 第三方网址' this.showtype=2 this.http.get(`/api/Plans/${data.companyId}`).subscribe((data:any)=>{ data && data.company? this.compantData = data.company : null }) //this.dialog.open(show3D,{width:'1350px',height:'700px',data:{url:data.url}}); //打开图片弹窗 this.thirdPartyURL = this.sanitizer.bypassSecurityTrustResourceUrl(data.url) } } //打开三维预案弹窗 oopen3Dshow(){ this.dialog.open(show3D,{width:'1650px',height:'850px',data:{url:this.thirdPartyURL,twoOrthree:this.twoOrthree,radioid:this.radioid}}); } //变更数据和全部数据切换按钮 buttonChange(){ this.isallDate=!this.isallDate this.previewshow=false } //同意操作 agree(){ var agreeList=[] var companyAgreeList=[] const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 if(this.shenheTable.length==0){ this.snackBar.open('请勾选要审核的条目!','确定',config); } else{ const dialogRef =this.dialog.open(remark,{width:'460px',height:'290px',data:{shenhedata:this.shenheTable,type:1,radioid:this.radioid}}); dialogRef.afterClosed().subscribe(result => { this.shenheTable = [] this.showtype = -1 this.getAlltabledate() }); } } //拒绝操作 refuse(){ const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 var refuseList = [] var companyrefuseList=[] if(this.shenheTable.length==0){ this.snackBar.open('请选择要审核的预案!','确定',config); } else{ const dialogRef =this.dialog.open(remark,{width:'460px',height:'290px',data:{shenhedata:this.shenheTable,type:2,radioid:this.radioid}}); dialogRef.afterClosed().subscribe(result => { this.shenheTable = [] this.showtype = -1 this.getAlltabledate() }); } } //分数饼状图 bar(){ var ec = echarts as any; this.indexbar=ec.init(document.getElementById('indexbar'),'light'); var option = { tooltip: { trigger: 'item', formatter: '{a}
{b}: {c} ({d}%)' }, title: { text: '总分', left: 'center', bottom:70, textStyle:{ color:'#FFFFFF', fontSize:16 } }, series: [ { name: '分数', type: 'pie', radius: ['50%', '70%'], bottom:50, avoidLabelOverlap: false, label: { show: true, position: 'center', fontSize:16, color:'#FFFFFF' }, labelLine: { show: false }, data: [ {value: 93, name: '93分', itemStyle:{color:'#2196F3'}}, {value:7, itemStyle:{color:'#FFFFFF'}} ] } ] }; this.indexbar.setOption(option); } //分数柱状图 zhu(){ var ec = echarts as any; this.indexzhu=ec.init(document.getElementById('zhu'),'light'); var option={ grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value', show:false, axisLine:{ show:false }, splitLine:{ show:false }, axisTick:{ show:false }, }, yAxis: { type: 'category', axisTick:{ show:false }, axisLine:{ show:false }, axisLabel:{ color:"#FFFFFF", fontSize:16 }, data: ['实战演练记录', '六熟悉记录', '上传CAD', '实景图', '功能分区', '重点单位', '消防设施','四周毗邻','基本信息'] }, series: [ { type: 'bar', stack: '总量', showBackground: true, backgroundStyle: { color: '#FFFFFF' }, label: { show: true, position: 'inside', fontSize:14, formatter: '{c}分' }, data: [ {value:18, itemStyle:{color:'#58D091'}}, {value:16, itemStyle:{color:'#58D091'}}, {value:19, itemStyle:{color:'#58D091'}}, {value:16, itemStyle:{color:'#58D091'}}, {value:16, itemStyle:{color:'#58D091'}}, {value:13, itemStyle:{color:'#FFCC00'}}, {value:6, itemStyle:{color:'#FF4D4D'}}, {value:19, itemStyle:{color:'#58D091'}}, {value:16, itemStyle:{color:'#58D091'}}, ] }, { type: 'bar', stack: '总量', label: { show: false, position: 'insideRight' }, data: [2, 4, 1, 4, 4, 7, 14,1,4], itemStyle:{ color:"#FFFFFF", }, }, ] } this.indexzhu.setOption(option); } preview(){ this.previewshow=!this.previewshow if(this.previewshow){ window.setTimeout(()=>{ this.bar() this.zhu() },0) } } } //二三维预案查看 @Component({ selector: 'app-wait-examineer-show3D', templateUrl: './show3D.html', styleUrls: ['./wait-examineer.component.scss'] }) export class show3D{ constructor(private sanitizer: DomSanitizer,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,public dialog: MatDialog) {} ngOnInit(): void { this.threedUrl=this.sanitizer.bypassSecurityTrustResourceUrl(this.data.url.changingThisBreaksApplicationSecurity) } threedUrl } //审批意见弹窗 @Component({ selector: 'app-wait-examineer-remark', templateUrl: './remark.html', styleUrls: ['./wait-examineer.component.scss'] }) export class remark{ constructor(private http:HttpClient,private sanitizer: DomSanitizer,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,public dialog: MatDialog,public snackBar: MatSnackBar) {} ngOnInit(): void { this.shenheTable=this.data.shenhedata this.radioid=this.data.radioid } companyrefuseList=[] refuseList=[] shenheTable=[] companyAgreeList=[] agreeList=[] remark radioid //取消 close(){ this.dialogRef.close() } //确定 define(){ const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 if(this.data.type==1){ //同意操作 // console.log(this.shenheTable) //单个审核 if(this.shenheTable.length == 1){ //重点单位审核 if(this.shenheTable[0].contentType == 11){ let body:any = { id:this.shenheTable[0].id, itemId:this.shenheTable[0].itemId, verifyState:4, contentType:11, remark:this.remark||'', title:this.shenheTable[0].title+'基本信息' } this.http.put(`/api/ContentVerifies`,body).subscribe(data=>{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() //this.getAlltabledate() }) }else if(this.shenheTable[0].contentType == 12 || this.shenheTable[0].contentType == 13 || this.shenheTable[0].contentType == 14){ let body:any = { id:this.shenheTable[0].id, itemId:this.shenheTable[0].itemId, verifyState:4, contentType:this.shenheTable[0].contentType, remark:this.remark||'', title:this.shenheTable[0].title } this.http.put(`/api/ContentVerifies`,body).subscribe(data=>{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() }) }else{ //预案审核 if(this.shenheTable[0].verifyState==0){ let body:any={ auditStatus:16, auditOpinion:this.remark||'' } this.http.put(`/api/PlanAudits/${this.shenheTable[0].itemId}/First`,body).subscribe(data=>{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() //this.getAlltabledate() }) }else if(this.shenheTable[0].verifyState==3){ let body:any={ auditStatus:2, auditOpinion:this.remark||'' } this.http.put(`/api/PlanAudits/${this.radioid}`,body).subscribe(data=>{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() //this.getAlltabledate() }) } } this.shenheTable=[] } //批量审核 else{ if(this.shenheTable[0].contentType==11||this.shenheTable[0].contentType==12){ //批量审批水源和重点单位 for(var i=0;i{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() }) }else{ //批量审核预案 for(var i=0;i{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() }) } this.shenheTable=[] } } else{ //单个审核拒绝 if(this.shenheTable.length==1){ //重点单位审核拒绝 if(this.shenheTable[0].contentType == 11){ let body:any = { id:this.shenheTable[0].id, itemId:this.shenheTable[0].itemId, verifyState:5, contentType:11, remark:this.remark, title:this.shenheTable[0].title+'基本信息' } this.http.put(`/api/ContentVerifies`,body).subscribe(data=>{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() //this.getAlltabledate() }) }else if(this.shenheTable[0].contentType == 12 || this.shenheTable[0].contentType == 13 || this.shenheTable[0].contentType == 14){ let body:any = { id:this.shenheTable[0].id, itemId:this.shenheTable[0].itemId, verifyState:5, contentType:this.shenheTable[0].contentType, remark:this.remark, title:this.shenheTable[0].title } this.http.put(`/api/ContentVerifies`,body).subscribe(data=>{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() }) }else{ //预案审核拒绝 if(this.shenheTable[0].verifyState==0){ let refbody={ auditOpinion:this.remark, auditStatus:32 } this.http.put(`/api/PlanAudits/${this.shenheTable[0].itemId}/First`,refbody).subscribe(data=>{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() }) }else if(this.shenheTable[0].verifyState==3){ let refbody={ auditOpinion:this.remark, auditStatus:4 } this.http.put(`/api/PlanAudits/${this.radioid}`,refbody).subscribe(data=>{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() }) } } this.shenheTable=[] } //批量审核 else{ if(this.shenheTable[0].contentType==11||this.shenheTable[0].contentType==12){ //批量审批水源和重点单位 for(var i=0;i{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() }) }else{ for(var i=0;i{ this.snackBar.open('操作成功!','确定',config); this.dialogRef.close() }) } this.shenheTable=[] } } } }