Skip to content
flow-trend.component.ts 19.5 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ElementRef, OnDestroy, OnInit, ViewChild} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {TopologyService} from '../topology.service';
import {OverAllService} from '../../overAll/overAll.service';
import {NzMessageService} from 'ng-zorro-antd';
import {pageSize} from '../../app.constants';
import {DatePipe} from '@angular/common';
wangqinghua's avatar
wangqinghua committed
import {setInterval, clearInterval} from 'timers';
wangqinghua's avatar
wangqinghua committed
import {NgxEchartsModule} from 'ngx-echarts';
wangqinghua's avatar
wangqinghua committed

@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'smart-flow-trend',
    templateUrl: './flow-trend.component.html',
    styles: []
wangqinghua's avatar
wangqinghua committed
})
wangqinghua's avatar
wangqinghua committed
export class FlowTrendComponent implements OnInit, OnDestroy {
wangqinghua's avatar
wangqinghua committed
    groupList;
    hostList;
wangqinghua's avatar
wangqinghua committed
    isLoading;
wangqinghua's avatar
wangqinghua committed
    obj = {
wangqinghua's avatar
wangqinghua committed
        groupid: null,
wangqinghua's avatar
wangqinghua committed
        hostid: null,
        startTime: '',
        endTime: ''
    };
wangqinghua's avatar
wangqinghua committed
    echartType = 'history';
    echartObj;  //echart对象
wangqinghua's avatar
wangqinghua committed

    //in
    inList = [];
    inPageNum = 1;
wangqinghua's avatar
wangqinghua committed
    inPageCount = '5';
wangqinghua's avatar
wangqinghua committed
    inTotalNum;
wangqinghua's avatar
wangqinghua committed
    inLoading;
wangqinghua's avatar
wangqinghua committed

    //out
    outList = [];
    outPageNum = 1;
wangqinghua's avatar
wangqinghua committed
    outPageCount = '5';
wangqinghua's avatar
wangqinghua committed
    outTotalNum;
wangqinghua's avatar
wangqinghua committed
    outLoading;

wangqinghua's avatar
wangqinghua committed
    timeType = '1';
wangqinghua's avatar
wangqinghua committed
    timeBegin;
    timeEnd;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //历史图表
wangqinghua's avatar
wangqinghua committed
    chartOption;
wangqinghua's avatar
wangqinghua committed
    inEchartData;
    outEchartData;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //实时图表
    nowChartOption;
    inNowEchartData = [];
    outNowEchartData = [];

wangqinghua's avatar
wangqinghua committed
    time_;

wangqinghua's avatar
wangqinghua committed
    data = {
wangqinghua's avatar
wangqinghua committed
        now: false,
        history: false
    };
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(private topologySer: TopologyService, private overAllSer: OverAllService,
wangqinghua's avatar
wangqinghua committed
                private message: NzMessageService, private datePipe: DatePipe) {
wangqinghua's avatar
wangqinghua committed
    }

    ngOnInit() {
        const today = new Date().getTime();
wangqinghua's avatar
wangqinghua committed
        this.obj.startTime = this.datePipe.transform(today, 'yyyy-MM-dd') + ' 00:00:00';
        this.obj.endTime = this.datePipe.transform(today, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
        this.getGroup();
wangqinghua's avatar
wangqinghua committed
        this.time_ = setInterval(() => {
            if (this.obj.hostid) {
                this.findByTime();
            }
        }, 1000 * 60 * 4);
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //获取流量
    getList() {
        this.outNowEchartData = [];
        this.inNowEchartData = [];

        this.obj.hostid = null;
        this.onchange();
    }

    getListIO() {
        this.outNowEchartData = [];
        this.inNowEchartData = [];

        this.getInList();
        this.getOutList();
    }

wangqinghua's avatar
wangqinghua committed
    onEchartInit(e) {
wangqinghua's avatar
wangqinghua committed
        this.echartObj = e;
    }

wangqinghua's avatar
wangqinghua committed
    //获取分组
    getGroup() {
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.findGroup().subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
                    this.groupList = res.data;
wangqinghua's avatar
wangqinghua committed
                    this.obj.groupid = this.groupList[0].groupid + '';
wangqinghua's avatar
wangqinghua committed
                    this.onchange();
wangqinghua's avatar
wangqinghua committed
                }
            }
        );
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //切换图表类型
wangqinghua's avatar
wangqinghua committed
    changeEchartType(type) {
wangqinghua's avatar
wangqinghua committed
        this.echartType = type;
    }

wangqinghua's avatar
wangqinghua committed
    //查询主机
wangqinghua's avatar
wangqinghua committed
    onchange() {
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            'groupids': [this.obj.groupid],
wangqinghua's avatar
wangqinghua committed
            'hostExtend': {
                'superiorHostid': null
            }
        };
        this.overAllSer.findDetail(data).subscribe(
            (res) => {
                if (res.errCode == 10000) {
                    this.hostList = res.data;
wangqinghua's avatar
wangqinghua committed
                    if (this.hostList) {
                        this.obj.hostid = this.hostList[0].hostid + '';
wangqinghua's avatar
wangqinghua committed
                        this.getEcharts(null);
xiaowenjie's avatar
xiaowenjie committed
                        this.findByTime();
wangqinghua's avatar
wangqinghua committed
                        this.setNowEchart();
wangqinghua's avatar
wangqinghua committed
                        this.getInList();
                        this.getOutList();
wangqinghua's avatar
wangqinghua committed
                    } else {
                        this.message.warning('当前资源组无资源');
wangqinghua's avatar
wangqinghua committed
                    }
wangqinghua's avatar
wangqinghua committed
                }
            }
        );
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    setNowEchart() {
wangqinghua's avatar
wangqinghua committed
        let itemStyle = {
wangqinghua's avatar
wangqinghua committed
            normal: {},
            emphasis: {
                barBorderWidth: 1,
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowOffsetY: 0,
                shadowColor: 'rgba(0,0,0,0.5)'
            }
        };
wangqinghua's avatar
wangqinghua committed
        this.nowChartOption = {
            title: {
wangqinghua's avatar
wangqinghua committed
                text: '实时进出口流量图',
wangqinghua's avatar
wangqinghua committed
                left: 'center',
            },
            backgroundColor: '#eee',
            tooltip: {
                formatter: (params) => {
wangqinghua's avatar
wangqinghua committed
                    if (params.data) {
wangqinghua's avatar
wangqinghua committed
                        let res = params.seriesName;
                        res += '<br/>时间:' + params.name;
                        let Mbps = 1000 * 1000;
                        let kbps = 1000;
                        let size = Math.abs(params.data);
                        if (size / Mbps > 1) {
                            res += '<br/>流量:' + (size / Mbps).toFixed(2) + 'Mbps';
                        } else if (size / kbps > 1) {
                            res += '<br/>流量:' + (size / kbps).toFixed(2) + 'kbps';
                        } else {
wangqinghua's avatar
wangqinghua committed
                            res += '<br/>流量:' + (size) + 'bps';
wangqinghua's avatar
wangqinghua committed
                        }
                        return res;
                    }
                }
            },
            xAxis: {
                data: this.inNowEchartData.map(e => {
                    let date = this.datePipe.transform(e.clock, 'yyyy-MM-dd HH:mm');
                    return date;
                }),
                name: '时间',
            },
            dataZoom: [{
                startValue: this.obj.startTime
            }, {
                type: 'inside'
            }],
            yAxis: {
                inverse: true,
                splitArea: {show: false},
                type: 'value',
                axisLabel: {   //Y轴数据
                    formatter: function(value) {
                        return Math.abs(value) / 10000 + ' kbps';   //负数取绝对值变正数
                    },
                    textStyle: {
                        color: '#666'
                    }
                },
            },
            grid: {
                left: 100
            },
            series: [
                {
                    name: '进口流量',
                    type: 'line',
                    stack: 'one',
                    itemStyle: itemStyle,
                    data: this.inNowEchartData.map(e => {
xiaowenjie's avatar
xiaowenjie committed
                        return e.sumValue;
wangqinghua's avatar
wangqinghua committed
                    })
                },
                {
                    name: '出口流量',
                    type: 'line',
                    stack: 'one',
                    itemStyle: itemStyle,
                    data: this.outNowEchartData.map(e => {
xiaowenjie's avatar
xiaowenjie committed
                        return -e.sumValue;
wangqinghua's avatar
wangqinghua committed
    //实时流量数据
wangqinghua's avatar
wangqinghua committed
    findByTime() {
wangqinghua's avatar
wangqinghua committed
        this.topologySer.findByTime(this.obj.hostid).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.inNowEchartData = res.data.in;
                    this.outNowEchartData = res.data.out;
                    if (this.inNowEchartData.length == 0 && this.outNowEchartData.length == 0) {
wangqinghua's avatar
wangqinghua committed
                        this.data.now = true;
wangqinghua's avatar
wangqinghua committed
                        this.message.warning('实时流量数据暂无');
                    } else {
wangqinghua's avatar
wangqinghua committed
                        this.data.now = false;
                        this.flashEcharts();
                    }
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.warning(res.errMsg);
                }
            }
wangqinghua's avatar
wangqinghua committed
        );
    }

    //实时刷新图表
    flashEcharts() {
        let itemStyle = {
            normal: {},
            emphasis: {
                barBorderWidth: 1,
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowOffsetY: 0,
                shadowColor: 'rgba(0,0,0,0.5)'
            }
        };
wangqinghua's avatar
wangqinghua committed

        this.nowChartOption = {
wangqinghua's avatar
wangqinghua committed
            title: {
wangqinghua's avatar
wangqinghua committed
                text: '实时进出口流量图',
wangqinghua's avatar
wangqinghua committed
                left: 'center',
            },
wangqinghua's avatar
wangqinghua committed
            legend: {
                data: ['进口流量', '出口流量'],
                align: 'left',
                left: 10
            },
wangqinghua's avatar
wangqinghua committed
            backgroundColor: '#eee',
            tooltip: {
                formatter: (params) => {
wangqinghua's avatar
wangqinghua committed
                    if (params.data) {
wangqinghua's avatar
wangqinghua committed
                        let res = params.seriesName;
                        res += '<br/>时间:' + params.name;
wangqinghua's avatar
wangqinghua committed
                        let Gbps = 1000 * 1000 * 1000;
wangqinghua's avatar
wangqinghua committed
                        let Mbps = 1000 * 1000;
                        let kbps = 1000;
                        let size = Math.abs(params.data);
wangqinghua's avatar
wangqinghua committed
                        if (size / Gbps > 1) {
wangqinghua's avatar
wangqinghua committed
                            res += '<br/>流量:' + (size / Gbps).toFixed(2) + 'Gbps';
wangqinghua's avatar
wangqinghua committed
                        } else if (size / Mbps > 1) {
wangqinghua's avatar
wangqinghua committed
                            res += '<br/>流量:' + (size / Mbps).toFixed(2) + 'Mbps';
                        } else if (size / kbps > 1) {
                            res += '<br/>流量:' + (size / kbps).toFixed(2) + 'kbps';
                        } else {
wangqinghua's avatar
wangqinghua committed
                            res += '<br/>流量:' + (size) + 'bps';
wangqinghua's avatar
wangqinghua committed
                        }
                        return res;
wangqinghua's avatar
wangqinghua committed
                    }
                }
            },
            xAxis: {
wangqinghua's avatar
wangqinghua committed
                data: this.inNowEchartData.map(e => {
wangqinghua's avatar
wangqinghua committed
                    return e.clock;
wangqinghua's avatar
wangqinghua committed
                }),
                name: '时间',
            },
            dataZoom: [{
                startValue: this.obj.startTime
            }, {
                type: 'inside'
            }],
            yAxis: {
                inverse: true,
                splitArea: {show: false},
                type: 'value',
                axisLabel: {   //Y轴数据
                    formatter: function(value) {
                        return Math.abs(value) / 10000 + ' kbps';   //负数取绝对值变正数
                    },
                    textStyle: {
                        color: '#666'
                    }
                },
            },
            grid: {
                left: 100
            },
wangqinghua's avatar
wangqinghua committed
            series: [
                {
                    name: '进口流量',
                    type: 'line',
                    stack: 'one',
                    itemStyle: itemStyle,
                    data: this.inNowEchartData.map(e => {
xiaowenjie's avatar
xiaowenjie committed
                        return e.sumValue;
wangqinghua's avatar
wangqinghua committed
                    })
                },
                {
                    name: '出口流量',
                    type: 'line',
                    stack: 'one',
                    itemStyle: itemStyle,
                    data: this.outNowEchartData.map(e => {
xiaowenjie's avatar
xiaowenjie committed
                        return -e.sumValue;
wangqinghua's avatar
wangqinghua committed
                    })
                }
            ]
        };
wangqinghua's avatar
wangqinghua committed
    }

    //页面离开
wangqinghua's avatar
wangqinghua committed
    ngOnDestroy() {
wangqinghua's avatar
wangqinghua committed
        //销毁定时任务
wangqinghua's avatar
wangqinghua committed
        if (this.time_) {
wangqinghua's avatar
wangqinghua committed
            clearInterval(this.time_);
        }
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //获取趋势数据
wangqinghua's avatar
wangqinghua committed
    getEcharts(itemid) {
wangqinghua's avatar
wangqinghua committed
        this.isLoading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            itemid: itemid,
wangqinghua's avatar
wangqinghua committed
            endTime: this.obj.endTime,
wangqinghua's avatar
wangqinghua committed
            startTime: this.obj.startTime,
wangqinghua's avatar
wangqinghua committed
            hostid: this.obj.hostid,
            groupid: this.obj.groupid,
            type: 'in',
            limit: '1000'
wangqinghua's avatar
wangqinghua committed
        };
        this.topologySer.findTrendData(data).subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                if (res.errCode == 10000) {
                    if (res.data.length > 0) {
wangqinghua's avatar
wangqinghua committed
                        this.inEchartData = res.data.map(e => {
wangqinghua's avatar
wangqinghua committed
                            const a = {
wangqinghua's avatar
wangqinghua committed
                                clock: this.datePipe.transform(e.clock, 'yyyy-MM-dd HH:mm'),
                                avg: e.avg
                            };
wangqinghua's avatar
wangqinghua committed
                            return a;
                        });
wangqinghua's avatar
wangqinghua committed
                    } else {
wangqinghua's avatar
wangqinghua committed
                        this.inEchartData = [];
wangqinghua's avatar
wangqinghua committed
                        this.message.warning('进口流量图表暂无数据');
wangqinghua's avatar
wangqinghua committed
                        this.isLoading = false;
wangqinghua's avatar
wangqinghua committed
                    }
wangqinghua's avatar
wangqinghua committed
                    data.type = 'out';
wangqinghua's avatar
wangqinghua committed
                    this.topologySer.findTrendData(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                        (res) => {
                            if (res.data.length > 0) {
wangqinghua's avatar
wangqinghua committed
                                this.outEchartData = res.data.map(e => {
wangqinghua's avatar
wangqinghua committed
                                    const d = {
wangqinghua's avatar
wangqinghua committed
                                        clock: this.datePipe.transform(e.clock, 'yyyy-MM-dd HH:mm'),
                                        avg: e.avg
                                    };
wangqinghua's avatar
wangqinghua committed
                                    return d;
                                });
wangqinghua's avatar
wangqinghua committed
                                this.setEacharts();
wangqinghua's avatar
wangqinghua committed
                            } else {
wangqinghua's avatar
wangqinghua committed
                                this.outEchartData = [];
wangqinghua's avatar
wangqinghua committed
                                this.message.warning('出口流量图表暂无数据');
wangqinghua's avatar
wangqinghua committed
                                this.isLoading = false;
wangqinghua's avatar
wangqinghua committed
                                this.setEacharts();
wangqinghua's avatar
wangqinghua committed
                            }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
                            if (this.inEchartData.length == 0 && this.outEchartData.length == 0) {
wangqinghua's avatar
wangqinghua committed
                                this.data.history = true;
wangqinghua's avatar
wangqinghua committed
                            } else {
wangqinghua's avatar
wangqinghua committed
                                this.data.history = false;
                            }
wangqinghua's avatar
wangqinghua committed
                        }
wangqinghua's avatar
wangqinghua committed
                    );
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.warning(res.errMsg);
                }
wangqinghua's avatar
wangqinghua committed
            }
        );
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //
wangqinghua's avatar
wangqinghua committed
    setEacharts() {
wangqinghua's avatar
wangqinghua committed
        let itemStyle = {
wangqinghua's avatar
wangqinghua committed
            normal: {},
wangqinghua's avatar
wangqinghua committed
            emphasis: {
                barBorderWidth: 1,
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowOffsetY: 0,
                shadowColor: 'rgba(0,0,0,0.5)'
            }
        };

wangqinghua's avatar
wangqinghua committed
        this.chartOption = {
wangqinghua's avatar
wangqinghua committed
            title: {
                text: '进出口流量峰值趋势图',
                left: 'center',
            },
wangqinghua's avatar
wangqinghua committed
            legend: {
                data: ['进口流量', '出口流量'],
                align: 'left',
                left: 10
            },
wangqinghua's avatar
wangqinghua committed
            backgroundColor: '#eee',
wangqinghua's avatar
wangqinghua committed
            tooltip: {
                // trigger: 'axis',
wangqinghua's avatar
wangqinghua committed
                formatter: (params) => {
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
                    let res = params.seriesName;
wangqinghua's avatar
wangqinghua committed
                    res += '<br/>时间:' + params.name;
                    let Mbps = 1000 * 1000;
wangqinghua's avatar
wangqinghua committed
                    let kbps = 1000;
                    let size = Math.abs(params.data);
wangqinghua's avatar
wangqinghua committed
                    if (size / Mbps > 1) {
                        res += '<br/>流量:' + (size / Mbps).toFixed(2) + 'Mbps';
                    } else if (size / kbps > 1) {
                        res += '<br/>流量:' + (size / kbps).toFixed(2) + 'kbps';
                    } else {
wangqinghua's avatar
wangqinghua committed
                        res += '<br/>流量:' + (size) + 'bps';
wangqinghua's avatar
wangqinghua committed
                    }

                    return res;
                }
            },
wangqinghua's avatar
wangqinghua committed
            xAxis: {
wangqinghua's avatar
wangqinghua committed
                data: this.inEchartData.map(e => {
                    let date = this.datePipe.transform(e.clock, 'yyyy-MM-dd HH:mm');
wangqinghua's avatar
wangqinghua committed
                    return date;
wangqinghua's avatar
wangqinghua committed
                }),
wangqinghua's avatar
wangqinghua committed
                name: '时间',
wangqinghua's avatar
wangqinghua committed
            },
wangqinghua's avatar
wangqinghua committed
            dataZoom: [{
                startValue: this.obj.startTime
            }, {
                type: 'inside'
            }],
wangqinghua's avatar
wangqinghua committed
            yAxis: {
                inverse: true,
wangqinghua's avatar
wangqinghua committed
                splitArea: {show: false},
wangqinghua's avatar
wangqinghua committed
                type: 'value',
                axisLabel: {   //Y轴数据
                    formatter: function(value) {
                        return Math.abs(value) / 10000 + ' kbps';   //负数取绝对值变正数
wangqinghua's avatar
wangqinghua committed
                    },
                    textStyle: {
                        color: '#666'
                    }
                },
wangqinghua's avatar
wangqinghua committed
            },
            grid: {
                left: 100
            },
            series: [
                {
wangqinghua's avatar
wangqinghua committed
                    name: '进口流量',
wangqinghua's avatar
wangqinghua committed
                    type: 'line',
wangqinghua's avatar
wangqinghua committed
                    stack: 'one',
                    itemStyle: itemStyle,
wangqinghua's avatar
wangqinghua committed
                    data: this.inEchartData.map(e => {
wangqinghua's avatar
wangqinghua committed
                        return e.avg;
wangqinghua's avatar
wangqinghua committed
                    })
wangqinghua's avatar
wangqinghua committed
                },
                {
wangqinghua's avatar
wangqinghua committed
                    name: '出口流量',
wangqinghua's avatar
wangqinghua committed
                    type: 'line',
wangqinghua's avatar
wangqinghua committed
                    stack: 'one',
wangqinghua's avatar
wangqinghua committed
                    itemStyle: itemStyle,
wangqinghua's avatar
wangqinghua committed
                    data: this.outEchartData.map(e => {
wangqinghua's avatar
wangqinghua committed
                        return -e.avg;
wangqinghua's avatar
wangqinghua committed
                    })
wangqinghua's avatar
wangqinghua committed
                }
            ]
        };
wangqinghua's avatar
wangqinghua committed
        this.isLoading = false;
wangqinghua's avatar
wangqinghua committed
    }

    //in改变页数
wangqinghua's avatar
wangqinghua committed
    inChnagePage(e) {
wangqinghua's avatar
wangqinghua committed
        this.inPageNum = e;
        this.getInList();
    }

    //out改变页数
wangqinghua's avatar
wangqinghua committed
    outChnagePage(e) {
wangqinghua's avatar
wangqinghua committed
        this.outPageNum = e;
        this.getOutList();
    }

wangqinghua's avatar
wangqinghua committed
    //进口流量
    getInList() {
wangqinghua's avatar
wangqinghua committed
        this.inLoading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            obj: {
wangqinghua's avatar
wangqinghua committed
                type: 'in',
                hostid: this.obj.hostid,
                startTime: this.obj.startTime,
                endTime: this.obj.endTime,
wangqinghua's avatar
wangqinghua committed
                groupid: this.obj.groupid
wangqinghua's avatar
wangqinghua committed
            },
wangqinghua's avatar
wangqinghua committed
            pageNum: this.inPageNum,
            pageCount: this.inPageCount,
wangqinghua's avatar
wangqinghua committed
        };
        this.topologySer.findTrend(data).subscribe(
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.inList = res.data.data;
                    this.inTotalNum = res.data.totalNum;
wangqinghua's avatar
wangqinghua committed
                } else {
                    this.message.warning(res.errMsg);
                }
wangqinghua's avatar
wangqinghua committed
                this.inLoading = false;
wangqinghua's avatar
wangqinghua committed
            }
        );
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //出口流量
    getOutList() {
wangqinghua's avatar
wangqinghua committed
        this.outLoading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            obj: {
wangqinghua's avatar
wangqinghua committed
                type: 'out',
wangqinghua's avatar
wangqinghua committed
                hostid: this.obj.hostid,
                startTime: this.obj.startTime,
                endTime: this.obj.endTime,
wangqinghua's avatar
wangqinghua committed
                groupid: this.obj.groupid
wangqinghua's avatar
wangqinghua committed
            },
wangqinghua's avatar
wangqinghua committed
            pageNum: this.outPageNum,
            pageCount: this.outPageCount,
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        this.topologySer.findTrend(data).subscribe(
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.outList = res.data.data;
                    this.outTotalNum = res.data.totalNum;
wangqinghua's avatar
wangqinghua committed
                } else {
                    this.message.warning(res.errMsg);
                }
wangqinghua's avatar
wangqinghua committed
                this.outLoading = false;
wangqinghua's avatar
wangqinghua committed
            }
        );
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.startTime = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 00:00:00';
                this.obj.endTime = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
                break;
            }
wangqinghua's avatar
wangqinghua committed
            case'2': {
                day1 = nowDate - 1 * 24 * 60 * 60 * 1000;
                this.obj.startTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
                this.obj.endTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
                break;
            }
wangqinghua's avatar
wangqinghua committed
            case'3': {
                day1 = nowDate - 3 * 24 * 60 * 60 * 1000;
wangqinghua's avatar
wangqinghua committed
                day2 = nowDate;
wangqinghua's avatar
wangqinghua committed
                this.obj.startTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
                this.obj.endTime = this.datePipe.transform(day2, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
                break;
            }
wangqinghua's avatar
wangqinghua committed
            case'4': {
                day1 = nowDate - 7 * 24 * 60 * 60 * 1000;
wangqinghua's avatar
wangqinghua committed
                day2 = nowDate;
wangqinghua's avatar
wangqinghua committed
                this.obj.startTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
                this.obj.endTime = this.datePipe.transform(day2, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
                break;
            }
wangqinghua's avatar
wangqinghua committed
            case'5': {
wangqinghua's avatar
wangqinghua committed
                break;
            }
        }
    }

    //搜索
wangqinghua's avatar
wangqinghua committed
    search() {
        if (this.timeType == '5') {
            this.obj.startTime = this.datePipe.transform(this.timeBegin, 'yyyy-MM-dd HH:mm:ss');
            this.obj.endTime = this.datePipe.transform(this.timeEnd, 'yyyy-MM-dd HH:mm:ss');
wangqinghua's avatar
wangqinghua committed
        }
        this.getEcharts(null);
        this.getInList();
        this.getOutList();
wangqinghua's avatar
wangqinghua committed
        this.findByTime();
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
}