import { ToolsService } from '@business/services/util/tools.service';
|
import { OperateUserService } from '@business/services/http/operate-user.service';
|
import { VersionService } from '@business/services/http/version.service';
|
import { MonitorPointService } from '@business/services/http/monitor-point.service';
|
import { NzModalSubject } from 'ng-zorro-antd';
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
import { DeviceService } from '@business/services/http/device.service';
|
import { Component, OnInit } from '@angular/core';
|
import { Device} from '@business/entity/data';
|
import { _Validators } from '@delon/abc';
|
import { PageBean } from '@business/entity/grid';
|
|
@Component({
|
selector: 'app-device-edit',
|
templateUrl: './device-edit.component.html',
|
styles: []
|
})
|
export class DeviceEditComponent implements OnInit {
|
public monitorPoints:any [] = [];
|
public deviceVersions:any [] = [];
|
public operateUsers:any [] = [];
|
public isSaving = false;
|
constructor(
|
private subject: NzModalSubject,
|
private formBuilder: FormBuilder,
|
private monitorPointService:MonitorPointService,
|
private versionService:VersionService,
|
private operateUserService:OperateUserService
|
) { }
|
data:Device;
|
validateForm:FormGroup;
|
ngOnInit() {
|
const data = this.data;
|
this.monitorPointChange(null);
|
this.deviceVersionChange(null);
|
this.operateUserChange(null);
|
if (this.data.createTime == null) {
|
this.data.createTime = new Date().getTime();
|
}
|
const validates:Device = {
|
name:[data.name,[Validators.required]],
|
mac:[data.mac,[Validators.required]],
|
deviceVersionId:[data.deviceVersionId],
|
monitorPointId:[data.monitorPointId],
|
operateUserId:[data.operateUserId],
|
address:[data.address],
|
id:[data.id],
|
longitude:[data.longitude],
|
latitude:[data.latitude],
|
createTime:[data.createTime],
|
installTime:[data.installTime]
|
};
|
this.validateForm = this.formBuilder.group(
|
validates
|
);
|
}
|
close(){
|
this.subject.destroy();
|
}
|
save($event, value, valid){
|
$event.preventDefault();
|
if(valid){
|
this.isSaving = true;
|
this.data = value;
|
this.subject.next( this );
|
}else{
|
ToolsService.markAsDirty(this.validateForm);
|
}
|
}
|
monitorPointChange(text){
|
const pageBean: PageBean = {pageIndex: 0, pageSize: 20};
|
this.monitorPointService.getPagingList(pageBean, text).subscribe(
|
(res: PageBean) => {
|
if (res != null && res.data != null) {
|
this.monitorPoints = res.data;
|
}
|
const monitorPoint = this.data.monitorPoint;
|
if (monitorPoint != null && text == null) {
|
const hasSelectedValue = this.monitorPoints.some(
|
(item: any) => {
|
return item.id === monitorPoint.id;
|
}
|
);
|
if ( hasSelectedValue ) {
|
this.monitorPoints.push(monitorPoint);
|
}
|
}
|
}
|
);
|
}
|
deviceVersionChange(text){
|
const pageBean: PageBean = {pageIndex: 0, pageSize: 20};
|
this.versionService.getPagingList(pageBean, text).subscribe(
|
(res: PageBean) => {
|
if (res != null && res.data != null) {
|
this.deviceVersions = res.data;
|
}
|
const deviceVersion = this.data.deviceVersion;
|
if (deviceVersion != null && text == null) {
|
const hasSelectedValue = this.deviceVersions.some(
|
(item: any) => {
|
return item.id === deviceVersion.id;
|
}
|
);
|
if ( hasSelectedValue ) {
|
this.monitorPoints.push(deviceVersion);
|
}
|
}
|
}
|
);
|
}
|
operateUserChange(text){
|
const pageBean: PageBean = {pageIndex: 0, pageSize: 20};
|
this.operateUserService.getPagingList(pageBean, text).subscribe(
|
(res: PageBean) => {
|
if (res != null && res.data != null) {
|
this.operateUsers = res.data;
|
}
|
const operateUser = this.data.operateUser;
|
if (operateUser != null && text == null) {
|
const hasSelectedValue = this.operateUsers.some(
|
(item: any) => {
|
return item.id === operateUser.id;
|
}
|
);
|
if ( hasSelectedValue ) {
|
this.monitorPoints.push(operateUser);
|
}
|
}
|
}
|
);
|
}
|
}
|