| | |
| | | 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', |
| | |
| | | }) |
| | | export class DeviceEditComponent implements OnInit { |
| | | public monitorPoints: any [] = []; |
| | | public professions: any [] = []; |
| | | public deviceVersions: any [] = []; |
| | | public operateUsers: any [] = []; |
| | | public isSaving = false; |
| | |
| | | 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], |
| | |
| | | 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(); |
| | | } |
| | |
| | | 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( |