| 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 } from '@business/entity/grid'; | 
|   | 
| @Component({ | 
|   selector: 'app-device-edit', | 
|   templateUrl: './device-edit.component.html', | 
|   styles: [] | 
| }) | 
| export class DeviceEditComponent implements OnInit { | 
|   public monitorPoints: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 | 
|   ) { } | 
|   data:Device; | 
|   validateForm:FormGroup; | 
|   ngOnInit() { | 
|     const data = this.data; | 
|     this.monitorPointChange(null); | 
|     this.deviceVersionChange(null); | 
|     this.operateUserChange(null); | 
|     if (this.data.createTime == null) { | 
|         this.data.createTime = new Date().getTime(); | 
|     } | 
|     const validates:Device = { | 
|          name:[data.name,[Validators.required]], | 
|          mac:[data.mac,[Validators.required]], | 
|          deviceVersionId:[data.deviceVersionId], | 
|          monitorPointId:[data.monitorPointId], | 
|          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); | 
|     } | 
|    } | 
|    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.monitorPoints.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.monitorPoints.push(operateUser); | 
|                } | 
|            } | 
|       } | 
|    ); | 
|    } | 
| } |