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

338 lines
11 KiB

/*
* @Descripttion:
* @version:
* @Author: sueRimn
* @Date: 2020-12-25 10:19:31
* @LastEditors: sueRimn
* @LastEditTime: 2021-08-16 15:29:41
*/
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
plantypes
//获取表格数据
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 || '',
PlanType:this.plantypes||[]
}
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.plantypes=[]
this.getAlltabledate()
}
//表格点击事件
viewer//全景图对象
waterData: any//需要传递给子组件的水源信息
LinkageForceDetailInfo: any//需要传递给子组件的联动力量信息
fireForceDetailInfo: any//需要传递给子组件的消防力量信息
postlevel: any
bianzhi = false
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) {
this.bianzhi = false
window.setTimeout(() => {
this.showtype = 3
sessionStorage.setItem('companyId', item.itemId)
}, 0)
} else if (item.contentType == 12) {
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.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.bianzhi = false
//联动力量
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
//this.bianzhi = false
if (data.planType != 2 && data.planType != 1) {
if (data.planMode == 2) {
this.showtype = 0
this.bianzhi = true
this.src = `/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.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(this.src);
//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 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 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'
this.src = `/api/Objects/PlanPlatform/` + arr.join('.')
} else if (suffix == 'pdf') {
this.src = `/api/Objects/PlanPlatform/` + this.fetchUrl
}
this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(this.src);
}
//查看按钮跳转
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.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 } });
}
//判断iframe是否加载完成
iftrue=true
ifranmeLoad(){
var iframe = document.getElementById("myiframe");
iframe.onload = function(){
}
this.iftrue=!this.iftrue
}
}
@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
}