Skip to content
alarm-set.component.ts 5.71 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, OnInit, ViewChild} from '@angular/core';
import {AlarmService} from '../alarm.service';
import {pageSize} from '../../app.constants';
import {AlarmGroupComponent} from '../modal/alarm-group/alarm-group.component';
wangqinghua's avatar
wangqinghua committed
import {NzMessageService, NzModalService} from 'ng-zorro-antd';
wangqinghua's avatar
wangqinghua committed
import {AlarmModalComponent} from '../../modal/alarm-modal/alarm-modal.component';
wangqinghua's avatar
wangqinghua committed

@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'smart-alarm-set',
    templateUrl: './alarm-set.component.html',
    styles: []
wangqinghua's avatar
wangqinghua committed
})
export class AlarmSetComponent implements OnInit {
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartAlarmGroup') smartAlarmGroup: AlarmGroupComponent;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartAlarmModal') smartAlarmModal: AlarmModalComponent;
wangqinghua's avatar
wangqinghua committed
    setList = [];
    alertGroupId;
    groupList = [];
wangqinghua's avatar
wangqinghua committed
    isLoading = false;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    pageNum;
    pageCount = pageSize;
    totalNum;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(private alarmSer: AlarmService, private modalSer: NzModalService,
                private message: NzMessageService, private modalService: NzModalService) {
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    ngOnInit() {
        this.getGroupAlarm();
    }

wangqinghua's avatar
wangqinghua committed
    search(){
        this.pageNum = 1;
        this.getList();
    }

wangqinghua's avatar
wangqinghua committed
    //获取推送设置列表
    getList() {
wangqinghua's avatar
wangqinghua committed
        this.isLoading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
            eventPage: this.pageNum,
            pageRecords: this.pageCount,
            alertGroupId: this.alertGroupId
        };
        this.alarmSer.actionFind(data).subscribe(
            (res) => {
                if (res.errCode == 10000) {
                    this.setList = res.data.data;
                    this.totalNum = res.data.totalNum;
                }
wangqinghua's avatar
wangqinghua committed
                this.isLoading = false;
wangqinghua's avatar
wangqinghua committed
            }
        );
    }

    //获取告警组
    getGroupAlarm() {
        this.alarmSer.alertGroupFind().subscribe(
            (res) => {
                if (res.errCode == 10000) {
                    this.groupList = res.data;
wangqinghua's avatar
wangqinghua committed
                    this.alertGroupId = this.groupList[0].id;
                    this.getList();
wangqinghua's avatar
wangqinghua committed
                }
            }
        );
    }

    //添加告警组
    showGroupModal() {
        this.smartAlarmGroup.addModal();
    }
wangqinghua's avatar
wangqinghua committed

    //删除告警组
wangqinghua's avatar
wangqinghua committed
    deleteGroup() {
wangqinghua's avatar
wangqinghua committed
        if (!this.alertGroupId) {
            this.message.info('请选择需要删除的告警组');
            return false;
        }
wangqinghua's avatar
wangqinghua committed
        this.modalSer.confirm({
            nzTitle: '删除',
wangqinghua's avatar
wangqinghua committed
            nzContent: '<b style="color: red;">确定要删除告警组及其所有告警吗?</b>',
wangqinghua's avatar
wangqinghua committed
            nzOkText: '确定',
            nzOkType: 'danger',
            nzOnOk: () => {
                const arr = {
wangqinghua's avatar
wangqinghua committed
                    ids: []
wangqinghua's avatar
wangqinghua committed
                };
                arr.ids.push(this.alertGroupId);
                this.alarmSer.alertGroupDelete(arr).subscribe(
                    (res) => {
                        if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                            this.search();
wangqinghua's avatar
wangqinghua committed
                            this.message.info('删除成功');
                        } else {
                            this.message.info(res.errMsg);
                        }
                    }
                );
            },
            nzCancelText: '取消',
            nzOnCancel: () => console.log('Cancel'),
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
    }

    //修改告警组
wangqinghua's avatar
wangqinghua committed
    editGroup() {
        if (!this.alertGroupId) {
wangqinghua's avatar
wangqinghua committed
            this.message.info('请选择需要编辑的告警组');
wangqinghua's avatar
wangqinghua committed
            return false;
        }
        let arr = [];
wangqinghua's avatar
wangqinghua committed
        this.groupList.forEach(res => {
            if (res.id == this.alertGroupId) {
wangqinghua's avatar
wangqinghua committed
                arr = res;
            }
        });
        this.smartAlarmGroup.editModal(arr);
    }

wangqinghua's avatar
wangqinghua committed
    change(e) {
wangqinghua's avatar
wangqinghua committed
        this.pageNum = e;
        this.getList();
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

    //新增告警推送
wangqinghua's avatar
wangqinghua committed
    showAlarmModal() {
wangqinghua's avatar
wangqinghua committed
        this.smartAlarmModal.showAddModal("添加告警");
    }

    //编辑告警推送
    showEditModal(item){
wangqinghua's avatar
wangqinghua committed
        this.smartAlarmModal.showEditModal("编辑告警",item.actionid);
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //启用或暂停告警组 --单个
wangqinghua's avatar
wangqinghua committed
    changeStatus(title, status, item) {
        this.modalService.confirm({
            nzTitle: title,
wangqinghua's avatar
wangqinghua committed
            nzContent: '<b style="color: red;">确定要' + title + '当前告警吗</b>',
wangqinghua's avatar
wangqinghua committed
            nzOkText: '确定',
            nzOkType: 'danger',
            nzOnOk: () => {
                this.alarmSer.actionStatus(item.actionid, status).subscribe(
                    (res) => {
                        if (res.errCode == 10000) {
                            this.message.info(title + '成功');
wangqinghua's avatar
wangqinghua committed
                            this.search();
wangqinghua's avatar
wangqinghua committed
                        } else {
                            this.message.info(res.errMsg);
                        }
                    }
                );
            },
            nzCancelText: '取消',
            nzOnCancel: () => console.log('Cancel')
        });
    }

    //删除告警
    deleteAlarm(item) {
        this.modalSer.confirm({
                nzTitle: '删除',
                nzContent: '<b style="color: red;">确认删除该告警吗?</b>',
                nzOkText: '确定',
                nzOkType: 'danger',
                nzOnOk: () => {
                    const arr = {
                        params: []
                    };
                    arr.params.push(item.actionid);
                    this.alarmSer.actionDelete(arr).subscribe(
                        (res) => {
                            if (res.errCode == 10000) {
                                this.message.info('删除成功');
wangqinghua's avatar
wangqinghua committed
                                this.search();
wangqinghua's avatar
wangqinghua committed
                            } else {
                                this.message.info(res.errMsg);
                            }
                        }
                    );
                },
                nzCancelText: '取消',
                nzOnCancel: () => console.log('Cancel')
            }
        );
    }
wangqinghua's avatar
wangqinghua committed
}