|  |  |  | 
|---|
|  |  |  | import { ResultBean } from '@business/entity/grid'; | 
|---|
|  |  |  | import { Subject } from 'rxjs/Subject'; | 
|---|
|  |  |  | import {NzModalSubject, NzMessageService} from 'ng-zorro-antd'; | 
|---|
|  |  |  | import {Component, OnInit} from '@angular/core'; | 
|---|
|  |  |  | import {ModalHelper} from '@delon/theme'; | 
|---|
|  |  |  | import {HttpClient} from '@angular/common/http'; | 
|---|
|  |  |  | import {HttpClient, HttpResponse} from '@angular/common/http'; | 
|---|
|  |  |  | import {environment} from 'environments/environment'; | 
|---|
|  |  |  | import {DateService} from '@business/services/util/date.service'; | 
|---|
|  |  |  | import {FormGroup, FormBuilder, FormControl, Validators} from '@angular/forms'; | 
|---|
|  |  |  | import { catchError } from 'rxjs/operators'; | 
|---|
|  |  |  | import { ErrorObservable } from 'rxjs/observable/ErrorObservable'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Component({ | 
|---|
|  |  |  | selector: 'app-edit', | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | user: any; | 
|---|
|  |  |  | public validateForm: FormGroup; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | constructor( | 
|---|
|  |  |  | private modalHelper: ModalHelper, | 
|---|
|  |  |  | constructor( | 
|---|
|  |  |  | private subject: NzModalSubject, | 
|---|
|  |  |  | public dateSrv: DateService, | 
|---|
|  |  |  | public msgSrv: NzMessageService, | 
|---|
|  |  |  | public http: HttpClient, | 
|---|
|  |  |  | private formBuilder: FormBuilder | 
|---|
|  |  |  | private formBuilder: FormBuilder, | 
|---|
|  |  |  | ) {} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ngOnInit() { | 
|---|
|  |  |  | 
|---|
|  |  |  | expireTime: [user.expireTime], | 
|---|
|  |  |  | id: [user.id] | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | const mobileControl = this.validateForm.get('mobile'); | 
|---|
|  |  |  | mobileControl.valueChanges.filter(val => { | 
|---|
|  |  |  | return val != null && val.trim() != ''; | 
|---|
|  |  |  | }).debounceTime(900).distinctUntilChanged().subscribe( value => { | 
|---|
|  |  |  | if(mobileControl.errors==null){ | 
|---|
|  |  |  | mobileControl.setErrors({unique:true}) | 
|---|
|  |  |  | this.http.get(environment.SERVER_BASH_URL + '/operateUser/unique-mobile?mobile='+value) | 
|---|
|  |  |  | .pipe( | 
|---|
|  |  |  | catchError(() => { | 
|---|
|  |  |  | const req = <XMLHttpRequest>event.target; | 
|---|
|  |  |  | if(req.status==401){ | 
|---|
|  |  |  | this.subject.destroy(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 以错误的形式结束本次请求 | 
|---|
|  |  |  | return ErrorObservable.create(event); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | .subscribe( | 
|---|
|  |  |  | (value:ResultBean<boolean>) => { | 
|---|
|  |  |  | if(value.code == 1 && value.data){ | 
|---|
|  |  |  | this.validateForm.get('mobile').setErrors(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | save() { | 
|---|