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, ResultBean } from '@business/entity/grid';
|
import { _HttpClient } from '@delon/theme';
|
import { environment } from '@env/environment';
|
import { debug } from 'util';
|
|
@Component({
|
selector: 'app-device-edit',
|
templateUrl: './device-edit.component.html',
|
styles: []
|
})
|
export class DeviceEditComponent implements OnInit {
|
public monitorPoints: any [] = [];
|
public professions: 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,
|
private http:_HttpClient
|
) { }
|
data: Device;
|
validateForm: FormGroup;
|
ngOnInit() {
|
const data = this.data;
|
this.monitorPointChange(null);
|
this.deviceVersionChange(null);
|
this.operateUserChange(null);
|
this.professionChange();
|
if (this.data.createTime == null) {
|
this.data.createTime = new Date().getTime();
|
}
|
debugger;
|
const validates: Device = {
|
name: [data.name, [Validators.required]],
|
mac: [data.mac, [Validators.required]],
|
deviceVersionId: [data.deviceVersionId],
|
monitorPointId: [data.monitorPointId],
|
professionId: [data.professionId],
|
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);
|
}
|
}
|
professionChange(){
|
this.http.get<ResultBean<any[]>>(environment.SERVER_BASH_URL+"profession/getall").subscribe(
|
result => {
|
if(!!result.code){
|
debugger;
|
this.professions = result.data;
|
}
|
}
|
);
|
}
|
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.deviceVersions.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.operateUsers.push(operateUser);
|
}
|
}
|
}
|
);
|
}
|
}
|