|
|
|
import { HttpClient } from '@angular/common/http';
|
|
|
|
import { Component, OnInit } from '@angular/core';
|
|
|
|
import { ActivatedRoute } from '@angular/router';
|
|
|
|
import { CacheTokenService } from '../http-interceptors/cache-token.service';
|
|
|
|
import { Viewer } from 'photo-sphere-viewer';
|
|
|
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
|
|
|
|
|
|
declare var CryptoJS
|
|
|
|
@Component({
|
|
|
|
selector: 'app-external-links-plan',
|
|
|
|
templateUrl: './external-links-plan.component.html',
|
|
|
|
styleUrls: ['./external-links-plan.component.scss']
|
|
|
|
})
|
|
|
|
export class ExternalLinksPlanComponent implements OnInit {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient, private token: CacheTokenService, public route: ActivatedRoute, private sanitizer: DomSanitizer) { }
|
|
|
|
planId: any//预案id
|
|
|
|
viewer//全景图对象
|
|
|
|
fetchUrl//预案文件地址
|
|
|
|
showType//预案类型 1:全景图
|
|
|
|
planData//预案信息
|
|
|
|
async ngOnInit(): Promise<void> {
|
|
|
|
await this.login()//登录存储token
|
|
|
|
this.route.queryParams.subscribe(paramsData => {
|
|
|
|
this.planId = paramsData.planId
|
|
|
|
let planId = paramsData.planId
|
|
|
|
this.http.get(`/api/PlanComponents/${planId}`).subscribe((data: any) => {
|
|
|
|
console.log('单个预案详细信息', data)
|
|
|
|
this.planData = data
|
|
|
|
if (data.planType != 1 && data.planType != 2) {
|
|
|
|
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.handleData()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
async login() {
|
|
|
|
await new Promise((resolve, reject) => {
|
|
|
|
this.http.post('/api/Account/SignIn', {
|
|
|
|
name: 'zhuzhouyuanchakan',
|
|
|
|
password: '12345678'
|
|
|
|
}).subscribe((data: any) => {
|
|
|
|
sessionStorage.setItem("level", data.level);
|
|
|
|
sessionStorage.setItem("token", data.token);
|
|
|
|
sessionStorage.setItem("refreshToken", data.refreshToken);
|
|
|
|
console.log('登录成功', data)
|
|
|
|
resolve(data)
|
|
|
|
this.token.startUp()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
iframeSrc//毕生服务器链接
|
|
|
|
src//文件存储地址
|
|
|
|
lookWord() {
|
|
|
|
this.showType = 0
|
|
|
|
let src
|
|
|
|
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'
|
|
|
|
src = `/api/Objects/PlanPlatform/` + arr.join('.')
|
|
|
|
}else if (suffix == 'pdf') {
|
|
|
|
src = `/api/Objects/PlanPlatform/` + this.fetchUrl
|
|
|
|
}
|
|
|
|
this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(src);
|
|
|
|
}
|
|
|
|
|
|
|
|
companyData//当前公司信息
|
|
|
|
thirdPartyURL
|
|
|
|
threedUrl: any
|
|
|
|
handleData() {
|
|
|
|
let data = this.planData
|
|
|
|
if (this.planData.planMode == 2) { //预案planMode=2时, 跳查看页面组件
|
|
|
|
|
|
|
|
this.http.get(`/api/Plans/${data.companyId}`).subscribe((data: any) => {
|
|
|
|
console.log(data)
|
|
|
|
data && data.company ? this.companyData = data.company : null
|
|
|
|
sessionStorage.setItem("buildingTypeId", this.companyData.buildingTypes.length ? this.companyData.buildingTypes[0].id : undefined);
|
|
|
|
sessionStorage.setItem("companyId", data.companyId);
|
|
|
|
sessionStorage.setItem("planId", this.planId);
|
|
|
|
sessionStorage.setItem("editable", '0');
|
|
|
|
sessionStorage.setItem("planName", this.planData.name)
|
|
|
|
this.showType = 3
|
|
|
|
// this.threedUrl = this.sanitizer.bypassSecurityTrustResourceUrl(`/keyUnit/viewunitinfoplans?id=${data.companyId}`)
|
|
|
|
})
|
|
|
|
} else if (this.planData.planMode == 3) { //预案planMode=3时, 第三方网址'
|
|
|
|
// this.http.get(`/api/Plans/${data.companyId}`).subscribe((data: any) => {
|
|
|
|
// data && data.company ? this.companyData = data.company : null
|
|
|
|
// this.threedUrl = this.sanitizer.bypassSecurityTrustResourceUrl(data.url)
|
|
|
|
// this.showType = 2
|
|
|
|
// })
|
|
|
|
window.location.href = `${data.url}?unitId=${data.company.id}&unitName=${data.company.name}&editMode=false`
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|