From 27cd36be226ca2434f06b1ae9e4d43f1fea639ab Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Mon, 25 Jun 2018 16:40:28 +0800
Subject: [PATCH] 组织配置单位和页面显示
---
src/app/routes/devices/basic-info/device-edit/device-edit.component.ts | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 51 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..47ec2f0 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,32 @@
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() {
+ 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],
@@ -53,6 +67,30 @@
this.validateForm = this.formBuilder.group(
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 +105,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