Skip to content
alarm-group.component.ts 2.61 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, EventEmitter, OnInit, Output} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {AlarmService} from '../../alarm.service';
import {
    FormBuilder,
    FormControl,
    FormGroup,
    ValidationErrors,
    Validators
} from '@angular/forms';
import {NzMessageService} from 'ng-zorro-antd';
wangqinghua's avatar
log
wangqinghua committed

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

wangqinghua's avatar
wangqinghua committed
    title;
    isVisible = false;
wangqinghua's avatar
wangqinghua committed
    groupId;
wangqinghua's avatar
log
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    validateForm: FormGroup;
    name;
    description;

    constructor(private alarmSer:AlarmService,private fb:FormBuilder,
                private message:NzMessageService) {
    }

    ngOnInit() {
        this.initForm();
    }

wangqinghua's avatar
wangqinghua committed
    //初始化
    initForm(){
        this.validateForm = this.fb.group({
            name:[null,[Validators.required]],
            description:[null]
        })
    }

wangqinghua's avatar
wangqinghua committed
    //新增告警组
    addModal() {
        this.title = '新增告警组';
        this.isVisible = true;
    }

    //编辑告警组
wangqinghua's avatar
wangqinghua committed
    editModal(arr) {
wangqinghua's avatar
wangqinghua committed
        this.title = '编辑告警组';
wangqinghua's avatar
wangqinghua committed
        this.groupId = arr.id;
wangqinghua's avatar
wangqinghua committed
        this.isVisible = true;
wangqinghua's avatar
wangqinghua committed
        this.validateForm.patchValue(arr);
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();
        }
        if(this.validateForm.invalid){
            return false;
        }

wangqinghua's avatar
wangqinghua committed
        if(this.title == '编辑告警组'){
            this.update();
        }else{
            this.create();
        }
    }

    create(){
wangqinghua's avatar
wangqinghua committed
        this.alarmSer.alertGroupCreate(this.validateForm.value).subscribe(
            (res)=>{
                if(res.errCode == 10000){
                    this.isVisible = false;
wangqinghua's avatar
wangqinghua committed
                    this.add.emit();
wangqinghua's avatar
wangqinghua committed
                    this.initForm();
wangqinghua's avatar
wangqinghua committed
                }
                this.message.info(res.errMsg);
            }
        )
    }

wangqinghua's avatar
wangqinghua committed
    update(){
       const data = {
           id:this.groupId,
           name:this.validateForm.value.name,
           description:this.validateForm.value.description
       };
        this.alarmSer.alertGroupUpdate(data).subscribe(
            (res)=>{
                if(res.errCode == 10000){
                    this.isVisible = false;
                    this.add.emit();
                    this.initForm();
                }
                this.message.info(res.errMsg);
            }
        )
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
log
wangqinghua committed

}