176 lines
5.8 KiB
176 lines
5.8 KiB
import { Component, OnInit, Inject } from '@angular/core'; |
|
import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; |
|
import {FlatTreeControl} from '@angular/cdk/tree'; |
|
import { HttpClient } from '@angular/common/http'; |
|
import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; |
|
import {FormControl} from '@angular/forms'; |
|
import { MatSnackBar } from '@angular/material/snack-bar'; |
|
import format from 'date-fns/format'; |
|
import { TreeService } from '../../http-interceptors/tree.service' |
|
import { FileUploader } from 'ng2-file-upload' |
|
|
|
import { DomSanitizer } from '@angular/platform-browser' |
|
@Component({ |
|
selector: 'addoriginalcopy', |
|
templateUrl: './addoriginalcopy.component.html', |
|
styleUrls: ['./material-bank.component.scss'] |
|
}) |
|
export class AddOriginalCopy { |
|
|
|
uploader:FileUploader = new FileUploader({ |
|
url: "/api/Objects/PlanPlatform", |
|
method: "POST", |
|
itemAlias: "uploadedfile" |
|
}); |
|
|
|
|
|
|
|
private _transformer = (node, level: number) => { |
|
return { |
|
expandable: !!node.children && node.children.length > 0, |
|
name: node.name, |
|
level: level, |
|
id: node.id, |
|
parentId: node.parentId, |
|
children:node.children |
|
}; |
|
} |
|
treeControl = new FlatTreeControl<any>(node => node.level, node => node.expandable); |
|
treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); |
|
dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); |
|
myControl = new FormControl(); |
|
displaynoneid = ""//选择的关联消防id |
|
displaynonename = "" |
|
constructor(private http: HttpClient,public dialogRef: MatDialogRef<AddOriginalCopy>,@Inject(MAT_DIALOG_DATA) public data,private tree:TreeService,private sanitizer:DomSanitizer) {} |
|
|
|
|
|
onNoClick(): void { |
|
this.dialogRef.close(); |
|
} |
|
ngOnInit() { |
|
this.http.get('/api/FireElements').subscribe(data=>{ |
|
this.dataSource.data = this.tree.toTree(data) |
|
}) |
|
} |
|
add(e){ |
|
this.displaynoneid = e.id |
|
this.displaynonename = e.name |
|
} |
|
hasChild = (_: number, node: any) => node.expandable; |
|
|
|
colors = ['#066eed','#00e5ef','#00ef76','#ffff00','#efb522','#20b4ac','#836eff','#ff8d00','#ef00ef','#ffa17a','#ff6a6a','#ff0000','#ff6eb5','#00bfff','#54ff9f','#00cd00','#00ffff','#6495ed','#ffdbb9','#836eff'] |
|
isshow = true//选择颜色或者上传图片 |
|
colorIndex:any=0; //选中的颜色的index |
|
selectedcolor = "#066eed" |
|
imgUrl = ""//返回来的图片地址后缀 |
|
selectcolor(item,key){ |
|
if(this.colorIndex != key){ |
|
this.colorIndex = key |
|
} |
|
this.selectedcolor = item |
|
} |
|
changecolor(){ |
|
this.isshow = true |
|
} |
|
changeimg(){ |
|
this.isshow = false |
|
} |
|
imgsrc = "" |
|
filechange(e){ |
|
const file = e.srcElement.files[0]; // 获取图片这里只操作一张图片 |
|
var reader = new FileReader(); |
|
reader.readAsDataURL(file); |
|
var image:any = new Image(); |
|
reader.onload = function(){ |
|
image.src = reader.result |
|
} |
|
setTimeout(() => { |
|
if(image.width!=128 && image.height!=128){ |
|
var obj = document.getElementById('selectedfile') ; |
|
obj.outerHTML=obj.outerHTML; |
|
alert("请选择分辨率为128*128的图片") |
|
} |
|
}, 100); |
|
} |
|
upload(){ |
|
if(!this.uploader.queue[0]){ |
|
alert("请选择文件") |
|
}else{ |
|
this.uploader.queue[0].upload();//开始上传 |
|
this.uploader.queue[0].onSuccess = (response, status, headers) => { |
|
// 上传文件成功 |
|
if (status == 201) { |
|
// 上传文件后获取服务器返回的数据 |
|
alert("上传成功") |
|
let tempRes = JSON.parse(response); |
|
this.imgUrl = tempRes.objectName |
|
this.imgsrc = '/api/Objects/PlanPlatform/' + this.imgUrl |
|
}else { |
|
// 上传文件后获取服务器返回的数据错误 |
|
} |
|
}; |
|
this.uploader.queue[0].onError = (response, status, headers) => { |
|
if (status == 401) { |
|
alert("无权限上传") |
|
} |
|
}; |
|
} |
|
|
|
} |
|
padding = "0" |
|
onSubmit(value){ |
|
value.pige=Boolean(Number(value.pige)) |
|
if(value.padding == "0"){//填充方式为颜色 |
|
this.http.post(`/api/Assets`,{ |
|
id:"", |
|
name:value.name, |
|
width: 0, |
|
height: 0, |
|
angle: 0, |
|
interactiveMode: Number(value.tag),//交互方式 |
|
fixedSize: value.pige, |
|
fillMode: Number(value.padding),//填充方式 |
|
color: this.selectedcolor+'80', |
|
imageUrl:"", |
|
order: 0, |
|
enabled: true, |
|
propertyInfos: [ |
|
], |
|
fireElementId:this.displaynoneid |
|
}, |
|
{ |
|
params: { |
|
libraryId:this.data.node.id, |
|
} |
|
}).subscribe((data)=>{ |
|
this.dialogRef.close("ooo"); |
|
alert("新建成功") |
|
}) |
|
}else{ |
|
this.http.post(`/api/Assets`,{ |
|
id:"", |
|
name:value.name, |
|
width: 0, |
|
height: 0, |
|
angle: 0, |
|
interactiveMode: Number(value.tag),//交互方式 |
|
fixedSize: value.pige, |
|
fillMode: Number(value.padding),//填充方式 |
|
color: "", |
|
imageUrl:'/api/Objects/PlanPlatform/' + this.imgUrl, |
|
order: 0, |
|
enabled: true, |
|
propertyInfos: [ |
|
], |
|
fireElementId:this.displaynoneid |
|
}, { |
|
params: { |
|
libraryId:this.data.node.id, |
|
} |
|
}).subscribe((data)=>{ |
|
this.dialogRef.close("ooo"); |
|
alert("新建成功") |
|
}) |
|
} |
|
} |
|
} |