|
|
|
import { Component, OnInit, ViewChild, Inject } from '@angular/core';
|
|
|
|
import { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http'
|
|
|
|
import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
|
|
|
|
import { MatPaginator } from '@angular/material/paginator';
|
|
|
|
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
|
|
import { FormControl } from '@angular/forms';
|
|
|
|
import { Router, ActivatedRoute } from '@angular/router'
|
|
|
|
import { PageEvent } from '@angular/material/paginator';
|
|
|
|
import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
|
|
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
|
|
|
|
import { TreeService } from '../../http-interceptors/tree.service'
|
|
|
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
|
|
|
import { async } from '@angular/core/testing';
|
|
|
|
import { Viewer } from 'photo-sphere-viewer';
|
|
|
|
import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
|
|
|
|
import Swiper from 'swiper';
|
|
|
|
import { resolve } from 'dns';
|
|
|
|
declare var CryptoJS
|
|
|
|
@Component({
|
|
|
|
selector: 'app-entry-plan-look',
|
|
|
|
templateUrl: './entry-plan-look.component.html',
|
|
|
|
styleUrls: ['./entry-plan-look.component.scss']
|
|
|
|
})
|
|
|
|
export class EntryPlanLookComponent implements OnInit {
|
|
|
|
constructor(private http: HttpClient, private router: Router, private route: ActivatedRoute, private tree: TreeService, public dialog: MatDialog, public snackBar: MatSnackBar) { }
|
|
|
|
pageEvent: PageEvent;
|
|
|
|
private _transformer = (node, level: number) => { //初始化tree
|
|
|
|
return {
|
|
|
|
expandable: !!node.children && node.children.length > 0,
|
|
|
|
name: node.name,
|
|
|
|
level: level,
|
|
|
|
id: node.id,
|
|
|
|
parentId: node.parentId,
|
|
|
|
children: node.children
|
|
|
|
};
|
|
|
|
}
|
|
|
|
treeControl = new FlatTreeControl<any>(node => node.level, node => node.expandable);
|
|
|
|
treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children);
|
|
|
|
dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
|
|
|
|
myControl = new FormControl();
|
|
|
|
hasChild = (_: number, node: any) => node.expandable;
|
|
|
|
|
|
|
|
displayedColumns: string[] = ['planname', 'addpeople', 'addtime','planCategory', 'plantype', 'auditstate', 'isopen', 'preparethelevel', 'operation'];
|
|
|
|
tabledataSource: any
|
|
|
|
//分页
|
|
|
|
@ViewChild(MatPaginator, { static: true })
|
|
|
|
paginator: MatPaginator;
|
|
|
|
length: any; //共多少条数据
|
|
|
|
pageSize: any; //每页条数
|
|
|
|
pageSizeOptions: number[] = [10] //设置每页条数
|
|
|
|
PageNumber: any = 1; //第几页
|
|
|
|
|
|
|
|
unitdata: any = {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unittypeId: any //单位类型id
|
|
|
|
|
|
|
|
//获取当前单位信息
|
|
|
|
compantData: any
|
|
|
|
getCompanyData() {
|
|
|
|
let CompanyName = sessionStorage.getItem("companyName")
|
|
|
|
let header = {
|
|
|
|
CompanyName: CompanyName || '',
|
|
|
|
}
|
|
|
|
this.http.get('/api/Plans', { params: header }).subscribe((data: any) => {
|
|
|
|
data.items.forEach(element => {
|
|
|
|
if (element.companyId === this.route.snapshot.queryParams.unitId) {
|
|
|
|
this.compantData = element.company
|
|
|
|
return
|
|
|
|
}
|
|
|
|
});
|
|
|
|
// console.log(123,this.compantData)
|
|
|
|
this.unitdata.unitname = this.compantData.name
|
|
|
|
this.unitdata.organizationName = this.compantData.organizationName
|
|
|
|
this.unitdata.unittype = this.compantData.buildingTypes[0].name
|
|
|
|
this.unitdata.unitaddress = this.compantData.address
|
|
|
|
this.unittypeId = this.compantData.buildingTypes[0].id
|
|
|
|
})
|
|
|
|
}
|
|
|
|
//跳转单位信息
|
|
|
|
lookUnitData() {
|
|
|
|
sessionStorage.setItem("editable", "0")
|
|
|
|
sessionStorage.setItem("companyName", this.route.snapshot.queryParams.unitName)
|
|
|
|
sessionStorage.setItem("companyId", this.route.snapshot.queryParams.unitId)
|
|
|
|
// sessionStorage.setItem(element.id,JSON.stringify(element.companyIntegrityScore))
|
|
|
|
window.open(`/keyUnit/viewunitinfo?id=${this.route.snapshot.queryParams.unitId}&usci=${this.route.snapshot.queryParams.usci}`)
|
|
|
|
}
|
|
|
|
//分页事件
|
|
|
|
changePage(e) {
|
|
|
|
this.PageNumber = e.pageIndex + 1
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
}
|
|
|
|
isoperation: any //判断预案录入 和 审核公开预案 区别变量
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.tabledataSource = [
|
|
|
|
]
|
|
|
|
this.getCompanyData()
|
|
|
|
this.isoperation = this.route.snapshot.queryParams.operation
|
|
|
|
this.unitdata.unitname = this.route.snapshot.queryParams.unitName
|
|
|
|
this.unitdata.organizationName = this.route.snapshot.queryParams.orName
|
|
|
|
this.unitdata.unittype = this.route.snapshot.queryParams.unitType
|
|
|
|
this.unitdata.unitaddress = this.route.snapshot.queryParams.unitAdd
|
|
|
|
this.companyId = this.route.snapshot.queryParams.unitId
|
|
|
|
this.unittypeId = this.route.snapshot.queryParams.unitTypeId
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
}
|
|
|
|
//查看预案
|
|
|
|
lookPlan(e) {
|
|
|
|
if (e.planType == 16 || e.planType == 4 || e.planType == 8) {
|
|
|
|
if (e.planType == 16&&e.attachmentUrls == null){
|
|
|
|
window.open(`/planManagement/createplanonlinefive?navIsOpen=false&companyId=${this.companyId}&planName=${e.name}&unitName=${this.unitdata.unitname}&planCategory=${e.planCategory}&planId=${e.id}&unitTypeId=${this.compantData.buildingTypes[0].id}&orName=${this.compantData.organizationName}&orId=${this.compantData.organizationId}&pattern=false`)
|
|
|
|
}else{
|
|
|
|
var index = e.attachmentUrls[0].indexOf("\/")
|
|
|
|
if (e.attachmentUrls[0].substr(0, index) == 'psw') {
|
|
|
|
const dialogRef = this.dialog.open(PsViewer, {
|
|
|
|
width: '1500px',
|
|
|
|
height: '800px',
|
|
|
|
data: e.attachmentUrls[0]
|
|
|
|
});
|
|
|
|
} else if (e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'JPG' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'png' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'jpeg' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'jpg') {
|
|
|
|
let data = e
|
|
|
|
const dialogRef = this.dialog.open(ImgDetails, {//调用open方法打开对话框并且携带参数过去
|
|
|
|
data: data.attachmentUrls,
|
|
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe();
|
|
|
|
} else {
|
|
|
|
let fetchUrl = e.attachmentUrls[0]
|
|
|
|
//console.log(fetchUrl)
|
|
|
|
if (fetchUrl) {
|
|
|
|
let suffix = fetchUrl.split('.')[fetchUrl.split('.').length - 1].toLowerCase()
|
|
|
|
if (suffix == 'docx' || suffix == 'doc') {
|
|
|
|
let arr = fetchUrl.split('.')
|
|
|
|
arr[arr.length - 1] = 'pdf'
|
|
|
|
window.open(`/api/Objects/PlanPlatform/` + arr.join('.'))
|
|
|
|
} else if (suffix == 'pdf') {
|
|
|
|
window.open(`/api/Objects/PlanPlatform/` + fetchUrl)
|
|
|
|
} else {
|
|
|
|
let config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('该文件类型暂不支持在线查看', '确定', config);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
if (e.planType == 1) { //如果是在线编辑
|
|
|
|
let id = e.id
|
|
|
|
sessionStorage.setItem("planId", id)
|
|
|
|
sessionStorage.setItem("companyId", this.companyId)
|
|
|
|
sessionStorage.setItem("buildingTypeId", this.unittypeId)
|
|
|
|
sessionStorage.setItem("editable", "0")
|
|
|
|
sessionStorage.setItem("planName", e.name)
|
|
|
|
let companyId = sessionStorage.getItem("companyId")
|
|
|
|
window.open(`/keyUnit/viewunitinfoplan?id=${companyId}&orName=${this.route.snapshot.queryParams.orName}&orId=${this.route.snapshot.queryParams.orId}`);
|
|
|
|
}
|
|
|
|
if (e.planType == 2) { //如果是跳转网页
|
|
|
|
if (e.url.indexOf('app') == 0) {
|
|
|
|
window.location.href = e.url
|
|
|
|
} else {
|
|
|
|
sessionStorage.setItem("url", e.url)
|
|
|
|
if ((e.url as string).includes('gis/threeDimensionalHome')) { //三维预案
|
|
|
|
window.open(`${e.url}?unitId=${this.companyId}&unitName=${this.unitdata.unitname}&editMode=false`)
|
|
|
|
} else {
|
|
|
|
window.open(`/planManagement/webLook`)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//编辑预案
|
|
|
|
editPlan(e) {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
let isTrue = confirm('您确定编辑吗,若是公开预案会变成未公开状态')
|
|
|
|
if(isTrue){
|
|
|
|
if (e.auditStatus == 8) {
|
|
|
|
if (e.planType == 1) { //如果是在线编辑
|
|
|
|
let id = e.id
|
|
|
|
sessionStorage.setItem("planId", id)
|
|
|
|
sessionStorage.setItem("companyId", this.companyId)
|
|
|
|
sessionStorage.setItem("buildingTypeId", this.unittypeId)
|
|
|
|
sessionStorage.setItem("editable", "1")
|
|
|
|
sessionStorage.setItem("planName", e.name)
|
|
|
|
let companyId = sessionStorage.getItem("companyId")
|
|
|
|
window.open(`/keyUnit/editunitinfo?id=${companyId}&orName=${this.route.snapshot.queryParams.orName}&orId=${this.route.snapshot.queryParams.orId}`);
|
|
|
|
}
|
|
|
|
else if (e.planType == 16) {
|
|
|
|
if (e.attachmentUrls == null) {
|
|
|
|
if(e.planMode==4){
|
|
|
|
window.open(`/planManagement/createplanonlinefive?navIsOpen=false&companyId=${this.companyId}&planName=${e.name}&unitName=${this.unitdata.unitname}&planCategory=${e.planCategory}&planId=${e.id}&unitTypeId=${this.compantData.buildingTypes[0].id}&orName=${this.compantData.organizationName}&orId=${this.compantData.organizationId}&pattern=true&haveNew=true`)
|
|
|
|
}else{
|
|
|
|
window.open(`/planManagement/createplanonlinefive?navIsOpen=false&companyId=${this.companyId}&planName=${e.name}&unitName=${this.unitdata.unitname}&planCategory=${e.planCategory}&planId=${e.id}&unitTypeId=${this.compantData.buildingTypes[0].id}&orName=${this.compantData.organizationName}&orId=${this.compantData.organizationId}&pattern=true`)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
let body = {};
|
|
|
|
let resetAudit = true
|
|
|
|
let headers = new HttpHeaders({
|
|
|
|
'Content-Type': 'text/json'
|
|
|
|
});
|
|
|
|
let options = {
|
|
|
|
headers
|
|
|
|
};
|
|
|
|
this.http.put(`/api/PlanComponents/${e.id}?resetAudit=${resetAudit}`, body, options).subscribe(data => {
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
this.lookPlan(e)
|
|
|
|
}/* ,err => {
|
|
|
|
this.snackBar.open(err,'确定',config);
|
|
|
|
} */)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
else if (e.planType == 2) { //三维预案
|
|
|
|
const dialogRef = this.dialog.open(ChangeUrl, {
|
|
|
|
//改网址
|
|
|
|
data: { element: e }
|
|
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe(
|
|
|
|
data => {
|
|
|
|
if (data) {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('修改成功!', '确定', config);
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
/* if (e.url.indexOf('app') == 0) {
|
|
|
|
window.location.href = e.url
|
|
|
|
} else {
|
|
|
|
sessionStorage.setItem("url", e.url)
|
|
|
|
if ((e.url as string).includes('gis/threeDimensionalHome')) { //三维预案
|
|
|
|
window.open(`${e.url}?unitId=${this.companyId}&unitName=${this.unitdata.unitname}&editMode=true`)
|
|
|
|
} else {
|
|
|
|
window.open(`/planManagement/webLook`)
|
|
|
|
}
|
|
|
|
} */
|
|
|
|
} else {
|
|
|
|
this.snackBar.open('只有二维预案和文本预案可以编辑!', '确定', config);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
let isTrue = confirm('编辑后审核状态会成为未审核状态,您确定要编辑吗')
|
|
|
|
if (isTrue) {
|
|
|
|
if (e.planType == 1) { //如果是在线编辑
|
|
|
|
let id = e.id
|
|
|
|
sessionStorage.setItem("planId", id)
|
|
|
|
sessionStorage.setItem("companyId", this.companyId)
|
|
|
|
sessionStorage.setItem("buildingTypeId", this.unittypeId)
|
|
|
|
sessionStorage.setItem("editable", "1")
|
|
|
|
sessionStorage.setItem("planName", e.name)
|
|
|
|
let companyId = sessionStorage.getItem("companyId")
|
|
|
|
window.open(`/keyUnit/editunitinfo?id=${companyId}&orName=${this.route.snapshot.queryParams.orName}&orId=${this.route.snapshot.queryParams.orId}`);
|
|
|
|
}
|
|
|
|
else if (e.planType == 16) {
|
|
|
|
if (e.attachmentUrls == null) {
|
|
|
|
console.log(this.compantData)
|
|
|
|
window.open(`/planManagement/createplanonlinefive?navIsOpen=false&companyId=${this.companyId}&planName=${e.name}&unitName=${this.unitdata.unitname}&planCategory=${e.planCategory}&planId=${e.id}&unitTypeId=${this.compantData.buildingTypes[0].id}&orName=${this.compantData.organizationName}&orId=${this.compantData.organizationId}`)
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
let body = {};
|
|
|
|
let resetAudit = true
|
|
|
|
let headers = new HttpHeaders({
|
|
|
|
'Content-Type': 'text/json'
|
|
|
|
});
|
|
|
|
let options = {
|
|
|
|
headers
|
|
|
|
};
|
|
|
|
this.http.put(`/api/PlanComponents/${e.id}?resetAudit=${resetAudit}`, body, options).subscribe(data => {
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
this.lookPlan(e)
|
|
|
|
}/* ,err => {
|
|
|
|
this.snackBar.open(err,'确定',config);
|
|
|
|
} */)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
else if (e.planType == 2) { //三维预案
|
|
|
|
/* if (e.url.indexOf('app') == 0) {
|
|
|
|
window.location.href = e.url
|
|
|
|
} else {
|
|
|
|
sessionStorage.setItem("url", e.url)
|
|
|
|
if ((e.url as string).includes('gis/threeDimensionalHome')) { //三维预案
|
|
|
|
window.open(`${e.url}?unitId=${this.companyId}&unitName=${this.unitdata.unitname}&editMode=true`)
|
|
|
|
} else {
|
|
|
|
window.open(`/planManagement/webLook`)
|
|
|
|
}
|
|
|
|
} */
|
|
|
|
const dialogRef = this.dialog.open(ChangeUrl, {
|
|
|
|
data: { element: e }
|
|
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe(
|
|
|
|
data => {
|
|
|
|
if (data) {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('修改成功!', '确定', config);
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.snackBar.open('只有二维预案和文本预案可以编辑!', '确定', config);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
allPlanComponents: any //所有预案组件
|
|
|
|
companyId: any //新建预案需要使用的id
|
|
|
|
planId: any //统一预案id
|
|
|
|
lookUrl //查看文件路径
|
|
|
|
//改名
|
|
|
|
changeName(element) {
|
|
|
|
// console.log(element)
|
|
|
|
const dialogRef = this.dialog.open(ChangeName, {
|
|
|
|
data: { element: element }
|
|
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe(
|
|
|
|
data => {
|
|
|
|
if (data) {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('修改成功!', '确定', config);
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
//获得所有预案组件
|
|
|
|
getAllPlanComponents() {
|
|
|
|
let pagetype = this.route.snapshot.queryParams.pagetype
|
|
|
|
let unitId = this.route.snapshot.queryParams.unitId
|
|
|
|
let paramsData: any
|
|
|
|
if (pagetype == 'entryplan') {
|
|
|
|
paramsData = {
|
|
|
|
companyId: unitId,
|
|
|
|
pageNumber: this.PageNumber,
|
|
|
|
pageSize: "",
|
|
|
|
sort: ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (pagetype == 'passplan') {
|
|
|
|
paramsData = {
|
|
|
|
companyId: unitId,
|
|
|
|
pageNumber: this.PageNumber,
|
|
|
|
pageSize: "",
|
|
|
|
AuditStatus: 2,
|
|
|
|
sort: ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (pagetype == 'openplan') {
|
|
|
|
paramsData = {
|
|
|
|
companyId: unitId,
|
|
|
|
pageNumber: this.PageNumber,
|
|
|
|
pageSize: "",
|
|
|
|
IsPublic: true,
|
|
|
|
sort: ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
this.http.get("/api/PlanComponents", { params: paramsData }).subscribe((data: any) => {
|
|
|
|
this.length = data.totalCount
|
|
|
|
this.allPlanComponents = data
|
|
|
|
this.tabledataSource = data.items
|
|
|
|
})
|
|
|
|
}
|
|
|
|
//删除预案
|
|
|
|
deletePlan(plandata) {
|
|
|
|
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
let isTrue = confirm('您确定要删除吗')
|
|
|
|
if (isTrue) {
|
|
|
|
if (plandata.planType == 1) {//如果删除的是二维预案
|
|
|
|
this.http.delete(`/api/PlanComponents2D/${plandata.id}`).subscribe(data => {
|
|
|
|
this.snackBar.open('删除成功!', '确定', config);
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
},err=>{
|
|
|
|
this.snackBar.open(err, '确定', config);
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
this.http.delete(`/api/PlanComponents/${plandata.id}`).subscribe(data => {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('删除成功!', '确定', config);
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
},err=>{
|
|
|
|
this.snackBar.open(err, '确定', config);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
//提交审核
|
|
|
|
submitAudit(element) {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
/* if(element.auditStatus == 4){
|
|
|
|
this.snackBar.open('审核退回的预案需要修改后方可再次提交审核!','确定',config);
|
|
|
|
} */
|
|
|
|
if (element.planType == 1) {//如果提交审核的是二维预案
|
|
|
|
if (element.auditStatus == 8) {
|
|
|
|
this.http.put(`/api/PlanComponents2D/${element.id}/Commit`, "").subscribe(data => {
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
}/* ,err => {
|
|
|
|
this.snackBar.open(err,'确定',config);
|
|
|
|
} */)
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
this.snackBar.open('审核退回的预案需要修改后方可再次提交审核!', '确定', config);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
this.http.put(`/api/PlanComponents/${element.id}/Commit`, "").subscribe(data => {
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
//撤销审核
|
|
|
|
cancelAudit(element) {
|
|
|
|
if (element.planType == 1) {//如果撤销审核的是二维预案
|
|
|
|
this.http.put(`/api/PlanComponents2D/${element.id}/Cancel`, "").subscribe(data => {
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
this.http.put(`/api/PlanComponents/${element.id}/Cancel`, "").subscribe(data => {
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
}/* ,err => {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open(err,'确定',config);
|
|
|
|
} */)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//审核结果
|
|
|
|
auditResult(element) {
|
|
|
|
// console.log(element)
|
|
|
|
const dialogRef = this.dialog.open(AuditResult, {
|
|
|
|
width: "395px",
|
|
|
|
data: { element: element }
|
|
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe(
|
|
|
|
data => {
|
|
|
|
if (data) {
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//下载↓
|
|
|
|
selectDownloadFile: any; //选择下载的文件
|
|
|
|
download: any; //下载文件元数据
|
|
|
|
downloadisLoading: boolean = false; //进度条loading加载
|
|
|
|
downloadProgress: number = 0; //进度条进度
|
|
|
|
downloadFileName: any
|
|
|
|
|
|
|
|
|
|
|
|
uploadFileLonging: any
|
|
|
|
//读取下载文件信息
|
|
|
|
readFile(element) {
|
|
|
|
this.uploadFileLonging = element
|
|
|
|
const dialogRef = this.dialog.open(DownloadFile, {
|
|
|
|
width: "435px",
|
|
|
|
// height:"410px",
|
|
|
|
data: { fileUrls: element.attachmentUrls, compantData: this.unitdata.unitname, element: element }
|
|
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe(
|
|
|
|
data => {
|
|
|
|
if (data) {
|
|
|
|
this.downloadFileName = data.fileName
|
|
|
|
this.download = data
|
|
|
|
this.downloadFile()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
//初始化下载
|
|
|
|
downloadFile() {
|
|
|
|
this.downloadProgress = 0
|
|
|
|
let file = this.download
|
|
|
|
let fileSize = file.fileLength//下载文件的总大小
|
|
|
|
let shardSize = 10 * 1024 * 1024 //文件大小是否大于10MB
|
|
|
|
console.log(file)
|
|
|
|
if (file && fileSize <= shardSize) { //<=10MB时直接下载
|
|
|
|
this.downloadisLoading = true
|
|
|
|
// this.setFileLoading()
|
|
|
|
this.http.get(`/api/Objects/PlanPlatform/${file.objectName}`, { responseType: 'blob' },).subscribe(data => {
|
|
|
|
console.log(data)
|
|
|
|
let url = window.URL.createObjectURL(new Blob([data])); //createObjectURL创建一个下载Blob的url地址
|
|
|
|
let link = document.createElement("a");
|
|
|
|
link.style.display = "none";
|
|
|
|
link.href = url;
|
|
|
|
|
|
|
|
let suffix = file.objectName.substring(file.objectName.lastIndexOf(".") + 1, file.objectName.length);
|
|
|
|
link.setAttribute("download", file.fileName ? file.fileName : this.unitdata.unitname + "-" + this.uploadFileLonging.name + "." + suffix);
|
|
|
|
document.body.appendChild(link);
|
|
|
|
link.click();
|
|
|
|
this.downloadisLoading = false
|
|
|
|
// this.setFileLoading()
|
|
|
|
})
|
|
|
|
} else if (file && fileSize > shardSize) { //>10MB时分块下载
|
|
|
|
this.blockingDownload() //分段下载
|
|
|
|
this.downloadisLoading = true
|
|
|
|
// this.setFileLoading()
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//分段下载并合并
|
|
|
|
async blockingDownload() {
|
|
|
|
let file = this.download
|
|
|
|
let fileSize = file.fileLength //下载文件的总大小
|
|
|
|
let shardSize = 3 * 1024 * 1024 //3MB一个分片
|
|
|
|
let allSlice = Math.ceil(fileSize / shardSize) //总文件/3MB===共分多少段
|
|
|
|
let allFile: any = [] //所有的file分段
|
|
|
|
|
|
|
|
for (let i = 0; i < allSlice; i++) {
|
|
|
|
let start = i * shardSize //每次下载文件开始位置
|
|
|
|
let end = Math.min(fileSize, start + shardSize - 1); //每次下载文件结束为止
|
|
|
|
|
|
|
|
let result = await new Promise((result, reject) => {
|
|
|
|
this.http.get(`/api/Objects/PlanPlatform/${file.objectName}`, { headers: { 'range': `bytes= ${start}-${end}` }, responseType: 'blob' }).subscribe(data => {
|
|
|
|
result(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
allFile.push(result)
|
|
|
|
this.downloadProgress = Number((i / allSlice).toFixed(2)) * 100
|
|
|
|
|
|
|
|
if (allFile.length === allSlice) { //合并文件输出给浏览器
|
|
|
|
let url = window.URL.createObjectURL(new Blob(allFile)); //createObjectURL创建一个下载Blob的url地址
|
|
|
|
let link = document.createElement("a");
|
|
|
|
link.style.display = "none";
|
|
|
|
link.href = url;
|
|
|
|
let suffix = file.objectName.substring(file.objectName.lastIndexOf(".") + 1, file.objectName.length);
|
|
|
|
link.setAttribute("download", file.fileName ? file.fileName : this.unitdata.unitname + "-" + this.uploadFileLonging.name + "." + suffix);
|
|
|
|
document.body.appendChild(link);
|
|
|
|
link.click();
|
|
|
|
// this.downloadProgress = 0
|
|
|
|
this.downloadisLoading = false
|
|
|
|
// this.setFileLoading()
|
|
|
|
}
|
|
|
|
|
|
|
|
} //for循环
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//取消分块下载
|
|
|
|
cancelDowload() {
|
|
|
|
}
|
|
|
|
|
|
|
|
//封装函数设置当前文件loading状态
|
|
|
|
setFileLoading() {
|
|
|
|
// let id = this.selectDownloadFile.id
|
|
|
|
// this.CADList.forEach(element => {
|
|
|
|
// if (element.id === id) { element.loading = !element.loading }
|
|
|
|
// });
|
|
|
|
}
|
|
|
|
|
|
|
|
//新建预案弹出框
|
|
|
|
addplan() {
|
|
|
|
const dialogRef = this.dialog.open(AddPlanone, {
|
|
|
|
width: "585px",
|
|
|
|
height: "430px",
|
|
|
|
data: { companyId: this.companyId, unitType: this.unitdata.unittype, unitName: this.unitdata.unitname },
|
|
|
|
disableClose: true
|
|
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe(
|
|
|
|
data => {
|
|
|
|
if (data) {
|
|
|
|
// this.route.snapshot.queryParams.id = data.planId
|
|
|
|
this.planId = data.planId
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
if (data.planMode == 2) {//如果添加方式为在线编辑
|
|
|
|
sessionStorage.setItem("planId", data.id);
|
|
|
|
sessionStorage.setItem("companyId", this.companyId)
|
|
|
|
sessionStorage.setItem("buildingTypeId", this.unittypeId)
|
|
|
|
sessionStorage.setItem("editable", "1")
|
|
|
|
let companyId = sessionStorage.getItem("companyId")
|
|
|
|
window.open(`/keyUnit/editunitinfo?id=${companyId}`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
//上传word转在线编制
|
|
|
|
spinner=false//圈圈是否存在
|
|
|
|
async upzhuanMb(element){
|
|
|
|
this.spinner=true
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
let objectName//预案文件名称
|
|
|
|
let formData = new FormData()
|
|
|
|
//模板导入接口传参
|
|
|
|
let type=this.unitdata.unittype=='高层建筑'?1:this.unitdata.unittype=='居民小区'?2:this.unitdata.unittype=='厂房'?3
|
|
|
|
:(this.unitdata.unittype=='商市场'||this.unitdata.unittype=='医院'||this.unitdata.unittype=='学校'
|
|
|
|
||this.unitdata.unittype=='宾馆'||this.unitdata.unittype=='娱乐场所'||this.unitdata.unittype=='餐饮业'
|
|
|
|
||this.unitdata.unittype=='影剧院'||this.unitdata.unittype=='展览建筑'||this.unitdata.unittype=='养老院'
|
|
|
|
||this.unitdata.unittype=='会议中心')?4:this.unitdata.unittype=='储罐类'?'StorageTankFivePlan'
|
|
|
|
:this.unitdata.unittype=='化工生产'?'ChemicalProductionFivePlan':this.unitdata.unittype=='农村'?'CountrysideFivePlan':''
|
|
|
|
let blob=[]
|
|
|
|
/*
|
|
|
|
调用下载接口获取文件流,并赋值给blob
|
|
|
|
*/
|
|
|
|
let fileRuquest=await new Promise((resolve,reject)=>{
|
|
|
|
this.http.get(`/api/ObjectMetadata/PlanPlatform/`+element.attachmentUrls[0]).subscribe((obdata: any) => {
|
|
|
|
objectName=obdata.objectName
|
|
|
|
this.http.get(`/api/Objects/PlanPlatform/${objectName}`, { responseType: 'blob' },).subscribe(blobdata => {
|
|
|
|
resolve(blobdata)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
blob.push(fileRuquest)//接收返回的blob类型数据
|
|
|
|
let file=new File(blob,objectName)//转化为file类型
|
|
|
|
formData.append('file',file)
|
|
|
|
let pData//接受返回的模板信息数据
|
|
|
|
/*
|
|
|
|
调用模板导入接口,获取在线编制的json,并赋值给pData
|
|
|
|
*/
|
|
|
|
let pRequest=await new Promise((resolve,rejest)=>{
|
|
|
|
this.http.post(`/api/OfficeExtract/ExtractWordPlan?type=${type}`,formData).subscribe((data:any)=>{
|
|
|
|
resolve(data)
|
|
|
|
},err=>{
|
|
|
|
this.spinner=false
|
|
|
|
this.snackBar.open('解析失败,请确定好格式再重新上传!', '确定', config);
|
|
|
|
})
|
|
|
|
})
|
|
|
|
pData=pRequest
|
|
|
|
/* 调用新建预案接口,新建一条新的预案,并跳转新建在线编制页面 */
|
|
|
|
let body={
|
|
|
|
name:(element.planCategory==3?'Ⅲ级':element.planCategory==4?'Ⅳ级':element.planCategory==5?'Ⅴ级':'')+ element.name+'转在线编制',
|
|
|
|
planType: element.planType,
|
|
|
|
planMode: 2,
|
|
|
|
planLevel: element.planLevel,
|
|
|
|
planCategory:element.planCategory,
|
|
|
|
webTextData:JSON.stringify(pData)
|
|
|
|
}
|
|
|
|
let planData
|
|
|
|
let newyuan=await new Promise((resolve,reject)=>{
|
|
|
|
this.http.post('/api/PlanComponents', body, {
|
|
|
|
params: {
|
|
|
|
companyId: this.route.snapshot.queryParams.unitId
|
|
|
|
}
|
|
|
|
}).subscribe(plandata => {
|
|
|
|
resolve(plandata)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
planData=newyuan
|
|
|
|
window.open(`/planManagement/createplanonlinefive?navIsOpen=false&companyId=${this.route.snapshot.queryParams.unitId}&planName=${planData.name}&unitName=${this.unitdata.unitname}&planCategory=${planData.planCategory}&planId=${planData.id}&&wordChange=true`)
|
|
|
|
this.getAllPlanComponents()
|
|
|
|
this.spinner=false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//新建预案弹出框
|
|
|
|
@Component({
|
|
|
|
selector: 'AddPlanone',
|
|
|
|
templateUrl: './AddPlanone.html',
|
|
|
|
styleUrls: ['./entry-plan-look.component.scss'],
|
|
|
|
|
|
|
|
})
|
|
|
|
export class AddPlanone {
|
|
|
|
isLinear = true; //是否为线性步进器
|
|
|
|
firstFormGroup: FormGroup;
|
|
|
|
secondFormGroup: FormGroup;
|
|
|
|
constructor(private _formBuilder: FormBuilder, private http: HttpClient, public dialogRef: MatDialogRef<AddPlanone>, @Inject(MAT_DIALOG_DATA) public data, public snackBar: MatSnackBar, private tree: TreeService) { }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.levels = sessionStorage.getItem("level")
|
|
|
|
this.firstFormGroup = this._formBuilder.group({
|
|
|
|
firstCtrlone: ['', Validators.required],
|
|
|
|
firstCtrltwo: ['', Validators.required],
|
|
|
|
firstCtrlthree: ['', Validators.required],
|
|
|
|
});
|
|
|
|
this.secondFormGroup = this._formBuilder.group({
|
|
|
|
secondCtrl: ['', Validators.required]
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
onNoClick(): void {
|
|
|
|
this.dialogRef.close();
|
|
|
|
}
|
|
|
|
levels//
|
|
|
|
isup: boolean = false //上传input框是否显示
|
|
|
|
isweb: boolean = false //web输入框是否显示
|
|
|
|
isinput: boolean = false //编制按钮是否显示
|
|
|
|
defaultisshow = '0' //默认显示上传input框
|
|
|
|
pswShow = false //是否为全景图选项默认不显示
|
|
|
|
psw//是否为全景图
|
|
|
|
cadPlan//是否为卡片预案
|
|
|
|
//选择radio
|
|
|
|
selectradio(e) {
|
|
|
|
if (e.value == "1") { //如果点击本地上传
|
|
|
|
this.isup = true
|
|
|
|
this.isinput = false
|
|
|
|
this.isweb = false
|
|
|
|
this.webaddress = ""
|
|
|
|
}
|
|
|
|
if (e.value == "4") { //如果点击导入word文档
|
|
|
|
this.isinput = true
|
|
|
|
this.isup = false
|
|
|
|
this.isweb = false
|
|
|
|
this.webaddress = ""
|
|
|
|
}
|
|
|
|
if (e.value == "2") { //如果点击在线编辑
|
|
|
|
this.isinput = false
|
|
|
|
this.isup = false
|
|
|
|
this.isweb = false
|
|
|
|
this.webaddress = ""
|
|
|
|
}
|
|
|
|
if (e.value == "3") { //如果点击输入网址
|
|
|
|
this.isweb = true
|
|
|
|
this.isup = false
|
|
|
|
this.isinput = false
|
|
|
|
this.webaddress = ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
file2: any = null; //导入的文件
|
|
|
|
webaddress: any = "" //输入的网页地址
|
|
|
|
|
|
|
|
//上传文件↓
|
|
|
|
file: any; //上传的文件
|
|
|
|
fileName: any; //上传文件name
|
|
|
|
uploadisLoading: boolean = false; //进度条loading加载
|
|
|
|
uploadProgress: number = 0; //进度条进度
|
|
|
|
objectName: any; //上传对象名
|
|
|
|
uploadId: any; //上传分块上传事件编号
|
|
|
|
//上传文件input
|
|
|
|
filechange(e) {
|
|
|
|
this.psw = false
|
|
|
|
this.file = e.target.files[0] || null //上传的文件
|
|
|
|
if (this.selectedPLanType == '4' && this.file.type != null && this.file.type != undefined) {
|
|
|
|
if (this.file.type == 'image/png' || this.file.type == 'image/jpeg') {
|
|
|
|
this.pswShow = true
|
|
|
|
} else { this.pswShow = false }
|
|
|
|
} else { this.pswShow = false }
|
|
|
|
|
|
|
|
// this.startUploading()
|
|
|
|
}
|
|
|
|
|
|
|
|
//上传文件
|
|
|
|
startUploading(planType) {
|
|
|
|
|
|
|
|
let file = this.file || null //获取上传的文件
|
|
|
|
let fileSize = file.size || null //上传文件的总大小
|
|
|
|
let shardSize = 5 * 1024 * 1024 //5MB一个分片
|
|
|
|
// console.log(this.psw)
|
|
|
|
|
|
|
|
if (file && fileSize <= shardSize) { //上传文件<=5MB时
|
|
|
|
let formData = new FormData()
|
|
|
|
formData.append("file", file)
|
|
|
|
this.http.post(this.psw ? '/api/Objects/PlanPlatform/psw' : `/api/Objects/PlanPlatform/${this.data.companyId}/2D`, formData).subscribe((data: any) => {
|
|
|
|
this.objectName = data.objectName
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('上传成功!', '确定', config);
|
|
|
|
this.uploadover = true
|
|
|
|
|
|
|
|
let level = sessionStorage.getItem("level")
|
|
|
|
// console.log(level)
|
|
|
|
let PlanLevel
|
|
|
|
if (level == '0') {
|
|
|
|
PlanLevel = 1
|
|
|
|
}
|
|
|
|
if (level == '1') {
|
|
|
|
PlanLevel = 2
|
|
|
|
}
|
|
|
|
if (level == '2') {
|
|
|
|
PlanLevel = 4
|
|
|
|
}
|
|
|
|
if (level == '3') {
|
|
|
|
PlanLevel = 8
|
|
|
|
}
|
|
|
|
let uploadUrl
|
|
|
|
if (planType == "非二维") {
|
|
|
|
uploadUrl = "/api/PlanComponents"
|
|
|
|
} else {
|
|
|
|
uploadUrl = "/api/PlanComponents2D"
|
|
|
|
}
|
|
|
|
if (this.uploadover) {
|
|
|
|
this.http.post(uploadUrl, {
|
|
|
|
id: "",
|
|
|
|
name: this.selectedPLanName,
|
|
|
|
planType: Number(this.selectedPLanType),
|
|
|
|
planMode: Number(this.defaultisshow),
|
|
|
|
planLevel: PlanLevel,
|
|
|
|
planCategory: Number(this.selectedPLanLevel),
|
|
|
|
url: "",
|
|
|
|
attachmentUrls: [`${this.objectName}`]
|
|
|
|
}, {
|
|
|
|
params: {
|
|
|
|
companyId: this.data.companyId
|
|
|
|
}
|
|
|
|
}).subscribe(data => {
|
|
|
|
this.dialogRef.close(data);
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
console.log("上传出错")
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
} else if (file && fileSize > shardSize) { //上传文件>5MB时,分块上传
|
|
|
|
let data = { filename: file.name }
|
|
|
|
this.uploadisLoading = true
|
|
|
|
this.http.post(this.psw ? '/api/NewMultipartUpload/PlanPlatform/psw' : `/api/NewMultipartUpload/PlanPlatform/${this.data.companyId}/2D`, {}, { params: data }).subscribe((data: any) => { //初始化分段上传
|
|
|
|
this.objectName = data.objectName
|
|
|
|
this.uploadId = data.uploadId
|
|
|
|
this.subsectionUploading(planType)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
PartNumberETag: any = []; //每次返回需要保存的信息
|
|
|
|
//开始分段上传
|
|
|
|
async subsectionUploading(planType) {
|
|
|
|
let file = this.file || null //获取上传的文件
|
|
|
|
let fileSize = file.size || null //上传文件的总大小
|
|
|
|
let shardSize = 5 * 1024 * 1024 //5MB一个分片
|
|
|
|
let allSlice = Math.ceil(fileSize / shardSize) //总文件/5MB===共分多少段 向上取整
|
|
|
|
|
|
|
|
for (let i = 0; i < allSlice; i++) { //循环分段上传
|
|
|
|
let start = i * shardSize //切割文件开始位置
|
|
|
|
let end = Math.min(fileSize, start + shardSize); //切割文件结束位置 (对比取小数)
|
|
|
|
let formData = new FormData()
|
|
|
|
formData.append("file", file.slice(start, end))
|
|
|
|
|
|
|
|
//同步写法实现异步调用
|
|
|
|
let result = await new Promise((resolve, reject) => {
|
|
|
|
// await 需要后面返回一个 promise 对象
|
|
|
|
this.http.post(`/api/MultipartUpload/PlanPlatform/${this.objectName}?uploadId=${this.uploadId}&partNumber=${i + 1}`, formData).subscribe((data: any) => {
|
|
|
|
let msg = {
|
|
|
|
"partNumber": data.partNumber || null,
|
|
|
|
"eTag": data.eTag || null
|
|
|
|
}
|
|
|
|
resolve(msg) // 调用 promise 内置方法处理成功
|
|
|
|
})
|
|
|
|
});
|
|
|
|
this.PartNumberETag.push(result)
|
|
|
|
this.uploadProgress = Number((i / allSlice).toFixed(2)) * 100
|
|
|
|
|
|
|
|
if (this.PartNumberETag.length === allSlice) {
|
|
|
|
this.uploadProgress = 100
|
|
|
|
this.endUploading(planType)
|
|
|
|
}
|
|
|
|
}//for循环
|
|
|
|
|
|
|
|
}
|
|
|
|
uploadover: any = false //上传完成之后提示
|
|
|
|
//完成分块上传
|
|
|
|
endUploading(planType) {
|
|
|
|
let data = this.PartNumberETag
|
|
|
|
let paramsData = { uploadId: this.uploadId }
|
|
|
|
this.http.post(`/api/CompleteMultipartUpload/PlanPlatform/${this.objectName}`, data, { params: paramsData }).subscribe(data => {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('上传成功!', '确定', config);
|
|
|
|
this.uploadProgress = 0;
|
|
|
|
this.uploadisLoading = false
|
|
|
|
this.PartNumberETag = [] //清空保存返回的信息
|
|
|
|
this.uploadover = true
|
|
|
|
let level = sessionStorage.getItem("level")
|
|
|
|
// console.log(level)
|
|
|
|
let PlanLevel
|
|
|
|
if (level == '0') {
|
|
|
|
PlanLevel = 1
|
|
|
|
}
|
|
|
|
if (level == '1') {
|
|
|
|
PlanLevel = 2
|
|
|
|
}
|
|
|
|
if (level == '2') {
|
|
|
|
PlanLevel = 4
|
|
|
|
}
|
|
|
|
if (level == '3') {
|
|
|
|
PlanLevel = 8
|
|
|
|
}
|
|
|
|
let uploadUrl
|
|
|
|
if (planType == "非二维") {
|
|
|
|
uploadUrl = "/api/PlanComponents"
|
|
|
|
} else {
|
|
|
|
uploadUrl = "/api/PlanComponents2D"
|
|
|
|
}
|
|
|
|
if (this.uploadover) {//如果上次成功了才创建
|
|
|
|
this.http.post(uploadUrl, {
|
|
|
|
id: "",
|
|
|
|
name: this.selectedPLanName,
|
|
|
|
planType: Number(this.selectedPLanType),
|
|
|
|
planMode: Number(this.defaultisshow),
|
|
|
|
planLevel: PlanLevel,
|
|
|
|
planCategory: Number(this.selectedPLanLevel),
|
|
|
|
url: "",
|
|
|
|
attachmentUrls: [`${this.objectName}`]
|
|
|
|
}, {
|
|
|
|
params: {
|
|
|
|
companyId: this.data.companyId
|
|
|
|
}
|
|
|
|
}).subscribe(data => {
|
|
|
|
this.dialogRef.close(data);
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
console.log("上传出错!")
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
//取消分块上传
|
|
|
|
cancel() {
|
|
|
|
this.http.delete(`/api/MultipartUpload/PlanPlatform/${this.objectName}?uploadId=${this.uploadId}`).subscribe(data => {
|
|
|
|
this.uploadProgress = 0;
|
|
|
|
this.uploadisLoading = false;
|
|
|
|
(<HTMLInputElement>document.getElementById('uploadFile')).value = null
|
|
|
|
this.PartNumberETag = [] //清空保存返回的信息
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('取消上传成功!', '确定', config);
|
|
|
|
this.uploadover = false
|
|
|
|
this.file = null
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//导入word文件
|
|
|
|
fileInput(e) {
|
|
|
|
this.file2 = e.target.files[0]
|
|
|
|
}
|
|
|
|
//点击下一步
|
|
|
|
selectedPLanType: any//所选预案类型
|
|
|
|
selectedPLanName: any//所选预案名称
|
|
|
|
selectedPLanLevel: any//所选预案级别
|
|
|
|
localup: boolean = false //本地上传
|
|
|
|
inputword: boolean = false //导入文档
|
|
|
|
onlineedit: boolean = false //在线编辑
|
|
|
|
website: boolean = false //网页地址
|
|
|
|
inputNew :boolean=false //自定义编辑
|
|
|
|
next(formdata) {
|
|
|
|
//console.log(formdata.value.firstCtrlthree)
|
|
|
|
//console.log(this.file)
|
|
|
|
this.psw = false
|
|
|
|
this.selectedPLanName = formdata.value.firstCtrlone
|
|
|
|
this.selectedPLanType = formdata.value.firstCtrltwo
|
|
|
|
this.selectedPLanLevel = formdata.value.firstCtrlthree
|
|
|
|
if (formdata.value.firstCtrltwo == '16' && formdata.value.firstCtrlthree == '4') { //如果是文本预案
|
|
|
|
this.localup = true
|
|
|
|
this.inputword = false
|
|
|
|
this.onlineedit = false
|
|
|
|
this.website = false
|
|
|
|
}
|
|
|
|
if (formdata.value.firstCtrltwo == '16' ) {//&& formdata.value.firstCtrlthree != '4'
|
|
|
|
this.localup = true
|
|
|
|
this.inputword = true
|
|
|
|
this.onlineedit = false
|
|
|
|
this.website = false
|
|
|
|
this.inputNew=true
|
|
|
|
}
|
|
|
|
if (formdata.value.firstCtrltwo == '16' && formdata.value.firstCtrlthree != '4') {//&& formdata.value.firstCtrlthree != '4'
|
|
|
|
this.localup = true
|
|
|
|
this.inputword = true
|
|
|
|
this.inputNew=true
|
|
|
|
this.onlineedit = false
|
|
|
|
this.website = false
|
|
|
|
}
|
|
|
|
if (formdata.value.firstCtrltwo == '1') { //如果是2D预案
|
|
|
|
this.localup = true
|
|
|
|
this.inputword = false
|
|
|
|
this.onlineedit = true
|
|
|
|
this.website = true
|
|
|
|
this.inputNew=false
|
|
|
|
}
|
|
|
|
if (formdata.value.firstCtrltwo == '2' || formdata.value.firstCtrltwo == '4') {
|
|
|
|
this.localup = true
|
|
|
|
this.inputword = false
|
|
|
|
this.inputNew=false
|
|
|
|
this.onlineedit = false
|
|
|
|
this.website = true
|
|
|
|
this.pswShow = true
|
|
|
|
}
|
|
|
|
if (this.selectedPLanType == '4' && this.file != undefined && this.file.type != null) {
|
|
|
|
if (this.file.type == 'image/png' || this.file.type == 'image/jpeg') {
|
|
|
|
this.pswShow = true
|
|
|
|
this.website = false
|
|
|
|
} else { this.pswShow = false }
|
|
|
|
} else { this.pswShow = false }
|
|
|
|
|
|
|
|
}
|
|
|
|
setttt() {
|
|
|
|
this.pswShow = false
|
|
|
|
this.psw = false
|
|
|
|
}
|
|
|
|
closediv() {
|
|
|
|
//console.log(this.file)
|
|
|
|
if (this.file != undefined) {
|
|
|
|
this.cancel();
|
|
|
|
}
|
|
|
|
|
|
|
|
this.dialogRef.close();
|
|
|
|
}
|
|
|
|
//文本预案在线编制跳转
|
|
|
|
newleftTabledata
|
|
|
|
planData
|
|
|
|
createWord(haveNew) {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
let level = sessionStorage.getItem("level")
|
|
|
|
// console.log(level)
|
|
|
|
let PlanLevel
|
|
|
|
if (level == '0') {
|
|
|
|
PlanLevel = 1
|
|
|
|
}
|
|
|
|
if (level == '1') {
|
|
|
|
PlanLevel = 2
|
|
|
|
}
|
|
|
|
if (level == '2') {
|
|
|
|
PlanLevel = 4
|
|
|
|
}
|
|
|
|
if (level == '3') {
|
|
|
|
PlanLevel = 8
|
|
|
|
}
|
|
|
|
this.http.get("/api/PlanTemplate").subscribe((data: any) => {
|
|
|
|
this.newleftTabledata = data
|
|
|
|
this.newleftTabledata.forEach((value, index, array) => {
|
|
|
|
value.data = JSON.parse(value.data)
|
|
|
|
})
|
|
|
|
this.http.get("/api/BuildingTypes").subscribe((buildData: any) => {
|
|
|
|
this.newleftTabledata.forEach((value, index, array) => {
|
|
|
|
buildData.forEach((element, i, buildArray) => {
|
|
|
|
if (value.buildingTypeId == element.id) {
|
|
|
|
array[index].unitname = buildArray[i].name
|
|
|
|
array[index].facilityCategoryId = buildArray[i].facilityCategoryId
|
|
|
|
}
|
|
|
|
});
|
|
|
|
})
|
|
|
|
let open = this.newleftTabledata.filter((value, index, array) => {
|
|
|
|
return value.unitname == this.data.unitType && value.planCategory == this.selectedPLanLevel
|
|
|
|
})
|
|
|
|
if(haveNew==true){
|
|
|
|
this.http.post('/api/PlanComponents', {
|
|
|
|
id: "",
|
|
|
|
name: this.selectedPLanName,
|
|
|
|
planType: Number(this.selectedPLanType),
|
|
|
|
planMode: Number(this.defaultisshow),
|
|
|
|
planLevel: PlanLevel,
|
|
|
|
planCategory: Number(this.selectedPLanLevel),
|
|
|
|
url: "",
|
|
|
|
//attachmentUrls: [`${this.objectName}`]
|
|
|
|
}, {
|
|
|
|
params: {
|
|
|
|
companyId: this.data.companyId
|
|
|
|
}
|
|
|
|
}).subscribe(plandata => {
|
|
|
|
this.planData = plandata
|
|
|
|
this.dialogRef.close(plandata);
|
|
|
|
//console.log(plandata)
|
|
|
|
window.open(`/planManagement/createplanonlinefive?navIsOpen=false&companyId=${this.data.companyId}&planName=${this.planData.name}&unitName=${this.data.unitName}&planCategory=${this.selectedPLanLevel}&planId=${this.planData.id}&haveNew=${haveNew}`)
|
|
|
|
})
|
|
|
|
}else{
|
|
|
|
if (open.length > 0) {
|
|
|
|
this.http.post('/api/PlanComponents', {
|
|
|
|
id: "",
|
|
|
|
name: this.selectedPLanName,
|
|
|
|
planType: Number(this.selectedPLanType),
|
|
|
|
planMode: Number(this.defaultisshow),
|
|
|
|
planLevel: PlanLevel,
|
|
|
|
planCategory: Number(this.selectedPLanLevel),
|
|
|
|
url: "",
|
|
|
|
//attachmentUrls: [`${this.objectName}`]
|
|
|
|
}, {
|
|
|
|
params: {
|
|
|
|
companyId: this.data.companyId
|
|
|
|
}
|
|
|
|
}).subscribe(plandata => {
|
|
|
|
this.planData = plandata
|
|
|
|
this.dialogRef.close(plandata);
|
|
|
|
//console.log(plandata)
|
|
|
|
window.open(`/planManagement/createplanonlinefive?navIsOpen=false&companyId=${this.data.companyId}&planName=${this.planData.name}&unitName=${this.data.unitName}&planCategory=${this.selectedPLanLevel}&planId=${this.planData.id}&haveNew=${haveNew}`)
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
this.snackBar.open('请先创建模板!', '确定', config);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
//window.open('')
|
|
|
|
}
|
|
|
|
|
|
|
|
// 提交创建
|
|
|
|
onSubmit(value) {
|
|
|
|
let level = sessionStorage.getItem("level")
|
|
|
|
// console.log(level)
|
|
|
|
let PlanLevel
|
|
|
|
if (level == '0') {
|
|
|
|
PlanLevel = 1
|
|
|
|
}
|
|
|
|
if (level == '1') {
|
|
|
|
PlanLevel = 2
|
|
|
|
}
|
|
|
|
if (level == '2') {
|
|
|
|
PlanLevel = 4
|
|
|
|
}
|
|
|
|
if (level == '3') {
|
|
|
|
PlanLevel = 8
|
|
|
|
}
|
|
|
|
if (this.selectedPLanType != "1") {//如果创建的不是二维预案
|
|
|
|
if (this.defaultisshow == '1' && this.file == null) { //如果是本地上传
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('请先上传文件', '确定', config);
|
|
|
|
}
|
|
|
|
if (this.defaultisshow == '1' && this.file) { //如果是本地上传并且有文件
|
|
|
|
//先上传成功
|
|
|
|
this.startUploading("非二维")
|
|
|
|
|
|
|
|
//再创建预案
|
|
|
|
// this.http.post("/api/PlanComponents",{
|
|
|
|
// id: "",
|
|
|
|
// name: this.selectedPLanName,
|
|
|
|
// planType:Number(this.selectedPLanType),
|
|
|
|
// planMode: Number(this.defaultisshow),
|
|
|
|
// planLevel: PlanLevel,
|
|
|
|
// url: "",
|
|
|
|
// attachmentUrls: [`${this.objectName}`]
|
|
|
|
// },{params:{
|
|
|
|
// companyId : this.data.companyId
|
|
|
|
// }}).subscribe(data=>{
|
|
|
|
// this.dialogRef.close(data);
|
|
|
|
// })
|
|
|
|
}
|
|
|
|
|
|
|
|
if (this.defaultisshow == '2') {//如果是导入则很复杂
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
//this.snackBar.open('暂不支持导入','确定',config);
|
|
|
|
this.createWord(false)
|
|
|
|
}
|
|
|
|
if(this.defaultisshow == '4'){
|
|
|
|
this.createWord(true)
|
|
|
|
}
|
|
|
|
if (this.defaultisshow == '3' && (this.webaddress == "" || this.webaddress == null)) { //如果是填写网址
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('请先输入网址', '确定', config);
|
|
|
|
}
|
|
|
|
if (this.defaultisshow == '3' && this.webaddress) { //如果是填写网址
|
|
|
|
var reg = new RegExp('(http|https|app1|app2):\/\/([\w.!@#$%^&*()_+-=])*\s*')
|
|
|
|
if (reg.test(this.webaddress)) {
|
|
|
|
let body = {
|
|
|
|
id: "",
|
|
|
|
name: this.selectedPLanName,
|
|
|
|
planType: Number(this.selectedPLanType),
|
|
|
|
planMode: Number(this.defaultisshow),
|
|
|
|
planCategory: Number(this.selectedPLanLevel),
|
|
|
|
planLevel: PlanLevel,
|
|
|
|
url: this.webaddress,
|
|
|
|
attachmentUrls: null
|
|
|
|
}
|
|
|
|
//console.log(body)
|
|
|
|
this.http.post("/api/PlanComponents", body, {
|
|
|
|
params: {
|
|
|
|
companyId: this.data.companyId
|
|
|
|
}
|
|
|
|
}).subscribe(data => {
|
|
|
|
this.dialogRef.close(data);
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('请填写正确网址格式,需以http://或者https://开头的正确网址', '确定', config);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
} else { //如果创建的是二维预案
|
|
|
|
if (this.defaultisshow == '1' && this.file == null) { //如果是本地上传
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('请先上传文件', '确定', config);
|
|
|
|
}
|
|
|
|
if (this.defaultisshow == '1' && this.file) {
|
|
|
|
this.startUploading("二维")
|
|
|
|
// let body = {
|
|
|
|
// id: "",
|
|
|
|
// name: this.selectedPLanName,
|
|
|
|
// planType:Number(this.selectedPLanType),
|
|
|
|
// planMode: Number(this.defaultisshow),
|
|
|
|
// planLevel: PlanLevel,
|
|
|
|
// url: "",
|
|
|
|
// attachmentUrls: [`${this.objectName}`]
|
|
|
|
// }
|
|
|
|
// this.http.post("/api/PlanComponents2D",body,{params:{
|
|
|
|
// companyId : this.data.companyId
|
|
|
|
// }}).subscribe(data=>{
|
|
|
|
// // console.log("创建成功")
|
|
|
|
// this.dialogRef.close(data);
|
|
|
|
// })
|
|
|
|
}
|
|
|
|
if (this.defaultisshow == '2') { //如果是在线编辑------>跳转编制工具
|
|
|
|
let body = {
|
|
|
|
id: "",
|
|
|
|
name: this.selectedPLanName,
|
|
|
|
planType: Number(this.selectedPLanType),
|
|
|
|
planMode: Number(this.defaultisshow),
|
|
|
|
planLevel: PlanLevel,
|
|
|
|
planCategory: Number(this.selectedPLanLevel),
|
|
|
|
url: "",
|
|
|
|
attachmentUrls: null
|
|
|
|
}
|
|
|
|
this.http.post("/api/PlanComponents2D", body, {
|
|
|
|
params: {
|
|
|
|
companyId: this.data.companyId
|
|
|
|
}
|
|
|
|
}).subscribe(data => {
|
|
|
|
// console.log("创建成功")
|
|
|
|
this.dialogRef.close(data);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
if (this.defaultisshow == '3' && (this.webaddress == "" || this.webaddress == null)) { //如果是填写网址
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('请先输入网址', '确定', config);
|
|
|
|
}
|
|
|
|
if (this.defaultisshow == '3' && this.webaddress) { //如果是填写网址
|
|
|
|
|
|
|
|
var reg = new RegExp('(http|https):\/\/([\w.!@#$%^&*()_+-=])*\s*')
|
|
|
|
if (reg.test(this.webaddress)) {
|
|
|
|
let body = {
|
|
|
|
id: "",
|
|
|
|
name: this.selectedPLanName,
|
|
|
|
planType: Number(this.selectedPLanType),
|
|
|
|
planMode: Number(this.defaultisshow),
|
|
|
|
planCategory: Number(this.selectedPLanLevel),
|
|
|
|
planLevel: PlanLevel,
|
|
|
|
url: this.webaddress,
|
|
|
|
attachmentUrls: null
|
|
|
|
}
|
|
|
|
//console.log(body)
|
|
|
|
this.http.post("/api/PlanComponents2D", body, {
|
|
|
|
params: {
|
|
|
|
companyId: this.data.companyId
|
|
|
|
}
|
|
|
|
}).subscribe(data => {
|
|
|
|
// console.log("创建成功")
|
|
|
|
this.dialogRef.close(data);
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
const config = new MatSnackBarConfig();
|
|
|
|
config.verticalPosition = 'top';
|
|
|
|
config.duration = 3000
|
|
|
|
this.snackBar.open('请填写正确网址格式,需以http://或者https://开头的正确网址', '确定', config);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
onSubmit2(value) {
|
|
|
|
// console.log(this.webaddress)
|
|
|
|
var reg = new RegExp('(http|https):\/\/([\w.!@#$%^&*()_+-=])*\s*')
|
|
|
|
//console.log(reg.test(this.webaddress))
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//下载文件弹出框
|
|
|
|
@Component({
|
|
|
|
selector: 'downloadfile',
|
|
|
|
templateUrl: './downloadFile.html',
|
|
|
|
styleUrls: ['./entry-plan-look.component.scss']
|
|
|
|
})
|
|
|
|
export class DownloadFile {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient, public dialogRef: MatDialogRef<DownloadFile>, @Inject(MAT_DIALOG_DATA) public data, public snackBar: MatSnackBar) { }
|
|
|
|
fileUrls: any //当前预案附件地址
|
|
|
|
fileDatas: any = []
|
|
|
|
selectedFileIndex: any = 0
|
|
|
|
selectedFileData: any
|
|
|
|
|
|
|
|
name2: any //如果真实姓名为空时
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.name2 = this.data.element.name
|
|
|
|
this.fileUrls = this.data.fileUrls
|
|
|
|
this.fileUrls.forEach(item => {
|
|
|
|
this.http.get('/api/ObjectMetadata/PlanPlatform/' + item).subscribe((data: any) => {
|
|
|
|
data.filePige = (data.fileLength / (1024 * 1024)).toFixed(2)
|
|
|
|
this.fileDatas.push(data)
|
|
|
|
this.selectedFileData = data
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
onNoClick(): void {
|
|
|
|
this.dialogRef.close();
|
|
|
|
}
|
|
|
|
|
|
|
|
confirm() {
|
|
|
|
this.dialogRef.close(this.selectedFileData);
|
|
|
|
}
|
|
|
|
|
|
|
|
//点击想要下载的文件
|
|
|
|
addurl(item, key) {
|
|
|
|
// console.log(item,key)
|
|
|
|
this.selectedFileIndex = key
|
|
|
|
this.selectedFileData = item
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//审批结果弹出框
|
|
|
|
@Component({
|
|
|
|
selector: 'auditresult',
|
|
|
|
templateUrl: './auditresult.html',
|
|
|
|
styleUrls: ['./entry-plan-look.component.scss']
|
|
|
|
})
|
|
|
|
export class AuditResult {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient, public dialogRef: MatDialogRef<AuditResult>, @Inject(MAT_DIALOG_DATA) public data, public snackBar: MatSnackBar) { }
|
|
|
|
|
|
|
|
planName: any = this.data.element.name
|
|
|
|
commitTime: any = this.data.element.committedTime
|
|
|
|
commitOrganizationName: any = this.data.element.committerOrganizationName
|
|
|
|
|
|
|
|
auditOrganizationName: any = this.data.element.auditorOrganizationName
|
|
|
|
auditResult: any = this.data.element.auditStatus
|
|
|
|
auditOpinion: any = this.data.element.auditOpinion
|
|
|
|
ngOnInit(): void {
|
|
|
|
|
|
|
|
}
|
|
|
|
onNoClick(): void {
|
|
|
|
this.dialogRef.close();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//改名弹出框
|
|
|
|
@Component({
|
|
|
|
selector: 'changename',
|
|
|
|
templateUrl: './changename.html',
|
|
|
|
styleUrls: ['./entry-plan-look.component.scss']
|
|
|
|
})
|
|
|
|
export class ChangeName {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient, public dialogRef: MatDialogRef<ChangeName>, @Inject(MAT_DIALOG_DATA) public data, public snackBar: MatSnackBar) { }
|
|
|
|
planName: any//预案名称
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.planName = this.data.element.name
|
|
|
|
}
|
|
|
|
onNoClick(): void {
|
|
|
|
this.dialogRef.close();
|
|
|
|
}
|
|
|
|
onSubmit(value) {
|
|
|
|
let headers = new HttpHeaders({
|
|
|
|
'Content-Type': 'text/json'
|
|
|
|
});
|
|
|
|
let options = {
|
|
|
|
headers
|
|
|
|
};
|
|
|
|
let body = {
|
|
|
|
name: value.name
|
|
|
|
}
|
|
|
|
let body2d = JSON.stringify(value.name)
|
|
|
|
if (this.data.element.planType == 1) {//如果是二维预案
|
|
|
|
this.http.put(`/api/PlanComponents2D/${this.data.element.id}`, body2d, options).subscribe(data => {
|
|
|
|
this.dialogRef.close("success");
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
this.http.put(`/api/PlanComponents/${this.data.element.id}`, body, options).subscribe(data => {
|
|
|
|
this.dialogRef.close("success");
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//全景图弹出框
|
|
|
|
@Component({
|
|
|
|
selector: 'PsViewer',
|
|
|
|
templateUrl: './Photo-Sphere-Viewer.html',
|
|
|
|
styleUrls: ['./entry-plan-look.component.scss']
|
|
|
|
})
|
|
|
|
export class PsViewer {
|
|
|
|
constructor(private router: Router, private http: HttpClient, public dialog: MatDialog, public snackBar: MatSnackBar, public dialogRef: MatDialogRef<PsViewer>, @Inject(MAT_DIALOG_DATA) public data: any) { }
|
|
|
|
ngOnInit(): void {
|
|
|
|
// console.log(this.data)
|
|
|
|
const viewer = new Viewer({
|
|
|
|
container: document.querySelector('#viewer'),
|
|
|
|
panorama: '/api/Objects/PlanPlatform/' + this.data,
|
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//普通图片弹窗
|
|
|
|
@Component({
|
|
|
|
selector: 'imgdetails',
|
|
|
|
templateUrl: './previewImg.html',
|
|
|
|
styleUrls: ['./entry-plan-look.component.scss']
|
|
|
|
})
|
|
|
|
export class ImgDetails {
|
|
|
|
constructor(private http: HttpClient, public dialog: MatDialog, public dialogRef: MatDialogRef<ImgDetails>,
|
|
|
|
@Inject(MAT_DIALOG_DATA) public data) { }
|
|
|
|
testSwiper: Swiper;
|
|
|
|
|
|
|
|
ngOnInit(): void {
|
|
|
|
//console.log(this.data)
|
|
|
|
this.allImages = []
|
|
|
|
this.data.forEach(element => {
|
|
|
|
element = `/api/Objects/PlanPlatform/${element}?x-oss-process=image/auto-orient,1`
|
|
|
|
this.allImages.push(element)
|
|
|
|
});
|
|
|
|
//this.allImages.push(`${this.data.attachmentUrls[0]}?x-oss-process=image/auto-orient,1`)
|
|
|
|
}
|
|
|
|
|
|
|
|
ngAfterViewInit() {
|
|
|
|
this.testSwiper = new Swiper('.swiper-container', {
|
|
|
|
lazy: true,
|
|
|
|
direction: 'horizontal',
|
|
|
|
loop: false,
|
|
|
|
|
|
|
|
// 如果需要前进后退按钮
|
|
|
|
navigation: {
|
|
|
|
nextEl: '.swiper-button-next',
|
|
|
|
prevEl: '.swiper-button-prev',
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
allImages: any; //展示所有的图片
|
|
|
|
rotationAngle: number = 0; //旋转角度
|
|
|
|
|
|
|
|
//旋转图片
|
|
|
|
rotate() {
|
|
|
|
this.rotationAngle = this.rotationAngle + 90
|
|
|
|
if (this.rotationAngle === 360) { this.rotationAngle = 0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//修改三维预案地址
|
|
|
|
@Component({
|
|
|
|
selector: 'changename',
|
|
|
|
templateUrl: './changeurl.html',
|
|
|
|
styleUrls: ['./entry-plan-look.component.scss']
|
|
|
|
})
|
|
|
|
export class ChangeUrl{
|
|
|
|
constructor(private http: HttpClient, public dialogRef: MatDialogRef<ChangeUrl>, @Inject(MAT_DIALOG_DATA) public data, public snackBar: MatSnackBar) { }
|
|
|
|
planUrl: any//预案路径
|
|
|
|
updata//修改后的data
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.planUrl = this.data.element.url
|
|
|
|
}
|
|
|
|
onNoClick(): void {
|
|
|
|
this.dialogRef.close();
|
|
|
|
}
|
|
|
|
onSubmit(value) {
|
|
|
|
let headers = new HttpHeaders({
|
|
|
|
'Content-Type': 'text/json'
|
|
|
|
});
|
|
|
|
let options = {
|
|
|
|
headers
|
|
|
|
};
|
|
|
|
let body = {
|
|
|
|
url: value.url,
|
|
|
|
auditStatus:8
|
|
|
|
}
|
|
|
|
this.http.put(`/api/PlanComponents/${this.data.element.id}`, body, options).subscribe(data => {
|
|
|
|
console.log(data)
|
|
|
|
this.updata=data
|
|
|
|
this.dialogRef.close("success");
|
|
|
|
sessionStorage.setItem("url", this.updata.url)
|
|
|
|
if ((this.updata.url as string).includes('gis/threeDimensionalHome')) { //三维预案
|
|
|
|
window.open(`${this.updata.url}?unitId=${this.updata.companyId}&unitName=${this.updata.name}&editMode=true`)
|
|
|
|
} else {
|
|
|
|
window.open(`/planManagement/webLook`)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|