Skip to content
basic-detail.component.ts 27.7 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {AfterViewInit, Component, ElementRef, OnInit, Renderer, ViewChild,} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {ActivatedRoute} from '@angular/router';
import {OverAllService} from '../../overAll.service';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {NzMessageService} from 'ng-zorro-antd';
import {BasiCheckComponent} from '../../../modal/basi-check/basi-check.component';
import {NzModalService} from 'ng-zorro-antd';
wangqinghua's avatar
wangqinghua committed
import {color, pageSize} from '../../../app.constants';
wangqinghua's avatar
wangqinghua committed
import {WarnListComponent} from '../../../modal/warn-list/warn-list.component';
wangqinghua's avatar
wangqinghua committed
import {DatePipe} from '@angular/common';
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'jhi-basic-detail',
    templateUrl: './basic-detail.component.html',
    styles: [
            `
            .checkTags {
                position: absolute;
wangqinghua's avatar
wangqinghua committed
                top: 12px;
wangqinghua's avatar
wangqinghua committed
                left: 233px;
xiaowenjie's avatar
xiaowenjie committed
                z-index: 989;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
            .time-select{
                position: absolute;
                top: 55px;
                right: 15px;
                z-index: 999;
            }
wangqinghua's avatar
wangqinghua committed
            :host ::ng-deep .tabs-smart .ant-tabs-nav-scroll div.ant-tabs-tab:nth-child(3){
                margin-right: 150px;
            }
wangqinghua's avatar
wangqinghua committed
        `
    ]
wangqinghua's avatar
wangqinghua committed
})
wangqinghua's avatar
wangqinghua committed
export class BasicDetailComponent implements OnInit, AfterViewInit {
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartCheck') smartCheck: BasiCheckComponent;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('thirdTabs') thirdTabs: ElementRef;
    @ViewChild('warnList') warnList: WarnListComponent;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('colorEle') colorEle:ElementRef;
    @ViewChild('checkEle') checkEle:ElementRef;
wangqinghua's avatar
wangqinghua committed
    color = color;
wangqinghua's avatar
wangqinghua committed
    loading = false;
wangqinghua's avatar
wangqinghua committed
    hostId: string;
wangqinghua's avatar
wangqinghua committed
    hostName;
wangqinghua's avatar
wangqinghua committed
    realName;
wangqinghua's avatar
wangqinghua committed
    size = 'default';
wangqinghua's avatar
wangqinghua committed
    hostType: string;
wangqinghua's avatar
wangqinghua committed
    chartOption1;
    responseTimeStr;
    losedStr;
    cpuUsedStr;
    usedStr;
    chartOption2;
    chartOption3;
    chartOption4;
    secondOptionLeft;
    secondOptionRight;
wangqinghua's avatar
wangqinghua committed
    dataSet: any[];
    panel1 = {active: true, name: '响应时间与丢包率', disabled: false};
wangqinghua's avatar
wangqinghua committed
    panel2 = {active: true, name: 'CPU使用率及内存使用率',disabled: false};
wangqinghua's avatar
wangqinghua committed
    panel3 = {active: true, name: '磁盘使用率', disabled: false};
wangqinghua's avatar
wangqinghua committed

    //监控点
    isBasicEdit;
    itemTypeValue;
wangqinghua's avatar
wangqinghua committed
    interfaceList: any[];
    itemTypeList: any[];
wangqinghua's avatar
wangqinghua committed

    //
wangqinghua's avatar
wangqinghua committed
    checkList: any[];
wangqinghua's avatar
wangqinghua committed
    isCheck = false;
    checkStatus = {
wangqinghua's avatar
wangqinghua committed
        warning: null,
        normal: null,
        disabled: null,
        high: null
wangqinghua's avatar
wangqinghua committed
    };
wangqinghua's avatar
wangqinghua committed

    isKey = false;
wangqinghua's avatar
wangqinghua committed
    keyList: any[];
wangqinghua's avatar
wangqinghua committed
    keyType = '1';

    //图表
    isGrapha = false;
wangqinghua's avatar
wangqinghua committed
    selectGraphadata;
wangqinghua's avatar
wangqinghua committed
    chartOptionGrapha;
wangqinghua's avatar
wangqinghua committed
    imageSelectDate = new Date();
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    pageSize = pageSize;
wangqinghua's avatar
wangqinghua committed

    //分页--监控点
    pageIndex = 1;  //当前页数
wangqinghua's avatar
wangqinghua committed
    totalNum;   //总数据长度
    applicationId;    //分类ID

wangqinghua's avatar
wangqinghua committed
    //进出口流量-分页
    pageNum = 1;
wangqinghua's avatar
wangqinghua committed
    pageCount = 5;
wangqinghua's avatar
wangqinghua committed
    totalNumInOut;
wangqinghua's avatar
wangqinghua committed
    inOutLoading;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //分页--告警
    warn_totalNum;
    warn_pageNum = 1;

wangqinghua's avatar
wangqinghua committed
    validateForm: FormGroup;

wangqinghua's avatar
wangqinghua committed
    constructor(private routerInfo: ActivatedRoute, private message: NzMessageService,
wangqinghua's avatar
wangqinghua committed
                private overAllSer: OverAllService, private renderer: Renderer,
wangqinghua's avatar
wangqinghua committed
                private fb: FormBuilder, private modalService: NzModalService,private datePipe:DatePipe) {
wangqinghua's avatar
wangqinghua committed
    }

    ngOnInit() {

        this.routerInfo.queryParams.subscribe(queryParams => {
            this.hostId = queryParams.hostId;
            this.hostType = queryParams.type;
wangqinghua's avatar
wangqinghua committed
            this.hostName = queryParams.name;
wangqinghua's avatar
wangqinghua committed
            this.realName = queryParams.hostName;
wangqinghua's avatar
wangqinghua committed
        });
        this.responseTime();
        this.losed();
        this.cpused();
        this.disks();
        this.used();
        this.inOutInfo();

        //监测点
wangqinghua's avatar
wangqinghua committed
       this.getList();
wangqinghua's avatar
wangqinghua committed

        //历史告警
        const obj = {};
        this.warnList.getList(obj);
    }

    ngAfterViewInit() {
wangqinghua's avatar
wangqinghua committed
        this.checkEle.nativeElement.children[1].children[0].children[0].children[2].children[0].children[0].children[2].style.marginRight = this.colorEle.nativeElement.offsetWidth +'px';
wangqinghua's avatar
wangqinghua committed
    }

    //平均响应时间
wangqinghua's avatar
wangqinghua committed
    responseTime() {
        this.overAllSer.responseTime(this.hostId).subscribe(
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.responseTimeStr = res.data.responseTime.toFixed(2);
                    const responseTime = this.responseTimeStr;
                    const other = 100 - this.responseTimeStr;
wangqinghua's avatar
wangqinghua committed
                    const data = [
                        {value: responseTime},
                        {value: other},
                        {
                            value: 100, name: '', tooltip: {
                                formatter: function(a) {
                                    return '';
                                }
                            }
                        }
                    ];
                    this.chartOption1 = {
                        title: {
                            text: '平均响应时间',
                            top: '5%',
wangqinghua's avatar
wangqinghua committed
                            left: '35%',
wangqinghua's avatar
wangqinghua committed
                            textStyle: {
                                color: '#999',
                                fontSize: 12,
                            }
                        },
                        tooltip: {
                            trigger: 'item',
                            show: false,
                            formatter: '{a} <br/>{b} : {c} ({d}%)'
                        },
                        color: ['#7eb6ea', '#eeeeee', 'transparent'],
                        series: [
                            {
                                type: 'pie',
                                startAngle: 180,
                                radius: ['50%', '85%'],
                                center: ['50%', '75%'],
                                hoverAnimation: true,
                                data: data,
                                itemStyle: {
                                    normal: {
                                        show: false,
                                        position: 'center'
                                    },
                                    emphasis: {
                                        shadowBlur: 10,
                                        shadowOffsetX: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                                    }
                                },
                                labelLine: {
                                    normal: {
                                        show: false
                                    }
                                },
                            }
                        ]
                    };
                } else {
                    this.message.info(res.errMsg);
                }

            }
        );
wangqinghua's avatar
wangqinghua committed
    }

    //丢包率
wangqinghua's avatar
wangqinghua committed
    losed() {
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.losed(this.hostId).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.losedStr = res.data.losed;
                    const losed = res.data.losed;
                    const other = 100 - res.data.losed;
wangqinghua's avatar
wangqinghua committed
                    const data = [
                        {value: losed},
                        {value: other},
                        {
                            value: 100, name: '', tooltip: {
                                formatter: function(a) {
                                    return '';
                                }
                            }
                        }
wangqinghua's avatar
wangqinghua committed
                    ];
                    this.chartOption2 = {
                        title: {
                            text: '丢包率',
wangqinghua's avatar
wangqinghua committed
                            top: '5%',
                            left: '38%',
                            textStyle: {
wangqinghua's avatar
wangqinghua committed
                                color: '#999',
wangqinghua's avatar
wangqinghua committed
                                fontSize: 12,
wangqinghua's avatar
wangqinghua committed
                            }
                        },
wangqinghua's avatar
wangqinghua committed
                        tooltip: {
wangqinghua's avatar
wangqinghua committed
                            trigger: 'item',
                            show: false,
wangqinghua's avatar
wangqinghua committed
                            formatter: '{a} <br/>{b} : {c} ({d}%)'
wangqinghua's avatar
wangqinghua committed
                        },
wangqinghua's avatar
wangqinghua committed
                        color: ['#7eb6ea', '#eeeeee', 'transparent'],
                        series: [
wangqinghua's avatar
wangqinghua committed
                            {
                                type: 'pie',
wangqinghua's avatar
wangqinghua committed
                                startAngle: 180,
                                radius: ['50%', '85%'],
wangqinghua's avatar
wangqinghua committed
                                center: ['50%', '75%'],
                                hoverAnimation: true,
wangqinghua's avatar
wangqinghua committed
                                data: data,
wangqinghua's avatar
wangqinghua committed
                                itemStyle: {
                                    normal: {
                                        show: false,
                                        position: 'center'
                                    },
                                    emphasis: {
                                        shadowBlur: 10,
                                        shadowOffsetX: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                                    }
                                },
                                labelLine: {
                                    normal: {
                                        show: false
                                    }
                                },
                            }
                        ]
                    };
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.info(res.errMsg);
                }

            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

    //cup使用率
wangqinghua's avatar
wangqinghua committed
    cpused() {
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            hostId: this.hostId,
            hostType: this.hostType,
        };
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.cupUsed(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.cpuUsedStr = res.data.cpuUsed;
                    const losed = res.data.cpuUsed;
                    const other = 100 - res.data.cpuUsed;
wangqinghua's avatar
wangqinghua committed
                    const data = [
                        {value: losed},
                        {value: other},
                        {
                            value: 100, name: '', tooltip: {
                                formatter: function(a) {
                                    return '';
                                }
                            }
                        }
wangqinghua's avatar
wangqinghua committed
                    ];
                    this.chartOption3 = {
                        title: {
                            text: 'CPU使用率',
wangqinghua's avatar
wangqinghua committed
                            top: '5%',
                            left: '38%',
                            textStyle: {
wangqinghua's avatar
wangqinghua committed
                                color: '#999',
wangqinghua's avatar
wangqinghua committed
                                fontSize: 12,
wangqinghua's avatar
wangqinghua committed
                            }
                        },
wangqinghua's avatar
wangqinghua committed
                        tooltip: {
wangqinghua's avatar
wangqinghua committed
                            trigger: 'item',
                            show: false,
wangqinghua's avatar
wangqinghua committed
                            formatter: '{a} <br/>{b} : {c} ({d}%)'
wangqinghua's avatar
wangqinghua committed
                        },
wangqinghua's avatar
wangqinghua committed
                        color: ['#7eb6ea', '#eeeeee', 'transparent'],
                        series: [
wangqinghua's avatar
wangqinghua committed
                            {
                                type: 'pie',
wangqinghua's avatar
wangqinghua committed
                                startAngle: 180,
                                radius: ['50%', '85%'],
wangqinghua's avatar
wangqinghua committed
                                center: ['50%', '75%'],
                                hoverAnimation: true,
wangqinghua's avatar
wangqinghua committed
                                data: data,
wangqinghua's avatar
wangqinghua committed
                                itemStyle: {
                                    normal: {
                                        show: false,
                                        position: 'center'
                                    },
                                    emphasis: {
                                        shadowBlur: 10,
                                        shadowOffsetX: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                                    }
                                },
                                labelLine: {
                                    normal: {
                                        show: false
                                    }
                                },
                            }
                        ]
                    };
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.info(res.errMsg);
                }

            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

    //内存使用率
wangqinghua's avatar
wangqinghua committed
    used() {
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            hostId: this.hostId,
            hostType: this.hostType,
        };
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.used(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.usedStr = res.data.used;
                    const used = res.data.used;
                    const other = 100 - res.data.used;
wangqinghua's avatar
wangqinghua committed
                    const data = [
                        {value: used},
                        {value: other},
                        {
                            value: 100, name: '', tooltip: {
                                formatter: function(a) {
                                    return '';
                                }
                            }
                        }
wangqinghua's avatar
wangqinghua committed
                    ];
                    this.chartOption4 = {
                        title: {
                            text: '内存使用率',
wangqinghua's avatar
wangqinghua committed
                            top: '5%',
                            left: '38%',
                            textStyle: {
wangqinghua's avatar
wangqinghua committed
                                color: '#999',
wangqinghua's avatar
wangqinghua committed
                                fontSize: 12,
wangqinghua's avatar
wangqinghua committed
                            }
                        },
wangqinghua's avatar
wangqinghua committed
                        tooltip: {
wangqinghua's avatar
wangqinghua committed
                            trigger: 'item',
                            show: false,
wangqinghua's avatar
wangqinghua committed
                            formatter: '{a} <br/>{b} : {c} ({d}%)'
wangqinghua's avatar
wangqinghua committed
                        },
wangqinghua's avatar
wangqinghua committed
                        color: ['#7eb6ea', '#eeeeee', 'transparent'],
                        series: [
wangqinghua's avatar
wangqinghua committed
                            {
                                type: 'pie',
wangqinghua's avatar
wangqinghua committed
                                startAngle: 180,
                                radius: ['50%', '85%'],
wangqinghua's avatar
wangqinghua committed
                                center: ['50%', '75%'],
                                hoverAnimation: true,
wangqinghua's avatar
wangqinghua committed
                                data: data,
wangqinghua's avatar
wangqinghua committed
                                itemStyle: {
                                    normal: {
                                        show: false,
                                        position: 'center'
                                    },
                                    emphasis: {
                                        shadowBlur: 10,
                                        shadowOffsetX: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                                    }
                                },
                                labelLine: {
                                    normal: {
                                        show: false
                                    }
                                },
                            }
                        ]
                    };
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.info(res.errMsg);
                }

            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

    //磁盘使用率
wangqinghua's avatar
wangqinghua committed
    disks() {
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            hostId: this.hostId,
            hostType: this.hostType,
        };
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.disks(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.secondOptionLeft = {
wangqinghua's avatar
wangqinghua committed
                        tooltip: {
wangqinghua's avatar
wangqinghua committed
                            trigger: 'axis',
                        },
wangqinghua's avatar
wangqinghua committed
                        xAxis: {
wangqinghua's avatar
wangqinghua committed
                            type: 'value',
wangqinghua's avatar
wangqinghua committed
                            show: false,
wangqinghua's avatar
wangqinghua committed
                        },
                        yAxis: {
                            type: 'category',
wangqinghua's avatar
wangqinghua committed
                            axisTick: {
                                show: false
wangqinghua's avatar
wangqinghua committed
                            },
wangqinghua's avatar
wangqinghua committed
                            axisLine: {
                                show: false,
wangqinghua's avatar
wangqinghua committed
                            },
                            // 分割线设置
wangqinghua's avatar
wangqinghua committed
                            splitLine: {
                                show: true,  //显示分割线
wangqinghua's avatar
wangqinghua committed
                            },
wangqinghua's avatar
wangqinghua committed
                            data: res.data.disks.map((item) => {
wangqinghua's avatar
wangqinghua committed
                                const line = item.name.split('/');
wangqinghua's avatar
wangqinghua committed
                                return '/' + line[line.length - 1];
wangqinghua's avatar
wangqinghua committed
                            })
                        },
wangqinghua's avatar
wangqinghua committed
                        color: ['#ed7a7b', '#f2f2f2'],
wangqinghua's avatar
wangqinghua committed
                        series: [
                            {
                                name: '已使用',
                                type: 'bar',
                                stack: '总空间',
                                label: {
                                    normal: {
                                        show: true,
                                        position: 'insideRight',
wangqinghua's avatar
wangqinghua committed
                                        formatter: (obj) => {
                                            const item = (res.data.disks[obj.dataIndex].used / (1024 * 1024 * 1024)).toFixed(2);
                                            return item + 'G';
wangqinghua's avatar
wangqinghua committed
                                        }
                                    }
                                },
                                itemStyle: {
                                    normal: {
                                        color: '#3194e0'
                                    },
                                },
wangqinghua's avatar
wangqinghua committed
                                data: res.data.disks.map((item) => {
wangqinghua's avatar
wangqinghua committed
                                    const pre = ( (item.used / item.total) * 100 ).toFixed(2);  //已使用百分比
wangqinghua's avatar
wangqinghua committed
                                    return pre;
                                })
                            },
                            {
                                name: '剩余空间',
                                type: 'bar',
                                stack: '总空间',
                                label: {
                                    normal: {
                                        show: true,
                                        position: 'insideRight',
wangqinghua's avatar
wangqinghua committed
                                        formatter: (obj) => {
wangqinghua's avatar
wangqinghua committed
                                            const cut = (res.data.disks[obj.dataIndex].total - res.data.disks[obj.dataIndex].used);
wangqinghua's avatar
wangqinghua committed
                                            const item = (cut / (1024 * 1024 * 1024)).toFixed(2);
                                            return item + 'G';
wangqinghua's avatar
wangqinghua committed
                                        }
                                    }
                                },
                                itemStyle: {
                                    normal: {
                                        color: '#bfbfbf'
                                    },
                                },
wangqinghua's avatar
wangqinghua committed
                                data: res.data.disks.map((item) => {
wangqinghua's avatar
wangqinghua committed
                                    const pre = ( (item.total - item.used) / (item.total) * 100 ).toFixed(2); //剩余百分比
wangqinghua's avatar
wangqinghua committed
                                    return pre;
                                })
                            },
                        ]
                    };

wangqinghua's avatar
wangqinghua committed
                    let total = res.data.disks.map((item) => {
wangqinghua's avatar
wangqinghua committed
                        return item.total;
                    });
                    total = this.add(total);

wangqinghua's avatar
wangqinghua committed
                    let used = res.data.disks.map((item) => {
wangqinghua's avatar
wangqinghua committed
                        return item.used;
                    });
                    used = this.add(used);

                    this.secondOptionRight = {
wangqinghua's avatar
wangqinghua committed
                        title: {
wangqinghua's avatar
wangqinghua committed
                            text: '磁盘总体使用占比',
wangqinghua's avatar
wangqinghua committed
                            x: 'center'
wangqinghua's avatar
wangqinghua committed
                        },
wangqinghua's avatar
wangqinghua committed
                        tooltip: {
wangqinghua's avatar
wangqinghua committed
                            trigger: 'item',
wangqinghua's avatar
wangqinghua committed
                            formatter: '{a} <br/>{b} : {c} ({d}%)'
wangqinghua's avatar
wangqinghua committed
                        },
wangqinghua's avatar
wangqinghua committed
                        color: ['#3194e0', '#bfbfbf'],
                        series: [
wangqinghua's avatar
wangqinghua committed
                            {
                                name: '',
                                type: 'pie',
wangqinghua's avatar
wangqinghua committed
                                radius: '55%',
wangqinghua's avatar
wangqinghua committed
                                center: ['50%', '60%'],
wangqinghua's avatar
wangqinghua committed
                                data: [total, used],
                                itemStyle: {
                                    normal: {
                                        label: {
                                            position: 'inner',
wangqinghua's avatar
wangqinghua committed
                                            show: true,
                                            formatter: '{b} : {c} ({d}%)'
                                        },
wangqinghua's avatar
wangqinghua committed
                                        labelLine: {show: true}
wangqinghua's avatar
wangqinghua committed
                                    }
                                },
                                labelLine: {
                                    normal: {
                                        show: false
                                    }
                                },
                            }
                        ]
                    };
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.info(res.errMsg);
                }

            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    add(arr) {
        let total = 0;
        for (let i = 0; i < arr.length; i++) {
            total += arr[i];
        }
        return (total / 1024 / 1024 / 1024).toFixed(2);
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //进出口流量-SNMP
wangqinghua's avatar
wangqinghua committed
    inOutInfo() {
wangqinghua's avatar
wangqinghua committed
        this.inOutLoading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
            obj:{
                hostid:Number(this.hostId)
            },
            pageNum:this.pageNum,
wangqinghua's avatar
wangqinghua committed
            pageCount:this.pageCount
wangqinghua's avatar
wangqinghua committed
        }
        this.overAllSer.inOutInfoSnmp(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.dataSet = res.data.data;
                    this.inOutLoading = false;
                    this.totalNumInOut = res.data.totalNum;
wangqinghua's avatar
wangqinghua committed
                }else{
                    this.message.info(res.errMsg);
wangqinghua's avatar
wangqinghua committed
                }
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //进出口流量 翻页
    changeInoutInfo(e){
        this.pageNum = e;
        this.inOutInfo();
    }

wangqinghua's avatar
wangqinghua committed
    //添加监测点
wangqinghua's avatar
wangqinghua committed
    showCheckModal() {
wangqinghua's avatar
wangqinghua committed
        this.smartCheck.showAddModal(this.hostId,this.realName);
wangqinghua's avatar
wangqinghua committed
    }

    //编辑监测点
    showEditModal(item){
wangqinghua's avatar
wangqinghua committed
        this.smartCheck.showEditModal(this.hostId,item.itemid,this.realName);
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //添加or编辑监测点 之后
    getList(){
xiaowenjie's avatar
xiaowenjie committed
        this.getCheckList(null);
wangqinghua's avatar
wangqinghua committed
        this.findItemType();
    }

wangqinghua's avatar
wangqinghua committed
    handleCheckCancel() {
        this.isCheck = false;
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    showKeyModal() {
wangqinghua's avatar
wangqinghua committed
        this.isKey = true;
wangqinghua's avatar
wangqinghua committed
        this.keyTypeChange();
wangqinghua's avatar
wangqinghua committed
    }

    //键值类型变更
wangqinghua's avatar
wangqinghua committed
    keyTypeChange() {
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.zabbixKey(this.keyType).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.keyList = res.data;
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    handleKeyCancel() {
wangqinghua's avatar
wangqinghua committed
        this.isKey = false;
    }

wangqinghua's avatar
wangqinghua committed
    handleKeyOk() {
wangqinghua's avatar
wangqinghua committed
        this.isKey = false;
    }

    //监测点列表
xiaowenjie's avatar
xiaowenjie committed
    getCheckList(state) {
wangqinghua's avatar
wangqinghua committed
        this.getCheckStatus();
wangqinghua's avatar
wangqinghua committed
        this.loading = true;
        const data = {
            pageNum: this.pageIndex,
            pageCount: pageSize,
wangqinghua's avatar
wangqinghua committed
            obj:{
                applicationid: this.applicationId,
                hostid: this.hostId,
xiaowenjie's avatar
xiaowenjie committed
                priorityName:state
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.findCheckByType(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                this.checkList = res.data.data;
                this.totalNum = res.data.totalNum;
wangqinghua's avatar
wangqinghua committed
                this.loading = false;
            }
wangqinghua's avatar
wangqinghua committed
        );
    }

    //分页
    change(e) {
        this.pageIndex = e;
xiaowenjie's avatar
xiaowenjie committed
        this.getCheckList(null);
wangqinghua's avatar
wangqinghua committed
    }

    changeType(type) {
        this.pageIndex = 1;
        this.applicationId = type;
xiaowenjie's avatar
xiaowenjie committed
        this.getCheckList(null);
wangqinghua's avatar
wangqinghua committed
    }

    //监测点状态
wangqinghua's avatar
wangqinghua committed
    getCheckStatus() {
        this.overAllSer.findItemCount(this.hostId).subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                if(res.errCode == 10000){
                    this.checkStatus = res.data;
                }
wangqinghua's avatar
wangqinghua committed
            }
        );
wangqinghua's avatar
wangqinghua committed
    }

    //删除监测点
wangqinghua's avatar
wangqinghua committed
    deleteCheckItem(item) {
wangqinghua's avatar
wangqinghua committed
        this.modalService.confirm({
wangqinghua's avatar
wangqinghua committed
            nzTitle: '删除',
            nzContent: '<b style="color: red;">确认删除该监测点吗?</b>',
            nzOkText: '确定',
            nzOkType: 'danger',
            nzOnOk: () => {
wangqinghua's avatar
wangqinghua committed
                const data = {
wangqinghua's avatar
wangqinghua committed
                    itemIds:[item.itemid]
wangqinghua's avatar
wangqinghua committed
                };
                this.overAllSer.deleteItem(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                    (res) => {
                        if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                            this.message.success('删除成功');
xiaowenjie's avatar
xiaowenjie committed
                            this.getCheckList(null);
wangqinghua's avatar
wangqinghua committed
                        } else {
wangqinghua's avatar
wangqinghua committed
                            this.message.error(res.errMsg);
wangqinghua's avatar
wangqinghua committed
                        }
                    }
wangqinghua's avatar
wangqinghua committed
                );
wangqinghua's avatar
wangqinghua committed
            },
            nzCancelText: '取消',
wangqinghua's avatar
wangqinghua committed
            nzOnCancel: () => console.log('Cancel')
wangqinghua's avatar
wangqinghua committed
        });
    }

    //图表
wangqinghua's avatar
wangqinghua committed
    showImageModal(data) {
        this.isGrapha = true;
wangqinghua's avatar
wangqinghua committed
        this.selectGraphadata = data;
        this.getGraphDate();
    }

    //获取图表数据
    getGraphDate(){
        const data = {
            date: this.datePipe.transform(this.imageSelectDate,'yyyy-MM-dd'),
            itemid: this.selectGraphadata.itemid
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.findGraphData(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000 && res.data.length > 0) {
                    const result = res.data;
                    this.chartOptionGrapha = {
                        title: {
wangqinghua's avatar
wangqinghua committed
                            text: this.selectGraphadata.name
wangqinghua's avatar
wangqinghua committed
                        },
                        tooltip: {
                            trigger: 'axis'
                        },
                        xAxis: {
                            data: result.map((item) => {
                                return item.time;
                            })
                        },
                        yAxis: {
                            splitLine: {
                                show: false
                            }
                        },
                        dataZoom: [{
                            startValue: '2014-06-01'
                        }, {
                            type: 'inside'
                        }],
                        series: {
                            type: 'line',
                            data: result.map((item) => {
                                return item.value;
                            }),

                        }
                    };
                }
            }
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    handleImageCancel() {
        this.isGrapha = false;
wangqinghua's avatar
wangqinghua committed
        this.chartOptionGrapha = null;
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //监控项分类
wangqinghua's avatar
wangqinghua committed
    findItemType() {
        const data = {
            'hostids': []
        };
        data.hostids.push(this.hostId);
        this.overAllSer.findItemType(data).subscribe(
            (res) => {
                this.itemTypeList = res.data;
wangqinghua's avatar
wangqinghua committed
                const data = {
                    applicationid:'',
                    name:'全部'
                }
xiaowenjie's avatar
xiaowenjie committed
                if (null!=res.data){
                    this.itemTypeList.push(data);
                }

wangqinghua's avatar
wangqinghua committed
            }
        );
wangqinghua's avatar
wangqinghua committed
    }

    //停止/启用监控项  0  启用   1停止
wangqinghua's avatar
wangqinghua committed
    updateItem(itemid, status) {
        const data = {
            'status': status,
            'itemid': itemid
        };
wangqinghua's avatar
wangqinghua committed
        this.modalService.confirm({
wangqinghua's avatar
wangqinghua committed
            nzTitle: '',
            nzContent: '<b style="color: red;">确认修改监控项状态吗?</b>',
            nzOkText: '确定',
            nzOkType: 'danger',
            nzOnOk: () => {
wangqinghua's avatar
wangqinghua committed
                this.overAllSer.itemUpdate(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                    (res) => {
                        if (res.errCode == 10000) {
xiaowenjie's avatar
xiaowenjie committed
                            this.getCheckList(null);
wangqinghua's avatar
wangqinghua committed
                        }
                        this.message.info(res.errMsg);
                    }
wangqinghua's avatar
wangqinghua committed
                );
wangqinghua's avatar
wangqinghua committed
            },
            nzCancelText: '取消',
wangqinghua's avatar
wangqinghua committed
            nzOnCancel: () => console.log('Cancel')
wangqinghua's avatar
wangqinghua committed
        });

    }
}