diff --git a/src/app/ui/collection-tools/addPlaneFigure.html b/src/app/ui/collection-tools/addPlaneFigure.html
index 930bf81..75e4722 100644
--- a/src/app/ui/collection-tools/addPlaneFigure.html
+++ b/src/app/ui/collection-tools/addPlaneFigure.html
@@ -18,7 +18,7 @@
-
+
diff --git a/src/app/ui/collection-tools/collection-tools.component.ts b/src/app/ui/collection-tools/collection-tools.component.ts
index a88ea02..7e8064b 100644
--- a/src/app/ui/collection-tools/collection-tools.component.ts
+++ b/src/app/ui/collection-tools/collection-tools.component.ts
@@ -1434,12 +1434,25 @@ export class CollectionToolsComponent implements OnInit {
Panel: this.beforeOneCheckedBuilding,
buildingData: e,
}
- let dialogRef = this.dialog.open(editPlaneFigureComponent,{data});
+ let dialogRef = this.dialog.open(editPlaneFigureComponent,{disableClose: true,hasBackdrop: false,position: {left:'150px',top:'200px'},data});
+ dialogRef.keydownEvents().subscribe(data=>{
+ if (data.key === 'Enter') {
+ this.canvas.refreshBackgroundImage()
+ }
+ })
dialogRef.afterClosed().subscribe(data=>{
if (data =='总平面图') {
- this.renovateSitePlan()
+ let isSuccess = this.renovateSitePlan()
+ isSuccess.then(res=>{
+ this.canvas.refreshBackgroundImage()
+ })
} else if (data =='建筑') {
- this.renovateBuilding()
+ let isSuccess = this.renovateBuilding()
+ isSuccess.then(res=>{
+ this.canvas.refreshBackgroundImage()
+ })
+ }else if (data == '更新背景图') {
+ this.canvas.refreshBackgroundImage()
}
})
}
@@ -1632,46 +1645,57 @@ export class CollectionToolsComponent implements OnInit {
let file = e.target.files[0] || null //获取上传的文件
let fileSize = file.size || null //上传文件的总大小
let maxSize = 5 * 1024 * 1024 //5MB一个分片
+ let tenSize = 10 * 1024 * 1024 //10MB限制
if (file && fileSize<=maxSize) { //上传文件<=5MB时
let formData = new FormData()
formData.append("file",file)
this.http.post(`/api/Objects/WebPlan2D/${sessionStorage.getItem('companyId')}`,formData).subscribe((data:any)=>{
- this.renovateBaseMap(data.objectName,item)
+ this.renovateBaseMap('/api/Objects/WebPlan2D/' + data.objectName,item)
})
+ } else if (file && fileSize>maxSize && fileSize10MB时
+ let upload = this.canvasData.sectionUpload(sessionStorage.getItem('companyId'),file)
+ upload.then(res=>{ this.renovateBaseMap('/api/Objects/PlanPlatform/' + res,item) })
} else {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
- this.snackBar.open('上传底图需小于5MB','确定',config);
+ this.snackBar.open('上传底图需小于10MB','确定',config);
}
}
//封装 替换底图 function
renovateBaseMap (e,item) {
- item.imageUrl = '/api/Objects/WebPlan2D/' + e
- if (this.checkedBuildingIndex ==-1) { //总平面图
- this.http.put(`/api/CompanyAccount/SitePlans/${item.id}`,item).subscribe(data=>{
- let isSuccess = this.renovateSitePlan()
- isSuccess.then(res=>{
- this.canvas.refreshBackgroundImage()
+ let that = this
+ let img = new Image()
+ img.src = e
+ img.onload = function () {
+ item.imageUrl = e
+ item.imageWidth = img.width
+ item.imageHeight = img.height
+ if (that.checkedBuildingIndex ==-1) { //总平面图
+ that.http.put(`/api/CompanyAccount/SitePlans/${item.id}`,item).subscribe(data=>{
+ let isSuccess = that.renovateSitePlan()
+ isSuccess.then(res=>{
+ that.canvas.refreshBackgroundImage()
+ })
+ const config = new MatSnackBarConfig();
+ config.verticalPosition = 'top';
+ config.duration = 3000
+ that.snackBar.open('上传底图成功','确定',config);
})
- const config = new MatSnackBarConfig();
- config.verticalPosition = 'top';
- config.duration = 3000
- this.snackBar.open('上传底图成功','确定',config);
- })
- } else { //楼层/区域
- this.http.put(`/api/CompanyAccount/BuildingAreas/${item.id}`,item).subscribe(data=>{
- let isSuccess = this.renovateBuilding()
- isSuccess.then(res=>{
- this.canvas.refreshBackgroundImage()
+ } else { //楼层/区域
+ that.http.put(`/api/CompanyAccount/BuildingAreas/${item.id}`,item).subscribe(data=>{
+ let isSuccess = that.renovateBuilding()
+ isSuccess.then(res=>{
+ that.canvas.refreshBackgroundImage()
+ })
+ const config = new MatSnackBarConfig();
+ config.verticalPosition = 'top';
+ config.duration = 3000
+ that.snackBar.open('上传底图成功','确定',config);
})
- const config = new MatSnackBarConfig();
- config.verticalPosition = 'top';
- config.duration = 3000
- this.snackBar.open('上传底图成功','确定',config);
- })
+ }
}
}
diff --git a/src/app/ui/collection-tools/editPlaneFigure.html b/src/app/ui/collection-tools/editPlaneFigure.html
index a0f8016..e847c2a 100644
--- a/src/app/ui/collection-tools/editPlaneFigure.html
+++ b/src/app/ui/collection-tools/editPlaneFigure.html
@@ -19,7 +19,7 @@
-
+
@@ -27,11 +27,22 @@
+
+
+
+
+
+
+
+
+
按Enter键可浏览图片效果
+
+
-
+
diff --git a/src/app/ui/collection-tools/leftFunctionalDomain.ts b/src/app/ui/collection-tools/leftFunctionalDomain.ts
index dc03716..079f199 100644
--- a/src/app/ui/collection-tools/leftFunctionalDomain.ts
+++ b/src/app/ui/collection-tools/leftFunctionalDomain.ts
@@ -2,6 +2,8 @@ import { Component, OnInit, Inject } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
+import { CanvasShareDataService } from 'src/app/canvas-share-data.service';
+import { EventManager } from '@angular/platform-browser';
@Component({
selector: 'app-leftFunctionalDomain',
@@ -25,7 +27,7 @@ export class leftFunctionalDomainComponent implements OnInit {
companyId: sessionStorage.getItem('companyId'),
name: e.name,
order: this.data.order,
- area:e.area,
+ area:Number(e.area),
details:e.details,
enabled: true,
modifiedTime: new Date(),
@@ -39,7 +41,7 @@ export class leftFunctionalDomainComponent implements OnInit {
buildingId: this.data.Panel.id,
name: e.name,
order: this.data.order,
- area:e.area,
+ area:Number(e.area),
details:e.details,
enabled: true,
modifiedTime: new Date(),
@@ -62,20 +64,84 @@ export class leftFunctionalDomainComponent implements OnInit {
})
export class editPlaneFigureComponent implements OnInit {
- constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) { }
+ constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,public canvasData: CanvasShareDataService,private eventManager: EventManager,) { }
ngOnInit(): void {
this.name = this.data.buildingData.name || ''
this.checked = this.data.buildingData.isRefugeStorey || false
this.area = this.data.buildingData.area || 0
this.details = this.data.buildingData.details || ''
+ this.imgWidth = this.data.buildingData.imageWidth || 0
+ this.imgHeight = this.data.buildingData.imageHeight || 0
+ this.oldWidth = JSON.parse(JSON.stringify(this.data.buildingData.imageWidth || 0))
+ this.oldHeight = JSON.parse(JSON.stringify(this.data.buildingData.imageHeight || 0))
+ if (this.imgWidth==0 && this.imgHeight==0 && this.data.buildingData.imageUrl) {
+ let that = this
+ let img = new Image()
+ img.src = this.data.buildingData.imageUrl
+ img.onload = function () {
+ that.imgWidth = img.width
+ that.imgHeight = img.height
+ that.imgScale = Number((that.imgWidth/that.imgHeight))
+ }
+ } else {
+ this.imgScale = Number((this.imgWidth/this.imgHeight))
+ }
+
+ this.eventManager.addGlobalEventListener('window', 'keydown', (event: any) => {
+ if (event.keyCode === 13) {
+ event.preventDefault();
+ }
+ });
}
+ oldWidth:number; //原图片宽
+ oldHeight:number; //原图片高
+
name:any; //name
checked:boolean = false;//是否为避难层
area:number; //面积
details:string; //详情
+ imgWidth:number; //图片宽度
+ imgHeight:number; //图片高度
+ isItEqual:boolean = true; //是否等比
+ imgScale:number; //图片 宽高比例
+
+ //图片 宽高变化时
+ inputChange (e) {
+ if (this.isItEqual) {
+ if (e == 0) { //需要改高度
+ this.imgHeight = Math.round(this.imgWidth / this.imgScale)
+ this.canvasData.selectStorey.imageWidth = this.imgWidth
+ this.canvasData.selectStorey.imageHeight = this.imgHeight
+ } else { //需要改宽度
+ this.imgWidth = Math.round(this.imgHeight * this.imgScale)
+ this.canvasData.selectStorey.imageWidth = this.imgWidth
+ this.canvasData.selectStorey.imageHeight = this.imgHeight
+ }
+ } else {
+ this.canvasData.selectStorey.imageWidth = this.imgWidth
+ this.canvasData.selectStorey.imageHeight = this.imgHeight
+ }
+ }
+
+ //重新计算 宽高比例
+ setImgScale (e) {
+ e.checked? this.imgScale = Number((this.imgWidth/this.imgHeight)) : null
+ }
+
+ //关闭
+ close () {
+ if (this.oldWidth === this.imgWidth && this.oldHeight === this.imgHeight) {
+ this.dialogRef.close()
+ } else {
+ this.canvasData.selectStorey.imageWidth = this.oldWidth
+ this.canvasData.selectStorey.imageHeight = this.oldHeight
+ this.dialogRef.close('更新背景图');
+ }
+ }
+
//提交表单修改平面图
onSubmit (e) {
if (!this.data.isBuilding) { //总平面图 修改平面图
@@ -85,6 +151,8 @@ export class editPlaneFigureComponent implements OnInit {
name: e.name,
cadUrl: this.data.buildingData.cadUrl,
imageUrl: this.data.buildingData.imageUrl,
+ imageWidth: this.imgWidth,
+ imageHeight: this.imgHeight,
imageAngle: this.data.buildingData.imageAngle,
order: this.data.buildingData.order,
area:e.area,
@@ -103,6 +171,8 @@ export class editPlaneFigureComponent implements OnInit {
name: e.name,
cadUrl: this.data.buildingData.cadUrl,
imageUrl: this.data.buildingData.imageUrl,
+ imageWidth: this.imgWidth,
+ imageHeight: this.imgHeight,
imageAngle: this.data.buildingData.imageAngle,
order: this.data.buildingData.order,
area:e.area,
diff --git a/src/app/ui/collection-tools/panel.scss b/src/app/ui/collection-tools/panel.scss
index 3b01fd5..239ba4e 100644
--- a/src/app/ui/collection-tools/panel.scss
+++ b/src/app/ui/collection-tools/panel.scss
@@ -107,7 +107,7 @@
//hover时显示右边操作栏
.sitePlanContent:hover {
#rightOperate {
- display: block;
+ opacity: 1;
}
}
//右边操作栏
@@ -121,7 +121,8 @@
border-radius: 0 100px 100px 0;
background-color: #F0F4F7;
// #F0F4F7 cdced1
- display: none;
+ opacity: 0;
+ transition: opacity 0.5s ease-out;
.functionButton {
height: 25%;
line-height: 25px;
@@ -211,6 +212,12 @@
width: 100%;
}
}
+.image {
+ .mat-form-field {
+ margin-right: 15px;
+ width: 30%;
+ }
+}
.submitBottom {
display: flex;
flex-direction: row;
diff --git a/src/app/working-area/working-area.component.ts b/src/app/working-area/working-area.component.ts
index 1c8b610..fae03ae 100644
--- a/src/app/working-area/working-area.component.ts
+++ b/src/app/working-area/working-area.component.ts
@@ -157,8 +157,12 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
* Beta版: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。
* RC版: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。
* Release版: 该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号®。
+ * 修改-修订版本号增加
+ * 新增-子版本号增加
+ * 重大调整-主版本号增加
+ * 日期变更-日期版本号增加
*/
- public VERSION = '1.0.18.20210205_beta';
+ public VERSION = '1.2.2.20210220_beta';
/**
* 数据初始化
*/
@@ -201,9 +205,9 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
if (this.allowEdit && this.canvasData.gameMode === axShape.assetData.GameMode) {
// 删除图例对象
const temp = this.backgroundImage.getChildByName('图例') as AxLegend;
- if ( temp !== undefined
+ if (temp !== undefined
&& temp !== null
- && axShape.assetData.Name !== '图例') {
+ && axShape.assetData.Name !== '图例') {
const itemLegend = new Legend(axShape.assetData.Name, axShape.assetData.ImageUrl, 1);
temp.deleteItem(itemLegend);
}
@@ -241,15 +245,15 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
sayHello() {
let _a;
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
- const args = [
- '\n %c 版本号 - ' + this.VERSION + '\n',
- 'color: #ff66a5; background: #000000; padding:5px 0;',
- ];
- (_a = window.console).log.apply(_a, args);
+ const args = [
+ '\n %c 版本号 - ' + this.VERSION + '\n',
+ 'color: #ff66a5; background: #000000; padding:5px 0;',
+ ];
+ (_a = window.console).log.apply(_a, args);
} else if (window.console) {
- window.console.log('\n %c 版本号 - ' + this.VERSION + '\n');
+ window.console.log('\n %c 版本号 - ' + this.VERSION + '\n');
}
-}
+ }
/**
* 页面初始化
*/
@@ -305,8 +309,8 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
public resizeItem(size: number) {
this.backgroundImage.children.forEach(item => {
if (item instanceof AxShape) {
- item.setItemScale(size);
- item.drawBorder(size);
+ item.setItemScale(size);
+ item.drawBorder(size);
}
});
}
@@ -353,18 +357,18 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.camera2D
.clamp({
- left: -10000,
- right: 10000,
- top: -10000,
- bottom: 10000,
- })
+ left: -10000,
+ right: 10000,
+ top: -10000,
+ bottom: 10000,
+ })
.drag()
.pinch()
.wheel()
.clampZoom({
- minScale: 0.12,
- maxScale: 16,
- })
+ minScale: 0.12,
+ maxScale: 16,
+ })
.decelerate();
this.camera2D.on('wheel', event => {
@@ -373,7 +377,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.camera2D.on('pointerdown', event => {
if (this.isCtrlKeyClicked === true
- && event.data.button === 0) {
+ && event.data.button === 0) {
this.rectToolGraphics.visible = true;
this.initialScreenMousePos = this.backgroundImage.toLocal(this.mousePosition);
this.finalScreenMousePos = this.backgroundImage.toLocal(this.mousePosition);
@@ -384,7 +388,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.rectToolGraphics.visible = false;
const shapes: AxShape[] = [];
this.backgroundImage.children.forEach(item => {
- if ( item instanceof AxShape
+ if (item instanceof AxShape
&& item instanceof AxPreviewImageShape === false) {
// 判断2个矩形是否相交
const rect1 = this.rectToolGraphics.getBounds();
@@ -403,7 +407,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.rectToolGraphics.visible = false;
const shapes: AxShape[] = [];
this.backgroundImage.children.forEach(item => {
- if ( item instanceof AxShape
+ if (item instanceof AxShape
&& item instanceof AxPreviewImageShape === false) {
// 判断2个矩形是否相交
const rect1 = this.rectToolGraphics.getBounds();
@@ -419,7 +423,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
});
this.camera2D.on('pointermove', event => {
if (this.isCtrlKeyClicked === true
- && this.rectToolGraphics.visible === true) {
+ && this.rectToolGraphics.visible === true) {
this.finalScreenMousePos = this.backgroundImage.toLocal(this.mousePosition);
const init = this.initialScreenMousePos;
@@ -468,8 +472,8 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
* 缩放适应
*/
public zoomFit() {
- const imageWidth = this.backgroundImage.texture.width;
- const imageHeight = this.backgroundImage.texture.height;
+ const imageWidth = this.backgroundImage.width;
+ const imageHeight = this.backgroundImage.height;
const appWidth = this.app.view.width - 470;
const appHeight = this.app.view.height;
const wScale = appWidth / imageWidth;
@@ -561,9 +565,9 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
}
}
const temp = this.backgroundImage.getChildByName('图例') as AxLegend;
- if ( temp !== undefined
+ if (temp !== undefined
&& temp !== null
- && axShape.assetData.Name !== '图例') {
+ && axShape.assetData.Name !== '图例') {
const itemLegend = new Legend(axShape.assetData.Name, axShape.assetData.ImageUrl, 1);
temp.addItem(itemLegend);
}
@@ -660,7 +664,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
wall.allowEdit = this.allowEdit && this.canvasData.gameMode === wall.assetData.GameMode;
}
break;
- }
+ }
});
// this.emit('backgroundScale', this.backgroundImage.scale.x);
}
@@ -689,7 +693,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
const pipeline = new AxArrowConnector(nodeData[key][tempKey], this, false, true);
pipeline.allowEdit = this.allowEdit && this.canvasData.gameMode === pipeline.assetData.GameMode;
break;
- }
+ }
});
});
}
@@ -701,7 +705,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.enterPaintEndButton.width = 60;
this.enterPaintEndButton.height = 60;
this.enterPaintEndButton.anchor.set(0.5);
- this.enterPaintEndButton.position = new PIXI.Point(0, 0);
+ this.enterPaintEndButton.position = new PIXI.Point(0, 0);
this.enterPaintEndButton.interactive = true;
this.enterPaintEndButton.buttonMode = true;
this.enterPaintEndButton
@@ -737,7 +741,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
list.push(property);
});
- const assetData = {
+ const assetData = {
TemplateId: this.canvasData.selectTemplateData.id,
CanConnect: this.canvasData.selectTemplateData.canConnect,
Pipelines: new Array(),
@@ -748,19 +752,19 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
FillMode: this.canvasData.selectTemplateData.fillMode,
FireElementId: this.canvasData.selectTemplateData.fireElementId,
FixedSize: this.canvasData.selectTemplateData.fixedSize,
- Height : 32,
- Width : 32,
+ Height: 32,
+ Width: 32,
Id: ObjectID.default.generate(),
ImageUrl: this.canvasData.selectTemplateData.imageUrl,
InteractiveMode: this.canvasData.selectTemplateData.interactiveMode,
- MultiPoint : null,
+ MultiPoint: null,
Point: new PIXI.Point(this.previewImage.x, this.previewImage.y),
- Name : this.canvasData.selectTemplateData.name,
+ Name: this.canvasData.selectTemplateData.name,
PropertyInfos: list,
- Border : this.canvasData.selectTemplateData.border,
- DrawMode : this.canvasData.selectTemplateData.drawMode,
- Thickness : this.canvasData.selectTemplateData.thickness,
- IsFromBuilding : this.canvasData.selectTemplateData.isFromBuilding,
+ Border: this.canvasData.selectTemplateData.border,
+ DrawMode: this.canvasData.selectTemplateData.drawMode,
+ Thickness: this.canvasData.selectTemplateData.thickness,
+ IsFromBuilding: this.canvasData.selectTemplateData.isFromBuilding,
GameMode: this.canvasData.gameMode,
Tag: this.canvasData.selectTemplateData.tag
};
@@ -860,61 +864,61 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
// this.paintingShape.refresh();
// }
// } else {
- this.previewLineSegment.visible = true;
- this.enterPaintEndButton.position = this.circleShadow.position;
- this.enterPaintEndButton.visible = true;
- this.enterPaintEndButton.zIndex = this.backgroundImage.children.length;
- this.currentClickPoint.position = new PIXI.Point(this.circleShadow.x, this.circleShadow.y);
- this.paintPoints.push(new PIXI.Point(this.circleShadow.x, this.circleShadow.y));
- if (this.paintPoints.length < 2) {
- return;
- }
- if (this.paintingShape === null) {
- const jsonObject = JSON.parse(JSON.stringify(this.canvasData.selectTemplateData.propertyInfos));
- const propertyList = [];
- jsonObject.forEach(element => {
- const property = new PropertyInfo(element);
- propertyList.push(property);
- });
- const assetData2 = {
- TemplateId: this.canvasData.selectTemplateData.id,
- FloorId: this.canvasData.selectStorey.id,
- Angle: this.canvasData.selectTemplateData.angle,
- Color: this.canvasData.selectTemplateData.color,
- Enabled: this.canvasData.selectTemplateData.enabled,
- FillMode: this.canvasData.selectTemplateData.fillMode,
- FireElementId: this.canvasData.selectTemplateData.fireElementId,
- FixedSize: this.canvasData.selectTemplateData.fixedSize,
- Height: 32,
- Width: 32,
- Id: ObjectID.default.generate(),
- ImageUrl: this.canvasData.selectTemplateData.imageUrl,
- InteractiveMode: this.canvasData.selectTemplateData.interactiveMode,
- MultiPoint: JSON.parse(JSON.stringify(this.paintPoints)),
- Point: new PIXI.Point(0, 0),
- Name: this.canvasData.selectTemplateData.name,
- PropertyInfos: propertyList,
- Border: this.canvasData.selectTemplateData.border,
- DrawMode: this.canvasData.selectTemplateData.drawMode,
- Thickness: this.canvasData.selectTemplateData.thickness,
- IsFromBuilding: this.canvasData.selectTemplateData.isFromBuilding,
- GameMode: this.canvasData.gameMode,
- Tag: this.canvasData.selectTemplateData.tag
- };
- if (this.canvasData.selectTemplateData.name === '距离') {
- this.paintingShape = new AxArrowConnector(assetData2, this, true, true);
- } else if (this.canvasData.selectTemplateData.name === '普通墙' || this.canvasData.selectTemplateData.name === '承重墙') {
- this.paintingShape = new AxArrowConnector(assetData2, this, false, false);
- } else if (this.canvasData.selectTemplateData.name === '水带' ) {
- this.paintingShape = new AxArrowConnector(assetData2, this, false, true);
- }
- } else {
- this.paintingShape.assetData.MultiPoint = JSON.parse(JSON.stringify(this.paintPoints));
- this.paintingShape.redraw();
+ this.previewLineSegment.visible = true;
+ this.enterPaintEndButton.position = this.circleShadow.position;
+ this.enterPaintEndButton.visible = true;
+ this.enterPaintEndButton.zIndex = this.backgroundImage.children.length;
+ this.currentClickPoint.position = new PIXI.Point(this.circleShadow.x, this.circleShadow.y);
+ this.paintPoints.push(new PIXI.Point(this.circleShadow.x, this.circleShadow.y));
+ if (this.paintPoints.length < 2) {
+ return;
+ }
+ if (this.paintingShape === null) {
+ const jsonObject = JSON.parse(JSON.stringify(this.canvasData.selectTemplateData.propertyInfos));
+ const propertyList = [];
+ jsonObject.forEach(element => {
+ const property = new PropertyInfo(element);
+ propertyList.push(property);
+ });
+ const assetData2 = {
+ TemplateId: this.canvasData.selectTemplateData.id,
+ FloorId: this.canvasData.selectStorey.id,
+ Angle: this.canvasData.selectTemplateData.angle,
+ Color: this.canvasData.selectTemplateData.color,
+ Enabled: this.canvasData.selectTemplateData.enabled,
+ FillMode: this.canvasData.selectTemplateData.fillMode,
+ FireElementId: this.canvasData.selectTemplateData.fireElementId,
+ FixedSize: this.canvasData.selectTemplateData.fixedSize,
+ Height: 32,
+ Width: 32,
+ Id: ObjectID.default.generate(),
+ ImageUrl: this.canvasData.selectTemplateData.imageUrl,
+ InteractiveMode: this.canvasData.selectTemplateData.interactiveMode,
+ MultiPoint: JSON.parse(JSON.stringify(this.paintPoints)),
+ Point: new PIXI.Point(0, 0),
+ Name: this.canvasData.selectTemplateData.name,
+ PropertyInfos: propertyList,
+ Border: this.canvasData.selectTemplateData.border,
+ DrawMode: this.canvasData.selectTemplateData.drawMode,
+ Thickness: this.canvasData.selectTemplateData.thickness,
+ IsFromBuilding: this.canvasData.selectTemplateData.isFromBuilding,
+ GameMode: this.canvasData.gameMode,
+ Tag: this.canvasData.selectTemplateData.tag
+ };
+ if (this.canvasData.selectTemplateData.name === '距离') {
+ this.paintingShape = new AxArrowConnector(assetData2, this, true, true);
+ } else if (this.canvasData.selectTemplateData.name === '普通墙' || this.canvasData.selectTemplateData.name === '承重墙') {
+ this.paintingShape = new AxArrowConnector(assetData2, this, false, false);
+ } else if (this.canvasData.selectTemplateData.name === '水带') {
+ this.paintingShape = new AxArrowConnector(assetData2, this, false, true);
}
+ } else {
+ this.paintingShape.assetData.MultiPoint = JSON.parse(JSON.stringify(this.paintPoints));
+ this.paintingShape.redraw();
+ }
// }
// this.emit('backgroundScale', this.backgroundImage.scale.x);
- break;
+ break;
}
}
// else if (this.isCtrlKeyClicked === true) {
@@ -934,13 +938,13 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
})
.on('pointerover', (event) => {
if (this.previewImage !== null
- && this.paintMode === PaintMode.singlePointIcon) {
+ && this.paintMode === PaintMode.singlePointIcon) {
this.previewImage.visible = true;
}
})
.on('pointerout', (event) => {
if (this.previewImage !== null
- && this.paintMode === PaintMode.singlePointIcon) {
+ && this.paintMode === PaintMode.singlePointIcon) {
this.previewImage.visible = false;
}
});
@@ -974,26 +978,60 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
/**
* 刷新背景图
*/
- public async refreshBackgroundImage(imageUrl: string = this.canvasData.selectStorey.imageUrl, imageAngle: number = this.canvasData.selectStorey.imageAngle): Promise {
+ public async refreshBackgroundImage(
+ imageUrl: string = this.canvasData.selectStorey.imageUrl,
+ imageAngle: number = this.canvasData.selectStorey.imageAngle,
+ imageWidth: number = this.canvasData.selectStorey.imageWidth,
+ imageHeight: number = this.canvasData.selectStorey.imageHeight,
+ ): Promise {
if (imageAngle === undefined || imageAngle === null) {
imageAngle = 0;
}
this.backgroundImage.scale.set(1);
+ // this.backgroundImage.pivot.set(0);
if (imageUrl === undefined || imageUrl === null || imageUrl === '') {
this.backgroundImage.texture = this.backgroundTexture;
} else {
- this.backgroundImage.texture = await PIXI.Texture.fromURL(imageUrl);
+ // this.backgroundImage.texture = await PIXI.Texture.fromURL(imageUrl);
+ if (imageWidth !== undefined
+ && imageWidth !== null
+ && imageWidth !== 0
+ && imageHeight !== undefined
+ && imageHeight !== null
+ && imageHeight !== 0) {
+ // console.log(imageWidth, imageHeight);
+ // this.backgroundImage.width = imageWidth;
+ // this.backgroundImage.height = imageHeight;
+ this.backgroundImage.texture =
+ await PIXI.Texture.fromURL(imageUrl + '?x-oss-process=image/resize,m_fixed,h_' + imageHeight + ',w_' + imageWidth); // 图片处理
+ } else {
+ // this.backgroundImage.width = this.backgroundImage.texture.width;
+ // this.backgroundImage.height = this.backgroundImage.texture.height;
+ this.backgroundImage.texture =
+ await PIXI.Texture.fromURL(imageUrl); // 请求原图
+ }
}
+
+ this.backgroundImage.angle = imageAngle;
+
+ // if (imageWidth !== undefined
+ // && imageWidth !== null
+ // && imageWidth !== 0
+ // && imageHeight !== undefined
+ // && imageHeight !== null
+ // && imageHeight !== 0) {
+ // console.log(imageWidth, imageHeight);
+ // this.backgroundImage.width = imageWidth;
+ // this.backgroundImage.height = imageHeight;
+ // } else {
+ // this.backgroundImage.width = this.backgroundImage.texture.width;
+ // this.backgroundImage.height = this.backgroundImage.texture.height;
+ // }
+
this.backgroundImage.x = this.backgroundImage.width / 2;
this.backgroundImage.y = this.backgroundImage.height / 2;
- this.backgroundImage.angle = imageAngle;
this.resetCamera2D();
- // this.backgroundImage.children.forEach((item) => {
- // if (item instanceof AxShape) {
- // item.refresh();
- // }
- // });
}
/**
* 刷新
@@ -1007,7 +1045,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
const itemList = [];
this.backgroundImage.children.forEach(item => {
if (item instanceof AxShape && item instanceof AxPreviewImageShape === false) {
- itemList.push(item.name);
+ itemList.push(item.name);
}
});
@@ -1037,7 +1075,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
const itemList = [];
this.backgroundImage.children.forEach(item => {
if (item instanceof AxShape && item instanceof AxPreviewImageShape === false) {
- itemList.push(item.name);
+ itemList.push(item.name);
}
});
@@ -1077,17 +1115,17 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
GameMode: this.canvasData.gameMode,
PropertyInfos: [
{
- Tag : '',
- Order : 0,
- Enabled : true,
- Visible : true,
- Required : false,
- RuleName : '',
- RuleValue : '',
- PhysicalUnit : '',
- PropertyName : '列',
- PropertyType : 2,
- PropertyValue : 2,
+ Tag: '',
+ Order: 0,
+ Enabled: true,
+ Visible: true,
+ Required: false,
+ RuleName: '',
+ RuleValue: '',
+ PhysicalUnit: '',
+ PropertyName: '列',
+ PropertyType: 2,
+ PropertyValue: 2,
},
],
Scale: 1,
@@ -1102,10 +1140,10 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
} else {
if (item !== '图例') {
shapeMap.set(this.canvasData.originaleveryStoreyData.data[item].Name, new Legend(
- this.canvasData.originaleveryStoreyData.data[item].Name,
- this.canvasData.originaleveryStoreyData.data[item].ImageUrl,
- 1
- ));
+ this.canvasData.originaleveryStoreyData.data[item].Name,
+ this.canvasData.originaleveryStoreyData.data[item].ImageUrl,
+ 1
+ ));
} else {
data = this.canvasData.originaleveryStoreyData.data[item];
}
@@ -1172,7 +1210,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.previewLineSegment.clear();
this.previewLineSegment.lineStyle(1 / this.backgroundImage.scale.x, 0x00ff00, 1);
this.previewLineSegment.moveTo(pointA.x, pointA.y);
- this.previewLineSegment.lineTo(pointB.x, pointB.y );
+ this.previewLineSegment.lineTo(pointB.x, pointB.y);
}
/**
* 创建半径图标影子
@@ -1249,7 +1287,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.previewImage.visible = false;
}
// 重置组件状态
- if ( this.paintingIcon !== undefined
+ if (this.paintingIcon !== undefined
&& this.paintingIcon !== null) {
this.backgroundImage.removeChild(this.paintingIcon);
}
@@ -1333,9 +1371,9 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
}
break;
case PaintMode.Pipeline:
- this.emit('createIcon', this.paintingShape);
- this.paintingShape = null;
- break;
+ this.emit('createIcon', this.paintingShape);
+ this.paintingShape = null;
+ break;
}
this.paintPoints.splice(0, this.paintPoints.length);
}
@@ -1343,11 +1381,11 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
* 复制
*/
public copy(): void {
- this.copyData = [];
- this.selection.all().forEach(item => {
- const newData = JSON.parse(JSON.stringify(item.assetData));
- this.copyData.push(newData);
- });
+ this.copyData = [];
+ this.selection.all().forEach(item => {
+ const newData = JSON.parse(JSON.stringify(item.assetData));
+ this.copyData.push(newData);
+ });
}
/**
* 粘贴
@@ -1359,7 +1397,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
item.Point = new PIXI.Point(item.Point.x + 5, item.Point.y + 5);
const newData = JSON.parse(JSON.stringify(item));
newData.Id = ObjectID.default.generate(),
- newData.CompanyId = companyId;
+ newData.CompanyId = companyId;
newData.BuildingId = buildingId;
newData.FloorId = floorId;
newData.Point = new PIXI.Point(item.Point.x + 5, item.Point.y + 5);
@@ -1417,7 +1455,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
const itemList = [];
this.backgroundImage.children.forEach(item => {
if (item instanceof AxShape && item instanceof AxPreviewImageShape === false) {
- itemList.push(item.name);
+ itemList.push(item.name);
}
});
@@ -1446,7 +1484,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
const itemList = [];
this.backgroundImage.children.forEach(item => {
if (item instanceof AxShape && item instanceof AxPreviewImageShape === false) {
- itemList.push(item.name);
+ itemList.push(item.name);
}
});
@@ -1474,7 +1512,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
const itemList = [];
this.backgroundImage.children.forEach(item => {
if (item instanceof AxShape && item instanceof AxPreviewImageShape === false) {
- itemList.push(item.name);
+ itemList.push(item.name);
}
});
@@ -1532,7 +1570,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.selection.addArray(shape);
this.selection.all().forEach(item => {
this.setSelectEffect(item);
- });
+ });
AxMessageSystem.send(EVENT_SELECTION_CHANGED);
}
}
@@ -1549,7 +1587,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
}
this.selection.addArray(shape);
this.selection.all().forEach(item => {
- this.setSelectEffect(item);
+ this.setSelectEffect(item);
});
AxMessageSystem.send(EVENT_SELECTION_CHANGED);
}