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 |   40 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 35 insertions(+), 5 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 3fa4dfb..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,7 +3,7 @@
 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';
@@ -11,7 +11,8 @@
 import { PageBean, ResultBean } from '@business/entity/grid';
 import { _HttpClient } from '@delon/theme';
 import { environment } from '@env/environment';
-import { debug } from 'util';
+import { ExampleService } from '@business/services/util/example.service';
+import { Observable } from 'rxjs/Observable';
 
 @Component({
   selector: 'app-device-edit',
@@ -30,11 +31,18 @@
     private monitorPointService: MonitorPointService,
     private versionService: VersionService,
     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);
@@ -43,10 +51,9 @@
     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]],
+         mac: [data.mac, [Validators.required],[this.macAsyncValidator]],
          deviceVersionId: [data.deviceVersionId],
          monitorPointId: [data.monitorPointId],
          professionId: [data.professionId],
@@ -62,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();
    }
@@ -79,7 +110,6 @@
      this.http.get<ResultBean<any[]>>(environment.SERVER_BASH_URL+"profession/getall").subscribe(
          result => {
              if(!!result.code){
-                 debugger;
                  this.professions = result.data;
              }
          }

--
Gitblit v1.8.0