|
|
|
import { HttpClient } from '@angular/common/http';
|
|
|
|
import { Component, OnInit } from '@angular/core';
|
|
|
|
import Viewer from 'viewerjs';
|
|
|
|
class unitInfo {
|
|
|
|
id: string;
|
|
|
|
name: string; //单位信息名字
|
|
|
|
usci: string; //单位信用代码
|
|
|
|
contacts: string; //联系人
|
|
|
|
phone: string; //联系电话
|
|
|
|
address: string; //单位地址
|
|
|
|
imageUrl: string; //图片地址
|
|
|
|
location: string; //单位地理位置
|
|
|
|
modifiedTime: string; //信息修改时间
|
|
|
|
organizationId: string; //所属组织机构
|
|
|
|
organizationName: string; //组织机构名称
|
|
|
|
buildingTypes: [
|
|
|
|
{
|
|
|
|
id:string;
|
|
|
|
name:string;
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'app-basic-info',
|
|
|
|
templateUrl: './basic-info.component.html',
|
|
|
|
styleUrls: ['./basic-info.component.scss']
|
|
|
|
})
|
|
|
|
export class BasicInfoComponent implements OnInit {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient) { }
|
|
|
|
unitId:string;//单位相关数据
|
|
|
|
|
|
|
|
unitInfo:unitInfo = {
|
|
|
|
id: '',
|
|
|
|
name: '', //单位信息名字
|
|
|
|
usci: '', //单位信用代码
|
|
|
|
contacts: '', //联系人
|
|
|
|
phone: '', //联系电话
|
|
|
|
address: '', //单位地址
|
|
|
|
imageUrl: '', //图片地址
|
|
|
|
location: '', //单位地理位置
|
|
|
|
modifiedTime: '', //信息修改时间
|
|
|
|
organizationId: '', //所属组织机构
|
|
|
|
organizationName: '', //组织机构名称
|
|
|
|
buildingTypes: [
|
|
|
|
{
|
|
|
|
id:'',
|
|
|
|
name:''
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
noImg:string = '../../../assets/images/noImg.png'
|
|
|
|
gallery:any //Viewer实例
|
|
|
|
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.everyInin()
|
|
|
|
}
|
|
|
|
//每次初始化 加载 组件调用方法
|
|
|
|
everyInin () {
|
|
|
|
//this.unitId = sessionStorage.getItem('unitId')
|
|
|
|
this.unitId='5e9964caa760a059e84512e9'
|
|
|
|
if (this.unitId) {
|
|
|
|
this.getUnitInfo().then(()=>{
|
|
|
|
setTimeout(() => {
|
|
|
|
this.gallery = new Viewer(document.getElementById('viewerjs'),{ url: 'data-original' });
|
|
|
|
},0);
|
|
|
|
});
|
|
|
|
this.getAllBuildingsInfo()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//获得单位信息
|
|
|
|
async getUnitInfo(){
|
|
|
|
let result = await new Promise((resolve, reject) => {
|
|
|
|
this.http.get(`/api/Companies/${this.unitId}`).subscribe((data:any)=>{
|
|
|
|
resolve('获取单位信息成功')
|
|
|
|
this.unitInfo = data
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
buildingsData:any
|
|
|
|
//获得所有建筑信息
|
|
|
|
getAllBuildingsInfo(){
|
|
|
|
this.http.get("/api/Buildings",{
|
|
|
|
params:{
|
|
|
|
companyId:this.unitId
|
|
|
|
}
|
|
|
|
}).subscribe(async (data:any)=>{
|
|
|
|
this.buildingsData = data
|
|
|
|
for (let i = 0, length = data.length; i < length; i++){
|
|
|
|
const result = await new Promise((resolve) =>{
|
|
|
|
this.http.get("/api/BuildingBasicInfos",{ // 循环请求当前单位建筑每一个建筑的信息保存到数组中
|
|
|
|
params:{
|
|
|
|
companyId :this.unitId,
|
|
|
|
buildingId:data[i].id,
|
|
|
|
buildingType:data[i].buildingTypes[0].id
|
|
|
|
}
|
|
|
|
}).subscribe((buildingsData:any)=>{
|
|
|
|
//获得当前建筑自定义信息并且添加到item自定义属性上
|
|
|
|
let _data = buildingsData
|
|
|
|
_data[0].buildingCustomData = {}
|
|
|
|
_data[0].buildingCustomData.customProperties = []
|
|
|
|
this.http.get("/api/BuildingCustomData",{params:{
|
|
|
|
buildingId:data[i].id
|
|
|
|
}}).subscribe((data:any)=>{
|
|
|
|
_data[0].buildingCustomData = data
|
|
|
|
if(data && data.customProperties.length != 0){
|
|
|
|
_data[0].isCustomData = true
|
|
|
|
}else{
|
|
|
|
_data[0].isCustomData = false
|
|
|
|
_data[0].buildingCustomData ={
|
|
|
|
id: "",
|
|
|
|
customProperties: [
|
|
|
|
{
|
|
|
|
name: "",
|
|
|
|
value: ""
|
|
|
|
}
|
|
|
|
],
|
|
|
|
buildingId: _data[0].buildingId
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
//如果是表格类需要处理数据
|
|
|
|
// console.log(i,buildingsData)
|
|
|
|
buildingsData[0].buildingBasicGroups.forEach(element => {
|
|
|
|
if(element.type == 1){
|
|
|
|
|
|
|
|
var map = {},
|
|
|
|
dest:any = [];
|
|
|
|
for(var i = 0; i < element.propertyInfos.length; i++){
|
|
|
|
var ai = element.propertyInfos[i];
|
|
|
|
if(!map[ai.propertyName]){
|
|
|
|
dest.push({
|
|
|
|
propertyName: ai.propertyName,
|
|
|
|
data: [ai]
|
|
|
|
});
|
|
|
|
map[ai.propertyName] = ai;
|
|
|
|
}else{
|
|
|
|
for(var j = 0; j < dest.length; j++){
|
|
|
|
var dj = dest[j];
|
|
|
|
if(dj.propertyName == ai.propertyName){
|
|
|
|
dj.data.push(ai);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//根据行数确定在循环数组中的index
|
|
|
|
dest.forEach(item => {
|
|
|
|
item.data.sort(function(a,b){
|
|
|
|
return Number(a.tag) - Number(b.tag)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
element.tabledata = dest
|
|
|
|
}
|
|
|
|
});
|
|
|
|
this.buildingsData[i].details = buildingsData
|
|
|
|
resolve(i)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|