From efe936a73370a55d4c3336fb9973a92fcf87efff Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Thu, 08 Mar 2018 09:22:09 +0800 Subject: [PATCH] ts语法修正,报表部分功能实现 --- src/app/routes/users/installer/edit/edit.component.ts | 44 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/app/routes/users/installer/edit/edit.component.ts b/src/app/routes/users/installer/edit/edit.component.ts index f02cabf..e19f61d 100644 --- a/src/app/routes/users/installer/edit/edit.component.ts +++ b/src/app/routes/users/installer/edit/edit.component.ts @@ -1,10 +1,14 @@ +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', @@ -14,28 +18,50 @@ export class UserInstallerEditComponent implements OnInit { user: any; - private validateForm: FormGroup; - - constructor( - private modalHelper: ModalHelper, + public validateForm: FormGroup; + constructor( private subject: NzModalSubject, - public dateSrv: DateService, - public msgSrv: NzMessageService, public http: HttpClient, - private formBuilder: FormBuilder + private formBuilder: FormBuilder, ) {} ngOnInit() { const user = this.user; this.validateForm = this.formBuilder.group({ name: [user.name], - mobile: [user.mobile, [Validators.pattern("^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$")]], + mobile: [user.mobile, [Validators.pattern('^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$')]], email: [user.email], weixin: [user.weixin], organizationId: [user.organizationId], 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( + (val: ResultBean<boolean>) => { + if (val.code === 1 && val.data) { + this.validateForm.get('mobile').setErrors(null); + } + } + ); + } + }); } save() { -- Gitblit v1.8.0