Skip to content
user.component.ts 3.65 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, EventEmitter, OnInit, Output} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {
    AbstractControl, Form,
    FormBuilder,
    FormControl,
    FormGroup,
    Validators
} from '@angular/forms';
wangqinghua's avatar
wangqinghua committed
import {SystemService} from '../../system.service';
wangqinghua's avatar
wangqinghua committed
import {NzMessageService} from 'ng-zorro-antd';
wangqinghua's avatar
wangqinghua committed

@Component({
    selector: 'smart-user',
    templateUrl: './user.component.html',
    styles: []
})
export class UserComponent implements OnInit {
wangqinghua's avatar
wangqinghua committed
    @Output() done = new EventEmitter<any>();
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    title;
wangqinghua's avatar
wangqinghua committed
    isVisible = false;
wangqinghua's avatar
wangqinghua committed
    isOkLoading = false;
wangqinghua's avatar
wangqinghua committed
    groupList:any[];
wangqinghua's avatar
wangqinghua committed
    validateForm:FormGroup;
wangqinghua's avatar
wangqinghua committed
    userId;
wangqinghua's avatar
wangqinghua committed
    genderList = [{value:1,label:''},{value:0,label:''}];
wangqinghua's avatar
wangqinghua committed
    positionList = [{value:1,label:'组长'},{value:0,label:'组员'}];
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(private fb:FormBuilder,private systemSer:SystemService,
                private message:NzMessageService) {
wangqinghua's avatar
wangqinghua committed
    }

    ngOnInit() :void{
wangqinghua's avatar
wangqinghua committed
       this.initForm();
    }

    initForm(){
wangqinghua's avatar
wangqinghua committed
        this.validateForm = this.fb.group({
wangqinghua's avatar
wangqinghua committed
            name:[null,[Validators.required,Validators.minLength(6),Validators.maxLength(16)]],
wangqinghua's avatar
wangqinghua committed
            phoneNumber:[null,[Validators.required,Validators.minLength(11),Validators.maxLength(11)]],
wangqinghua's avatar
wangqinghua committed
            gender:[null,[Validators.required]],
wangqinghua's avatar
wangqinghua committed
            email:[null,],
wangqinghua's avatar
wangqinghua committed
            organizationId:[null,[Validators.required]],
            position:[null,[Validators.required]],
wangqinghua's avatar
wangqinghua committed
            // status:[null,[Validators.required]],
wangqinghua's avatar
wangqinghua committed
        })
    }

wangqinghua's avatar
wangqinghua committed
    showAddModal(data,title){
wangqinghua's avatar
wangqinghua committed
        this.groupList = data;
wangqinghua's avatar
wangqinghua committed
        this.isVisible = true;
wangqinghua's avatar
wangqinghua committed
        this.title = title;
    }

    showEditModal(data,title,id){
        this.userId = id;
        this.groupList = data;
        this.isVisible = true;
        this.title = title;
        this.systemSer.getUser(this.userId).subscribe(
            (res)=>{
                if(res.errCode == 10000){
                    this.validateForm.patchValue(res.data);
                }
            }
        )
wangqinghua's avatar
wangqinghua committed
    }

    handleCancel(){
        this.isVisible = false;
wangqinghua's avatar
wangqinghua committed
        this.initForm();
wangqinghua's avatar
wangqinghua committed
    }

    handleOk(){
wangqinghua's avatar
wangqinghua committed
        for(let i in this.validateForm.controls){
wangqinghua's avatar
wangqinghua committed
            this.validateForm.controls[i].markAsDirty();
            this.validateForm.controls[i].updateValueAndValidity();
        }
wangqinghua's avatar
wangqinghua committed
        this.validateForm.value.gender = Number(this.validateForm.value.gender);
wangqinghua's avatar
wangqinghua committed
        // this.validateForm.value.status = Number(this.validateForm.value.status);
wangqinghua's avatar
wangqinghua committed
        if(this.validateForm.invalid){
            return false;
        }
wangqinghua's avatar
wangqinghua committed
        this.isOkLoading = true;
wangqinghua's avatar
wangqinghua committed
        if(this.title == "新增用户"){
            this.create();
        }
        if(this.title == "编辑用户"){
            this.update();
        }
    }

    create(){
wangqinghua's avatar
wangqinghua committed
        this.systemSer.adduser(this.validateForm.value).subscribe(
            (res)=>{
wangqinghua's avatar
wangqinghua committed
                if(res.errCode == 10000){
                    this.isVisible = false;
                    this.initForm();
                    this.done.emit();
wangqinghua's avatar
wangqinghua committed
                    this.message.success("新增用户成功");
wangqinghua's avatar
wangqinghua committed
                }else{
                    this.message.error(res.errMsg);
                }
wangqinghua's avatar
wangqinghua committed
                this.isOkLoading = false;
wangqinghua's avatar
wangqinghua committed
            }
        )
    }

    update(){
        this.validateForm.addControl('id',new FormControl(this.userId));
        this.systemSer.updateUser(this.validateForm.value).subscribe(
            (res)=>{
                if(res.errCode == 10000){
                    this.isVisible = false;
                    this.initForm();
                    this.done.emit();
wangqinghua's avatar
wangqinghua committed
                    this.message.success("更新用户成功");
wangqinghua's avatar
wangqinghua committed
                }else{
                    this.message.error(res.errMsg);
                }
wangqinghua's avatar
wangqinghua committed
                this.isOkLoading = false;
wangqinghua's avatar
wangqinghua committed
            }
        )
wangqinghua's avatar
wangqinghua committed
    }
}