From 6da582b887cf7ceadf1617417d7c15b239a2e008 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Tue, 15 May 2018 10:45:08 +0800 Subject: [PATCH] 设备mac地址唯一性检验,查询数据行业添加 --- src/app/routes/devices/basic-info/device-edit/device-edit.component.ts | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 52 insertions(+), 4 deletions(-) diff --git a/src/app/routes/devices/basic-info/device-edit/device-edit.component.ts b/src/app/routes/devices/basic-info/device-edit/device-edit.component.ts index c128c0f..15870e2 100644 --- a/src/app/routes/devices/basic-info/device-edit/device-edit.component.ts +++ b/src/app/routes/devices/basic-info/device-edit/device-edit.component.ts @@ -3,12 +3,16 @@ 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 { FormBuilder, FormGroup, Validators, FormControl } 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'; +import { PageBean, ResultBean } from '@business/entity/grid'; +import { _HttpClient } from '@delon/theme'; +import { environment } from '@env/environment'; +import { ExampleService } from '@business/services/util/example.service'; +import { Observable } from 'rxjs/Observable'; @Component({ selector: 'app-device-edit', @@ -17,6 +21,7 @@ }) export class DeviceEditComponent implements OnInit { public monitorPoints: any [] = []; + public professions: any [] = []; public deviceVersions: any [] = []; public operateUsers: any [] = []; public isSaving = false; @@ -25,23 +30,33 @@ private formBuilder: FormBuilder, private monitorPointService: MonitorPointService, private versionService: VersionService, - private operateUserService: OperateUserService + private operateUserService: OperateUserService, + private deviceService:DeviceService, + private http:_HttpClient ) { } data: Device; + //������������������ + originalData: Device = {}; validateForm: FormGroup; ngOnInit() { + debugger; + if(!!this.data){ + Object.assign(this.originalData,this.data); + } 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(); } const validates: Device = { name: [data.name, [Validators.required]], - mac: [data.mac, [Validators.required]], + mac: [data.mac, [Validators.required],[this.macAsyncValidator]], deviceVersionId: [data.deviceVersionId], monitorPointId: [data.monitorPointId], + professionId: [data.professionId], operateUserId: [data.operateUserId], address: [data.address], id: [data.id], @@ -54,6 +69,30 @@ validates ); } + macAsyncValidator = (control: FormControl): any => { + return Observable.create(observer =>{ + // ���������������mac��������� + if(!!this.originalData&&this.originalData.mac === control.value){ + observer.next(null); + observer.complete(); + }else { + const exampleService = new ExampleService(); + exampleService.or().andEqualTo({name:'mac',value:control.value}); + this.deviceService.countByExample(exampleService).subscribe( + res => { + debugger; + if(!!res.code&&!!res.data){ + observer.next({ error: true, duplicated: true }); + }else{ + observer.next(null); + } + observer.complete(); + } + ); + } + + }); + }; close() { this.subject.destroy(); } @@ -67,6 +106,15 @@ ToolsService.markAsDirty(this.validateForm); } } + professionChange(){ + this.http.get<ResultBean<any[]>>(environment.SERVER_BASH_URL+"profession/getall").subscribe( + result => { + if(!!result.code){ + this.professions = result.data; + } + } + ); + } monitorPointChange(text) { const pageBean: PageBean = {pageIndex: 0, pageSize: 20}; this.monitorPointService.getPagingList(pageBean, text).subscribe( -- Gitblit v1.8.0