上海预案管理平台
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

/*
* @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
}