|
|
|
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;
|
|
|
|
IsNewData = [true, false];
|
|
|
|
|
|
|
|
//获取表格数据
|
|
|
|
PageNumber = 1;
|
|
|
|
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 || [],
|
|
|
|
IsNewData: this.IsNewData,
|
|
|
|
PageNumber: this.PageNumber,
|
|
|
|
PageSize: 10,
|
|
|
|
};
|
|
|
|
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.PageNumber = 1;
|
|
|
|
this.getAlltabledate();
|
|
|
|
}
|
|
|
|
//刷新
|
|
|
|
record() {
|
|
|
|
this.verifyState = "";
|
|
|
|
this.level = "";
|
|
|
|
this.projectlevel = "";
|
|
|
|
this.addtime = "";
|
|
|
|
this.endtime = "";
|
|
|
|
let level = sessionStorage.getItem("level");
|
|
|
|
this.PlanLevel = "";
|
|
|
|
this.plantypes = [];
|
|
|
|
this.PageNumber = 1;
|
|
|
|
this.getAlltabledate();
|
|
|
|
}
|
|
|
|
|
|
|
|
//分页事件
|
|
|
|
chagePage(e) {
|
|
|
|
console.log(e);
|
|
|
|
this.PageNumber = e.pageIndex + 1;
|
|
|
|
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() {
|
|
|
|
console.log(this.planData);
|
|
|
|
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 || 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;
|
|
|
|
}
|