You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
334 lines
11 KiB
334 lines
11 KiB
/* |
|
* @Descripttion: |
|
* @version: |
|
* @Author: sueRimn |
|
* @Date: 2020-12-25 10:19:31 |
|
* @LastEditors: sueRimn |
|
* @LastEditTime: 2021-04-22 10:47:06 |
|
*/ |
|
import { Component, OnInit,Inject } 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' |
|
import { DomSanitizer } from '@angular/platform-browser'; |
|
import { Viewer } from 'photo-sphere-viewer'; |
|
declare var CryptoJS |
|
|
|
@Component({ |
|
selector: 'app-plan-record', |
|
templateUrl: './plan-record.component.html', |
|
styleUrls: ['./plan-record.component.scss'] |
|
}) |
|
export class PlanRecordComponent implements OnInit { |
|
|
|
constructor(private http:HttpClient,public snackBar: MatSnackBar,private sanitizer: DomSanitizer,public dialog: MatDialog) { } |
|
|
|
pcshow |
|
ngOnInit(): void { |
|
if(window.matchMedia("(max-width: 1300px)").matches){ |
|
this.pcshow=false |
|
}else{ |
|
this.pcshow=true |
|
} |
|
let level = sessionStorage.getItem("level"); |
|
if(level == "0"){//如果是总队 |
|
this.preparelevels = [ |
|
{name:"总队",value:"0"}, |
|
{name:"支队",value:"1"}, |
|
{name:"大队",value:"2"}, |
|
{name:"中队",value:"3"} |
|
] |
|
|
|
} |
|
if(level == "1"){//如果是支队 |
|
this.preparelevels = [ |
|
{name:"支队",value:"1"}, |
|
{name:"大队",value:"2"}, |
|
{name:"中队",value:"3"} |
|
] |
|
|
|
} |
|
if(level == "2"){//如果是大队 |
|
this.preparelevels = [ |
|
{name:"大队",value:"2"}, |
|
{name:"中队",value:"3"} |
|
] |
|
|
|
} |
|
if(level == "3"){//如果是中队 |
|
this.preparelevels = [ |
|
{name:"中队",value:"3"} |
|
] |
|
|
|
} |
|
this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); |
|
this.getAlltabledate() |
|
} |
|
|
|
wordShow=true |
|
iframeSrc |
|
src='' |
|
selected = new FormControl(0); //选项卡 实例 |
|
preparelevels:any |
|
level=''//类型 |
|
verifyState=''//审核状态 |
|
projectlevel//组织机构 |
|
PlanLevel//编制级别 |
|
addtime//时间 |
|
endtime//结束时间 |
|
count//一共多少条 |
|
tableDate |
|
showPvt=false//全景图是否显示 |
|
shenheTable=[]//选中要审核的对象 |
|
chuorzhong//判断初审还是终审 |
|
radioid//选中的id |
|
showtype=-1//0:word,1:全景图,2:二维三维,3:重点单位 |
|
compantData={name:'',buildingTypes:[],address:''} |
|
organizationName |
|
planData |
|
id |
|
itemid |
|
companyId |
|
fetchUrl |
|
companyName |
|
|
|
//获取表格数据 |
|
getAlltabledate(){ |
|
|
|
let paramsdata:any = { |
|
Operation:this.level||[], |
|
ContentType:Number(this.projectlevel)||[], |
|
Level:this.PlanLevel||[], |
|
verifyState:this.verifyState||[1,2,4,5], |
|
QueryStartTime:this.addtime||'', |
|
QueryEndTime:this.endtime||'' |
|
} |
|
this.http.get("/api/ContentVerifies",{params:paramsdata}).subscribe((data:any)=>{ |
|
//console.log(data) |
|
this.tableDate=data.items |
|
this.count=data.totalCount |
|
}) |
|
} |
|
//提交查询 |
|
onSubmit(value){ |
|
//console.log(value) |
|
this.getAlltabledate() |
|
} |
|
//刷新 |
|
record(){ |
|
this.verifyState='' |
|
this.level='' |
|
this.projectlevel='' |
|
this.addtime='' |
|
this.endtime='' |
|
let level = sessionStorage.getItem("level"); |
|
this.PlanLevel='' |
|
this.getAlltabledate() |
|
} |
|
//表格点击事件 |
|
viewer//全景图对象 |
|
waterData:any//需要传递给子组件的水源信息 |
|
LinkageForceDetailInfo:any//需要传递给子组件的联动力量信息 |
|
fireForceDetailInfo:any//需要传递给子组件的消防力量信息 |
|
postlevel:any |
|
tableClick(e,item){ |
|
this.showtype = -1 |
|
//e.target.parentElement.bgColor='#2196F3' |
|
// console.log(item) |
|
this.organizationName='' |
|
this.itemid=item.itemId |
|
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 |
|
} |
|
// console.log('xxx',data) |
|
data.fireForceDetailInfo.location ? null : 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<this.shenheTable.length;i++ ){ |
|
if(this.shenheTable[i].id==item.id){ |
|
this.shenheTable.splice(i,1) |
|
} |
|
} |
|
} |
|
this.radioid=item.itemId |
|
/* this.chuorzhong=item.verifyState |
|
this.radioid=item.itemId */ |
|
} |
|
|
|
//毕升 |
|
lookWord(){ |
|
this.showtype=0 |
|
let docIdWordArray = CryptoJS.enc.Utf8.parse(`PlanPlatform/` + this.fetchUrl); |
|
let docId = CryptoJS.enc.Base64.stringify(docIdWordArray); |
|
let jwt = sessionStorage.getItem("token"); |
|
let rawJwt = CryptoJS.enc.Base64.parse(jwt.split('.')[1]); |
|
let identityJson = CryptoJS.enc.Utf8.stringify(rawJwt); |
|
let identityJsonparse=JSON.parse(identityJson) |
|
let filename:string |
|
this.http.get(`/api/ObjectMetadata/PlanPlatform/${this.fetchUrl}`).subscribe((data:any)=>{ |
|
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://172.26.166.38:18080/apps/editor/openPreview?data=${base64}` |
|
this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); |
|
//window.open(`http://172.26.166.38:18080/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 |
|
// console.log(data) |
|
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.itemid); |
|
sessionStorage.setItem("editable",'0'); |
|
sessionStorage.setItem("planName",data.name) |
|
let companyId = sessionStorage.getItem("companyId") |
|
this.thirdPartyURL=this.sanitizer.bypassSecurityTrustResourceUrl(`/keyUnit/viewunitinfoplans?id=${companyId}`); |
|
//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(recordshow3D,{width:'1650px',height:'850px',data:{url:this.thirdPartyURL,twoOrthree:this.twoOrthree}}); |
|
} |
|
|
|
} |
|
|
|
@Component({ |
|
selector: 'app-wait-examineer-show3D', |
|
templateUrl: './show3D.html', |
|
styleUrls: ['./plan-record.component.scss'] |
|
}) |
|
export class recordshow3D{ |
|
constructor(private sanitizer: DomSanitizer,public dialogRef: MatDialogRef<recordshow3D>,@Inject(MAT_DIALOG_DATA) public data,public dialog: MatDialog) {} |
|
ngOnInit(): void { |
|
// console.log(this.data) |
|
this.threedUrl=this.sanitizer.bypassSecurityTrustResourceUrl(this.data.url.changingThisBreaksApplicationSecurity) |
|
} |
|
threedUrl |
|
}
|
|
|