Skip to content
line.component.ts 4.87 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, OnInit} from '@angular/core';
import {TopologyService} from '../../topology.service';
import {LocalStorageService} from 'ngx-webstorage';
import {NzMessageService} from 'ng-zorro-antd';

declare let editor: any;
@Component({
    selector: 'smart-line',
    templateUrl: './line.component.html',
    styles: []
})
export class LineComponent implements OnInit {

    isLine = false;
    hostIds = [];
wangqinghua's avatar
wangqinghua committed
    itemId = [];  //第一个进口流量,第二个出口流量
wangqinghua's avatar
wangqinghua committed

    inPageNum = 1;
    outPageNum = 1;
    inPageCount = 10;
    outPageCount = 10;

    totalNum;

    inList;
wangqinghua's avatar
wangqinghua committed
    inSelect;
wangqinghua's avatar
wangqinghua committed
    inSearchName;
wangqinghua's avatar
wangqinghua committed

    outList;
wangqinghua's avatar
wangqinghua committed
    outSelect;
wangqinghua's avatar
wangqinghua committed
    outSearchName;
wangqinghua's avatar
wangqinghua committed

    constructor(private topologySer: TopologyService, private message: NzMessageService, private localStorage: LocalStorageService,) {
    }

    //in
wangqinghua's avatar
wangqinghua committed
    incurrentPageDataChange($event: Array<{ kchecked: boolean }>): void {
wangqinghua's avatar
wangqinghua committed
        this.inList = $event;
    }

    inselectItem(item,e){
        if(e){
wangqinghua's avatar
wangqinghua committed
            const arr = this.inList.map(data=>{
                return data.itemId;
            });
            const old = this.inSelect;
           if(old){
               const index = arr.indexOf(old.itemId);
               this.inList[index].checked = false;
           }
wangqinghua's avatar
wangqinghua committed
            this.inSelect = item;
        }else{
            this.inSelect = null;
        }
    }

    indeleteSelect(index){
        this.inSelect = null;
    }

    changePageIn(e){
wangqinghua's avatar
wangqinghua committed
        this.inPageNum = e;
        this.getInList();
wangqinghua's avatar
wangqinghua committed
    }

    //out

    outcurrentPageDataChange($event: Array<{ key1: string; key2: number; key3: string; key4: string; checked: boolean }>): void {
wangqinghua's avatar
wangqinghua committed
        this.outList = $event;
wangqinghua's avatar
wangqinghua committed
    }

    outselectItem(item,e){
        if(e){
wangqinghua's avatar
wangqinghua committed
            const arr = this.outList.map(data=>{
                return data.itemId;
            });
            const old = this.outSelect;
            if(old){
                const index = arr.indexOf(old.itemId);
                this.outList[index].checked = false;
            }
wangqinghua's avatar
wangqinghua committed
            this.outSelect = item;
        }else{
            this.outSelect = null;
        }
    }

    outdeleteSelect(index){
        this.outSelect = null;
    }

    changePageOut(e){
wangqinghua's avatar
wangqinghua committed
        this.outPageNum = e;
        this.getOutList();
wangqinghua's avatar
wangqinghua committed
    }

    ngOnInit() {

    }

wangqinghua's avatar
wangqinghua committed
    showModal(linkObj) {
        this.hostIds = linkObj.hostIds;  //线条上的主机id;
wangqinghua's avatar
wangqinghua committed
        if(linkObj.itemId && linkObj.itemId.length > 0){
wangqinghua's avatar
wangqinghua committed
            this.itemId = linkObj.itemId.split(',');   //线条上的监测点id;
        }
wangqinghua's avatar
wangqinghua committed
        this.isLine = true;
        this.getInList();
wangqinghua's avatar
wangqinghua committed
        this.getOutList();
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //查询进口流量
wangqinghua's avatar
wangqinghua committed
    getInList(){
        const data = {
wangqinghua's avatar
wangqinghua committed
            hostIds:this.hostIds,
wangqinghua's avatar
wangqinghua committed
            search:this.inSearchName,
wangqinghua's avatar
wangqinghua committed
            type:"in",
            pageNum:this.inPageNum,
            pageCount:this.inPageCount
        }
        this.topologySer.findFlowItemByHost(data).subscribe(
            (res)=>{
                this.totalNum = res.data.totalNum;
                this.inList = res.data.data;
wangqinghua's avatar
wangqinghua committed
                this.inList.forEach(e=>{   //进口流量回显
wangqinghua's avatar
wangqinghua committed
                    if(e.itemId == this.itemId[0]){
wangqinghua's avatar
wangqinghua committed
                        e.checked = true;
wangqinghua's avatar
wangqinghua committed
                        this.inSelect = e;
wangqinghua's avatar
wangqinghua committed
                    }else{
                        e.checked = false;
wangqinghua's avatar
wangqinghua committed
                    }
                })
wangqinghua's avatar
wangqinghua committed
    //查询出口流量
wangqinghua's avatar
wangqinghua committed
    getOutList(){
        const data = {
wangqinghua's avatar
wangqinghua committed
            hostIds:this.hostIds,
wangqinghua's avatar
wangqinghua committed
            search:this.outSearchName,
wangqinghua's avatar
wangqinghua committed
            type:"out",
            pageNum:this.outPageNum,
            pageCount:this.outPageCount
        }
        this.topologySer.findFlowItemByHost(data).subscribe(
            (res)=>{
                this.totalNum = res.data.totalNum;
                this.outList = res.data.data;
wangqinghua's avatar
wangqinghua committed
                this.outList.forEach(e=>{
wangqinghua's avatar
wangqinghua committed
                    if(e.itemId == this.itemId[1]){  //出口流量回显
wangqinghua's avatar
wangqinghua committed
                        e.checked = true;
wangqinghua's avatar
wangqinghua committed
                        this.outSelect = e;
wangqinghua's avatar
wangqinghua committed
                    }else{
                        e.checked = false;
wangqinghua's avatar
wangqinghua committed
                    }
                })
wangqinghua's avatar
wangqinghua committed
            }
        )

    }

    //进出口流量
    handleLineCancel() {
wangqinghua's avatar
wangqinghua committed
        this.initForm();
wangqinghua's avatar
wangqinghua committed
        localStorage.setItem("line",'false');
    }

    handleLineOk() {
wangqinghua's avatar
wangqinghua committed
        if(this.inSelect && !this.outSelect){
            this.message.warning("必须选择一组!");
            return false;
        }
        if(!this.inSelect && this.outSelect){
            this.message.warning("必须选择一组!");
            return false;
        }
wangqinghua's avatar
wangqinghua committed
        editor.utils.setLink(this.inSelect,this.outSelect);
        localStorage.setItem("line",'false');
wangqinghua's avatar
wangqinghua committed
        this.initForm();
wangqinghua's avatar
wangqinghua committed
    }

    initForm(){
wangqinghua's avatar
wangqinghua committed
        this.inList = [];
        this.outList = [];
wangqinghua's avatar
wangqinghua committed
        this.itemId = [];
wangqinghua's avatar
wangqinghua committed
        this.inSelect = null;
        this.outSelect = null;
wangqinghua's avatar
wangqinghua committed
        this.inSearchName = null;
        this.outSearchName = null;
wangqinghua's avatar
wangqinghua committed
        this.isLine = false;
    }

}