Browse Source

1.5.0.20210507_rc 新增导出图片

zhuzhou
徐振升 4 years ago
parent
commit
9742576402
  1. 1
      src/app/ui/collection-tools-building/collection-tools.component.html
  2. 25
      src/app/ui/collection-tools-building/collection-tools.component.ts
  3. 1
      src/app/ui/collection-tools-plan/collection-tools.component.html
  4. 24
      src/app/ui/collection-tools-plan/collection-tools.component.ts
  5. 3
      src/app/working-area/model/axLegend.ts
  6. 2
      src/app/working-area/model/configuration.ts
  7. 38
      src/app/working-area/working-area.component.ts

1
src/app/ui/collection-tools-building/collection-tools.component.html

@ -35,6 +35,7 @@
<img src="/assets/images/重置缩放.png" alt="">
重置缩放
</span>
<button (click)="takeScreenshot()">导出图片</button>
<span class="rightSave">
<!-- <mat-icon title="查看/编辑模式" (click)="lookpat()" *ngIf="isEditPattern">tv</mat-icon>
<mat-icon title="查看/编辑模式" (click)="editpat()" *ngIf="!isEditPattern && isediticon">create</mat-icon> -->

25
src/app/ui/collection-tools-building/collection-tools.component.ts

@ -842,7 +842,10 @@ export class CollectionToolsBuildingComponent implements OnInit {
this.canvas.paste(companyId, buildingId, floorId)
this.renovateTreeData(false)
}
//截图
takeScreenshot() {
this.canvas.takeScreenshot();
}
isMultiSelect: boolean = false; // 多选/单选 切换
changeMultiSelect(e) { this.canvas.setMulitSelect(this.isMultiSelect) }
isShowLegend: boolean = true; //图例是否显示
@ -1429,16 +1432,16 @@ export class CollectionToolsBuildingComponent implements OnInit {
//子节点跟随父节点的islook变化
  if(node.children && node.children.length != 0){
      node.children.forEach(item=>{
        item.isLook = !node.isLook 
        if(item.children && item.children.length != 0){
          item.children.forEach(i=>{
            i.isLook =  !node.isLook 
          })
        }
      })
     }
if (node.children && node.children.length != 0) {
node.children.forEach(item => {
item.isLook = !node.isLook
if (item.children && item.children.length != 0) {
item.children.forEach(i => {
i.isLook = !node.isLook
})
}
})
}
const nodes = this.treeControl.dataNodes;

1
src/app/ui/collection-tools-plan/collection-tools.component.html

@ -30,6 +30,7 @@
<img src="/assets/images/重置缩放.png" alt="">
重置缩放
</span>
<button (click)="takeScreenshot()">导出图片</button>
<span class="rightSave">
<!-- <mat-icon title="查看/编辑模式" (click)="lookpat()" *ngIf="isEditPattern">tv</mat-icon>
<mat-icon title="查看/编辑模式" (click)="editpat()" *ngIf="!isEditPattern && isediticon">create</mat-icon> -->

24
src/app/ui/collection-tools-plan/collection-tools.component.ts

@ -846,6 +846,10 @@ export class CollectionToolsPlanComponent implements OnInit {
this.canvas.paste(companyId, buildingId, floorId)
// this.renovateTreeData(false)
}
//截图
takeScreenshot() {
this.canvas.takeScreenshot();
}
isMultiSelect: boolean = false; // 多选/单选 切换
changeMultiSelect(e) { this.canvas.setMulitSelect(this.isMultiSelect) }
@ -1426,16 +1430,16 @@ export class CollectionToolsPlanComponent implements OnInit {
//子节点跟随父节点的islook变化
  if(node.children && node.children.length != 0){
      node.children.forEach(item=>{
        item.isLook = !node.isLook 
        if(item.children && item.children.length != 0){
          item.children.forEach(i=>{
            i.isLook =  !node.isLook 
          })
        }
      })
     }
if (node.children && node.children.length != 0) {
node.children.forEach(item => {
item.isLook = !node.isLook
if (item.children && item.children.length != 0) {
item.children.forEach(i => {
i.isLook = !node.isLook
})
}
})
}
const nodes = this.treeControl.dataNodes;

3
src/app/working-area/model/axLegend.ts

@ -1,6 +1,3 @@
import { Constructor } from '@angular/material/core/common-behaviors/constructor';
import { MatGridTileHeaderCssMatStyler } from '@angular/material/grid-list';
import { DefaultProxy } from 'cesium';
import { Sprite, Texture, Text, Graphics, Point } from 'pixi.js';
import { WorkingAreaComponent } from '../working-area.component';
import { AxShape } from './axShape';

2
src/app/working-area/model/configuration.ts

@ -77,7 +77,7 @@ export var config = {
directionalDrag: true,
boundsX: 500,
boundsY: 500,
viewBounds: 60000
viewBounds: 100000
};
export var wallInformation = { exterior: false, interior: false, midline: true, labels: true, exteriorlabel: 'e:', interiorlabel: 'i:', midlinelabel: 'm:' };

38
src/app/working-area/working-area.component.ts

@ -64,6 +64,10 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
*
*/
public loader = PIXI.Loader.shared;
/**
*
*/
public backgroundContainer = new PIXI.Container();
/**
*
*/
@ -171,7 +175,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
* -
* -
*/
public VERSION = '1.4.3.20210415_rc';
public VERSION = '1.5.0.20210507_rc';
/**
*
*/
@ -223,6 +227,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.camera2D.drag();
}
}
/**
*
*/
@ -478,7 +483,6 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.deselectAll();
this.setPaintMode(PaintMode.endPaint);
});
}
/**
* 2D相机
@ -614,12 +618,31 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.canvasData.isChange = true;
this.updateCamera2D();
});
}
/**
*
*/
takeScreenshot() {
this.backgroundContainer.setParent(this.app.stage);
this.app.renderer.extract.canvas(this.backgroundContainer).toBlob((b) => {
const a = document.createElement('a');
document.body.append(a);
a.download = 'screenshot';
a.href = URL.createObjectURL(b);
a.click();
a.remove();
}, 'image/png');
this.backgroundContainer.setParent(this.camera2D);
}
/**
*
*/
public resetCanvas() {
this.app.renderer.resize(this.content.nativeElement.clientWidth, this.content.nativeElement.clientHeight);
}
/**
*
@ -785,6 +808,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
TemplateId: this.canvasData.selectTemplateData.id,
CanConnect: this.canvasData.selectTemplateData.canConnect,
Pipelines: new Array(),
BuildingId: this.canvasData.selectStorey.buildingId,
FloorId: this.canvasData.selectStorey.id,
Angle: this.canvasData.selectTemplateData.angle,
Color: this.canvasData.selectTemplateData.color,
@ -808,6 +832,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
GameMode: this.canvasData.gameMode,
Tag: this.canvasData.selectTemplateData.tag
};
const singleIcon = new AxImageShape(assetData, this);
this.emit('createIcon', singleIcon);
break;
@ -1035,7 +1060,8 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.previewImage.visible = false;
}
});
this.camera2D.addChild(this.backgroundImage);
this.backgroundContainer.addChild(this.backgroundImage);
this.camera2D.addChild(this.backgroundContainer);
this.createPreviewImage();
this.createPreviewLineSegment();
this.createCircleShadow();
@ -1449,7 +1475,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
const property = new PropertyInfo(element);
propertyList.push(property);
});
const assetData = {
const assetData: AssetData = {
TemplateId: this.canvasData.selectTemplateData.id,
FloorId: this.canvasData.selectStorey.id,
Angle: this.canvasData.selectTemplateData.angle,
@ -1460,6 +1486,9 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
FixedSize: this.canvasData.selectTemplateData.fixedSize,
Height: 32,
Width: 32,
BuildingId: this.canvasData.selectStorey.buildingId,
CompanyId: "",
FloorName: "",
Id: ObjectID.default.generate(),
ImageUrl: this.canvasData.selectTemplateData.imageUrl,
InteractiveMode: this.canvasData.selectTemplateData.interactiveMode,
@ -1708,6 +1737,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
ids.forEach(item => {
const obj = this.backgroundImage.getChildByName(item);
shapes.push(obj as AxShape);
console.log((obj as AxShape).assetData);
});
this.selectAllWithClear(shapes);
}

Loading…
Cancel
Save