Skip to content
alarm-log.component.ts 7.39 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, OnInit, ViewChild} from '@angular/core';
import {WarnListComponent} from '../../modal/warn-list/warn-list.component';
import {OverAllService} from '../../overAll/overAll.service';
import {DatePipe} from '@angular/common';
import {AlarmService} from '../alarm.service';
import {pageSize} from '../../app.constants';
wangqinghua's avatar
wangqinghua committed
import {NzMessageService, NzModalService} from 'ng-zorro-antd';
import {AlarmTargetComponent} from '../modal/alarm-target/alarm-target.component';
wangqinghua's avatar
wangqinghua committed
import {CommonService} from '../../shared/common/common.service';
import {WorkService} from '../../work/work.service';
wangqinghua's avatar
wangqinghua committed

@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'smart-alarm-log',
    templateUrl: './alarm-log.component.html',
    styles: [`
        .tag-warn {
wangqinghua's avatar
wangqinghua committed
            padding: 5px;
        }
wangqinghua's avatar
wangqinghua committed

        .tag-warn span {
wangqinghua's avatar
wangqinghua committed
            border: 1px solid #ccc;
            margin-right: 10px;
            display: inline-block;
            margin-bottom: 10px;
            padding: 2px 4px;
            border-radius: 4px;
        }
wangqinghua's avatar
wangqinghua committed

        :host ::ng-deep .tag-warn .ant-tag {
wangqinghua's avatar
wangqinghua committed
            margin-right: 0px;
        }
    `]
wangqinghua's avatar
wangqinghua committed
})
export class AlarmLogComponent implements OnInit {

wangqinghua's avatar
wangqinghua committed
    @ViewChild('warnList') warnList: WarnListComponent;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartAlarmTarget') smartAlarmTarget: AlarmTargetComponent;
wangqinghua's avatar
wangqinghua committed
    logList = [];
    warnCountList = [];
    groupList = [];
wangqinghua's avatar
wangqinghua committed

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

wangqinghua's avatar
wangqinghua committed
    //发送方式
    sendList;

wangqinghua's avatar
wangqinghua committed
    //条件
wangqinghua's avatar
wangqinghua committed
    timeType = '1';
wangqinghua's avatar
wangqinghua committed
    obj = {
wangqinghua's avatar
wangqinghua committed
        time_from: <any>'',
        time_till: <any>'',
        alertGroupId: null,
        mediatypeids: null,
        hostids: null,
wangqinghua's avatar
wangqinghua committed
    };

wangqinghua's avatar
wangqinghua committed
    startTime;
    endTime;

wangqinghua's avatar
wangqinghua committed
    //modal
    isVisible = false;
    title;
    content;
wangqinghua's avatar
wangqinghua committed
    loading = false;
wangqinghua's avatar
wangqinghua committed
    isDownload;
wangqinghua's avatar
wangqinghua committed

    constructor(public alarmSer: AlarmService, public overAllSer: OverAllService, public message: NzMessageService,
                public datePipe: DatePipe, public modalSer: NzModalService, private commonSer: CommonService,
                private workSer: WorkService) {
wangqinghua's avatar
wangqinghua committed
        const today = new Date();
wangqinghua's avatar
wangqinghua committed
        this.obj.time_from = this.datePipe.transform(today, 'yyyy-MM-dd') + ' 00:00:00';
        this.obj.time_till = this.datePipe.transform(today, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
    }

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

wangqinghua's avatar
wangqinghua committed
    //获取list
wangqinghua's avatar
wangqinghua committed
    getList() {
wangqinghua's avatar
wangqinghua committed
        this.loading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            'eventPage': this.pageNum,
            'pageRecords': this.pageCount,
            'alertGroupId': this.obj.alertGroupId,
            'time_from': new Date(this.obj.time_from).getTime(),
            'time_till': new Date(this.obj.time_till).getTime(),
            'mediatypeids': [this.obj.mediatypeids],
            'hostids': [this.obj.hostids]
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        if (!this.obj.mediatypeids) {
            data.mediatypeids = [];
wangqinghua's avatar
wangqinghua committed
        }
wangqinghua's avatar
wangqinghua committed
        if (!this.obj.hostids) {
            data.hostids = [];
wangqinghua's avatar
wangqinghua committed
        }
wangqinghua's avatar
wangqinghua committed
        this.alarmSer.alertFind(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.logList = res.data.data;
                    this.totalNum = res.data.totalNum;
                }
wangqinghua's avatar
wangqinghua committed
                this.loading = false;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

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

wangqinghua's avatar
wangqinghua committed
    //获取告警组
wangqinghua's avatar
wangqinghua committed
    getType() {
wangqinghua's avatar
wangqinghua committed
        this.alarmSer.mediaTypeFind({}).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.sendList = res.data;
wangqinghua's avatar
wangqinghua committed
                }
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //获取告警目标弹窗
wangqinghua's avatar
wangqinghua committed
    getTarget() {
wangqinghua's avatar
wangqinghua committed

    }

wangqinghua's avatar
wangqinghua committed
    //时间改变
wangqinghua's avatar
wangqinghua committed
    changeType() {
wangqinghua's avatar
wangqinghua committed
        const nowDate = new Date().getTime();
wangqinghua's avatar
wangqinghua committed
        let day1, day2;
        switch (this.timeType) {
            case'1': {
                this.obj.time_from = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 00:00:00';
                this.obj.time_till = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
                break;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
            case'2': {
                day1 = nowDate - 1 * 24 * 60 * 60 * 1000;
                this.obj.time_from = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
                this.obj.time_till = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
                break;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
            case'3': {
                this.obj.time_from = nowDate - 3 * 24 * 60 * 60 * 1000;
wangqinghua's avatar
wangqinghua committed
                this.obj.time_till = nowDate;
wangqinghua's avatar
wangqinghua committed
                break;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
            case'4': {
                this.obj.time_from = nowDate - 7 * 24 * 60 * 60 * 1000;
wangqinghua's avatar
wangqinghua committed
                this.obj.time_till = nowDate;
wangqinghua's avatar
wangqinghua committed
                break;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
            case'5': {
wangqinghua's avatar
wangqinghua committed
                break;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        }
    }

    //查询
wangqinghua's avatar
wangqinghua committed
    search() {
        if (this.timeType == '5') {
wangqinghua's avatar
wangqinghua committed
            this.obj.time_from = new Date(this.startTime).getTime();
            this.obj.time_till = new Date(this.endTime).getTime();
        }
wangqinghua's avatar
wangqinghua committed
        this.pageNum = 1;
wangqinghua's avatar
wangqinghua committed
        this.getList();
wangqinghua's avatar
wangqinghua committed
    }

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

    //查看消息内容
wangqinghua's avatar
wangqinghua committed
    showDeleteModal(data) {
wangqinghua's avatar
wangqinghua committed
        this.isVisible = true;
        this.title = data.subject;
        this.content = data.message;
    }

    //modal取消
wangqinghua's avatar
wangqinghua committed
    handleCancel() {
wangqinghua's avatar
wangqinghua committed
        this.isVisible = false;
    }

    //删除告警日志
wangqinghua's avatar
wangqinghua committed
    deleteLog(data) {
wangqinghua's avatar
wangqinghua committed
        this.modalSer.confirm({
            nzTitle: '删除',
            nzContent: '<b style="color: red;">确认删除该告警组吗?</b>',
            nzOkText: '确定',
            nzOkType: 'danger',
            nzOnOk: () => {
                const arr = {
wangqinghua's avatar
wangqinghua committed
                    ids: []
wangqinghua's avatar
wangqinghua committed
                };
                arr.ids.push(data.alertid);
                this.alarmSer.alertDelete(arr).subscribe(
                    (res) => {
                        if (res.errCode == 10000) {
                            this.message.info('删除成功');
                        }
                    }
                );
            },
            nzCancelText: '取消',
            nzOnCancel: () => console.log('Cancel'),
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
    }

    //选择告警目标--主机
wangqinghua's avatar
wangqinghua committed
    showTargetModal() {
wangqinghua's avatar
wangqinghua committed
        this.smartAlarmTarget.showModal();
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //导出文件
wangqinghua's avatar
wangqinghua committed
    downLoadExcel() {
wangqinghua's avatar
wangqinghua committed
        this.isDownload = true;
        const data = {
wangqinghua's avatar
wangqinghua committed
            'alertGroupId': this.obj.alertGroupId,
            'time_from': new Date(this.obj.time_from).getTime(),
            'time_till': new Date(this.obj.time_till).getTime(),
            'mediatypeids': [],
            'hostids': []
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        if (this.obj.mediatypeids) {
wangqinghua's avatar
wangqinghua committed
            data.mediatypeids.push(this.obj.mediatypeids);
        }
wangqinghua's avatar
wangqinghua committed
        if (this.obj.hostids) {
wangqinghua's avatar
wangqinghua committed
            data.hostids.push(this.obj.hostids);
        }
wangqinghua's avatar
wangqinghua committed
        this.alarmSer.getExportUrlAlert(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
                    this.workSer.downloadTemplate('alert', res.data).subscribe(
                        (data) => {
wangqinghua's avatar
wangqinghua committed
                            this.isDownload = false;
wangqinghua's avatar
wangqinghua committed
                            this.commonSer.downloadFile('告警推送日志.xlsx', data);
wangqinghua's avatar
wangqinghua committed
                        }
wangqinghua's avatar
wangqinghua committed
                    );
wangqinghua's avatar
wangqinghua committed
                }
                this.isDownload = false;
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
}