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 | 91 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 68 insertions(+), 23 deletions(-) diff --git a/src/app/routes/users/installer/edit/edit.component.ts b/src/app/routes/users/installer/edit/edit.component.ts index 9d5b573..e19f61d 100644 --- a/src/app/routes/users/installer/edit/edit.component.ts +++ b/src/app/routes/users/installer/edit/edit.component.ts @@ -1,9 +1,14 @@ -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 { environment } from '../../../../../environments/environment'; -import { DateService } from '../../../../core/services/date.service'; +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, 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', @@ -13,29 +18,69 @@ export class UserInstallerEditComponent implements OnInit { user: any; - - constructor( - private modalHelper: ModalHelper, + public validateForm: FormGroup; + constructor( private subject: NzModalSubject, - public dateSrv: DateService, - public msgSrv: NzMessageService, - public http: HttpClient) { } + public http: HttpClient, + private formBuilder: FormBuilder, + ) {} ngOnInit() { - if (this.user.id > 0) { - this.http.get(environment.SERVER_BASH_URL + '/user/operate_user/' + this.user.id).subscribe((res: any) => { - this.user = res; - this.user.createTime = this.dateSrv.date_format(this.user.createTime, 'YYYY-MM-DD'); - this.user.expireTime = this.dateSrv.date_format(this.user.expireTime, 'YYYY-MM-DD'); - }); - } + 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}$')]], + 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() { - this.http.post(environment.SERVER_BASH_URL + '/user/operate_user/save', this.user).subscribe(() => { - this.subject.next('true'); - this.close(); - }); + const validateForm = this.validateForm; + const controls = validateForm.controls; + if (validateForm.valid) { + for (const i in controls) { + controls[i].disable(); + } + this.http.post(environment.SERVER_BASH_URL + '/operateUser/operateUser', validateForm.value).subscribe(() => { + this.subject.next('true'); + this.close(); + }); + } else { + for (const i in controls) { + controls[i].markAsDirty(); + } + } + } close() { -- Gitblit v1.8.0