Browse Source

属性转字符串

zhuzhou
徐振升 4 years ago
parent
commit
969233e2bf
  1. 140
      src/app/canvas-share-data.service.ts

140
src/app/canvas-share-data.service.ts

@ -1,6 +1,6 @@
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import {ReplaySubject} from 'rxjs'; import { ReplaySubject } from 'rxjs';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { GameMode } from './working-area/model/gameMode'; import { GameMode } from './working-area/model/gameMode';
@ -8,7 +8,7 @@ import { GameMode } from './working-area/model/gameMode';
providedIn: 'root' providedIn: 'root'
}) })
export class CanvasShareDataService { export class CanvasShareDataService {
constructor(private http:HttpClient) { } constructor(private http: HttpClient) { }
private _sendMessage: ReplaySubject<any> = new ReplaySubject<any>(1); private _sendMessage: ReplaySubject<any> = new ReplaySubject<any>(1);
examDisposalNodesData; // 考生进入时获取当前试卷的处置节点 examDisposalNodesData; // 考生进入时获取当前试卷的处置节点
@ -18,22 +18,22 @@ export class CanvasShareDataService {
isChange:boolean = false; // 数据 是否改动 isChange: boolean = false; // 数据 是否改动
selectTemplateData:any; // 选择当前 模板数据 selectTemplateData: any; // 选择当前 模板数据
// 总平面图/建筑 楼层 // 总平面图/建筑 楼层
selectStorey: any = {area: '', details: ''}; // 选择当前 楼层 数据 selectStorey: any = { area: '', details: '' }; // 选择当前 楼层 数据
originalcompanyBuildingData: any; // 单位/建筑 数据 originalcompanyBuildingData: any; // 单位/建筑 数据
originaleveryStoreyData: any; // 总平面图/楼层/区域 楼层数据 originaleveryStoreyData: any; // 总平面图/楼层/区域 楼层数据
// 总平面图/建筑 楼层 // 总平面图/建筑 楼层
// 处置 节点 // 处置 节点
allDisposalNode: any = []; // 所有 处置节点 allDisposalNode: any = []; // 所有 处置节点
allNodeMarkers: any = { highlightMarkers:{}, markers:{} }; // 灾情 标签信息 allNodeMarkers: any = { highlightMarkers: {}, markers: {} }; // 灾情 标签信息
selectPanelPoint: DisposalNodeData = new DisposalNodeData(); // 当前数据节点 selectPanelPoint: DisposalNodeData = new DisposalNodeData(); // 当前数据节点
selectPanelPointBaseData: any = {description: '', notes: '', weather: '', airTemperature: '', windDirection: '', windScale: ''}; // 当前 数据节点 对应 父级节点 selectPanelPointBaseData: any = { description: '', notes: '', weather: '', airTemperature: '', windDirection: '', windScale: '' }; // 当前 数据节点 对应 父级节点
customizeDisposalNode:any; // 新建 自定义数据节点 底图+名称 customizeDisposalNode: any; // 新建 自定义数据节点 底图+名称
// 处置 节点 // 处置 节点
/** /**
@ -42,36 +42,36 @@ export class CanvasShareDataService {
gameMode: GameMode = GameMode.BasicInformation; gameMode: GameMode = GameMode.BasicInformation;
facilityAssetsName = new Map<string, string>([ facilityAssetsName = new Map<string, string>([
[ '消防水池', '消防水池'], ['消防水池', '消防水池'],
[ '疏散楼梯', '疏散楼梯'], ['疏散楼梯', '疏散楼梯'],
[ '消防电梯', '消防电梯'], ['消防电梯', '消防电梯'],
[ '避难区域', '避难区域'], ['避难区域', '避难区域'],
[ '安全出口', '安全出口'], ['安全出口', '安全出口'],
[ '地上消火栓', '室外消火栓' ], ['地上消火栓', '室外消火栓'],
[ '地下消火栓', '室外消火栓' ], ['地下消火栓', '室外消火栓'],
[ '室内消火栓', '室内消火栓' ], ['室内消火栓', '室内消火栓'],
[ '供水管网', '供水管网'], ['供水管网', '供水管网'],
[ '湿式自动喷淋系统', '湿式自动喷淋系统'], ['湿式自动喷淋系统', '湿式自动喷淋系统'],
[ '水幕系统', '水幕系统' ], ['水幕系统', '水幕系统'],
[ '消防泵房', '消防泵房'], ['消防泵房', '消防泵房'],
[ '水泵接合器(地上)', '水泵接合器'], ['水泵接合器(地上)', '水泵接合器'],
[ '水泵接合器(地下)', '水泵接合器'], ['水泵接合器(地下)', '水泵接合器'],
[ '水泵接合器(墙壁)', '水泵接合器'], ['水泵接合器(墙壁)', '水泵接合器'],
[ '消防水泵房', '消防水泵房'], ['消防水泵房', '消防水泵房'],
[ '箱式消火栓', '箱式消火栓'], ['箱式消火栓', '箱式消火栓'],
[ '固定水炮', '消防水炮' ], ['固定水炮', '消防水炮'],
[ '消防水罐', '储水罐'], ['消防水罐', '储水罐'],
[ '消防水罐2', '储水罐'], ['消防水罐2', '储水罐'],
[ '卧式水罐', '储水罐'], ['卧式水罐', '储水罐'],
[ '消防泵', '水泵' ], ['消防泵', '水泵'],
[ '泡沫泵', '水泵' ], ['泡沫泵', '水泵'],
[ '泡沫泵房', '泡沫站'], ['泡沫泵房', '泡沫站'],
[ '泡沫栓', '泡沫栓' ], ['泡沫栓', '泡沫栓'],
[ '泡沫枪', '泡沫枪'], ['泡沫枪', '泡沫枪'],
[ '泡沫发生器', '泡沫发生器' ], ['泡沫发生器', '泡沫发生器'],
[ '消防管网', '消防管网'], ['消防管网', '消防管网'],
[ '泡沫管网', '消防管网'], ['泡沫管网', '消防管网'],
[ 'DCS控制室', 'DCS控制室'] ['DCS控制室', 'DCS控制室']
]); ]);
/** * * /** * *
@ -79,15 +79,15 @@ export class CanvasShareDataService {
public sendMessage(message: any) { public sendMessage(message: any) {
this._sendMessage.next(message); this._sendMessage.next(message);
} }
public getMessage(): Observable <any> { public getMessage(): Observable<any> {
return this._sendMessage.asObservable(); return this._sendMessage.asObservable();
} }
//分段上传 //分段上传
sectionUpload (companyId:string,file) { sectionUpload(companyId: string, file) {
let data = {filename: file.name} let data = { filename: file.name }
return new Promise ((resolve, reject)=>{ return new Promise((resolve, reject) => {
this.http.post(`/api/NewMultipartUpload/PlanPlatform/${companyId}/DisposalNode`,{},{params:data}).subscribe(async (data:any)=>{ //初始化分段上传 this.http.post(`/api/NewMultipartUpload/PlanPlatform/${companyId}/DisposalNode`, {}, { params: data }).subscribe(async (data: any) => { //初始化分段上传
let objectName = data.objectName let objectName = data.objectName
let uploadId = data.uploadId let uploadId = data.uploadId
let PartNumberETag = []; //每次返回需要保存的信息 let PartNumberETag = []; //每次返回需要保存的信息
@ -96,17 +96,17 @@ export class CanvasShareDataService {
let shardSize = 5 * 1024 * 1024 //5MB一个分片 let shardSize = 5 * 1024 * 1024 //5MB一个分片
let allSlice = Math.ceil(fileSize / shardSize) //总文件/5MB===共分多少段 let allSlice = Math.ceil(fileSize / shardSize) //总文件/5MB===共分多少段
for (let i = 0;i < allSlice;i++) { //循环分段上传 for (let i = 0; i < allSlice; i++) { //循环分段上传
let start = i * shardSize //切割文件开始位置 let start = i * shardSize //切割文件开始位置
let end = Math.min(fileSize, start + shardSize); //切割文件结束位置 let end = Math.min(fileSize, start + shardSize); //切割文件结束位置
let formData = new FormData() let formData = new FormData()
formData.append("file",file.slice(start, end)) formData.append("file", file.slice(start, end))
//同步写法实现异步调用 //同步写法实现异步调用
let result = await new Promise((resolve, reject) => { let result = await new Promise((resolve, reject) => {
// await 需要后面返回一个 promise 对象 // await 需要后面返回一个 promise 对象
this.http.post(`/api/MultipartUpload/PlanPlatform/${objectName}?uploadId=${uploadId}&partNumber=${i+1}`,formData).subscribe((data:any)=>{ this.http.post(`/api/MultipartUpload/PlanPlatform/${objectName}?uploadId=${uploadId}&partNumber=${i + 1}`, formData).subscribe((data: any) => {
let msg = { "partNumber":data.partNumber || null, "eTag": data.eTag || null } let msg = { "partNumber": data.partNumber || null, "eTag": data.eTag || null }
resolve(msg) // 调用 promise 内置方法处理成功 resolve(msg) // 调用 promise 内置方法处理成功
}) })
}); });
@ -114,8 +114,8 @@ export class CanvasShareDataService {
if (PartNumberETag.length === allSlice) { //分块上传完成 if (PartNumberETag.length === allSlice) { //分块上传完成
let data = PartNumberETag let data = PartNumberETag
let paramsData = {uploadId:uploadId} let paramsData = { uploadId: uploadId }
this.http.post(`/api/CompleteMultipartUpload/PlanPlatform/${objectName}`,data,{params:paramsData}).subscribe(data=>{ this.http.post(`/api/CompleteMultipartUpload/PlanPlatform/${objectName}`, data, { params: paramsData }).subscribe(data => {
resolve(objectName) resolve(objectName)
}) })
} }
@ -127,7 +127,7 @@ export class CanvasShareDataService {
} }
// 处置节点 筛选出 匹配数据 匹配不到 return undefined // 处置节点 筛选出 匹配数据 匹配不到 return undefined
findDisposalNode(parentId: string= null, name: string= null) { findDisposalNode(parentId: string = null, name: string = null) {
if (parentId && name) { // 匹配 父id, name if (parentId && name) { // 匹配 父id, name
const returnData = this.allDisposalNode.find(item => item.parentId === parentId && item.name === name); const returnData = this.allDisposalNode.find(item => item.parentId === parentId && item.name === name);
return returnData; return returnData;
@ -154,7 +154,7 @@ export class CanvasShareDataService {
/** /**
* *
*/ */
public deleteBuildingDataByCurrentFloorData():void { public deleteBuildingDataByCurrentFloorData(): void {
Object.keys(this.originaleveryStoreyData.data).forEach((key) => { Object.keys(this.originaleveryStoreyData.data).forEach((key) => {
// 删除建筑数据 // 删除建筑数据
delete this.originalcompanyBuildingData.data[key]; delete this.originalcompanyBuildingData.data[key];
@ -294,7 +294,22 @@ export class CanvasShareDataService {
facility.Id = ''; facility.Id = '';
facility.Name = this.facilityAssetsName.get(item.Name); facility.Name = this.facilityAssetsName.get(item.Name);
facility.AssetName = item.Name; facility.AssetName = item.Name;
facility.PropertyInfos = item.PropertyInfos; facility.PropertyInfos = [];
item.PropertyInfos.forEach(e => {
var p: PropertyInfo = new PropertyInfo();
p.Enabled = e.Enabled;
p.Order = e.Order;
p.PhysicalUnit = e.PhysicalUnit;
p.PropertyName = e.PropertyName;
p.PropertyType = e.PropertyType;
p.PropertyValue = e.PropertyValue.toString();
p.Required = e.Required;
p.RuleName = e.RuleName;
p.RuleValue = e.RuleValue;
p.Tag = e.Tag;
p.Visible = e.Visible;
facility.PropertyInfos.push(p);
});
facility.SitePlanId = item.FloorId; facility.SitePlanId = item.FloorId;
list.push(facility); list.push(facility);
} }
@ -315,7 +330,22 @@ export class CanvasShareDataService {
facility.Id = ''; facility.Id = '';
facility.Name = this.facilityAssetsName.get(item.Name); facility.Name = this.facilityAssetsName.get(item.Name);
facility.AssetName = item.Name; facility.AssetName = item.Name;
facility.PropertyInfos = item.PropertyInfos; facility.PropertyInfos = [];
item.PropertyInfos.forEach(e => {
var p: PropertyInfo = new PropertyInfo();
p.Enabled = e.Enabled;
p.Order = e.Order;
p.PhysicalUnit = e.PhysicalUnit;
p.PropertyName = e.PropertyName;
p.PropertyType = e.PropertyType;
p.PropertyValue = e.PropertyValue.toString();
p.Required = e.Required;
p.RuleName = e.RuleName;
p.RuleValue = e.RuleValue;
p.Tag = e.Tag;
p.Visible = e.Visible;
facility.PropertyInfos.push(p);
});
facility.BuildingAreaId = item.FloorId; facility.BuildingAreaId = item.FloorId;
list.push(facility); list.push(facility);
} }
@ -406,7 +436,7 @@ export class CompanyFacilityAssetInfo {
public Id: string; public Id: string;
public Name: string; public Name: string;
public AssetName: string; public AssetName: string;
public PropertyInfos: string; public PropertyInfos: PropertyInfo[];
public AssetId: string; public AssetId: string;
public CompanyId: string; public CompanyId: string;
public SitePlanId: string; public SitePlanId: string;
@ -418,7 +448,7 @@ export class BuildingFacilityAssetInfo {
public Id: string; public Id: string;
public Name: string; public Name: string;
public AssetName: string; public AssetName: string;
public PropertyInfos: string; public PropertyInfos: PropertyInfo[];
public AssetId: string; public AssetId: string;
public BuildingId: string; public BuildingId: string;
public BuildingAreaId: string; public BuildingAreaId: string;

Loading…
Cancel
Save