mspp4.vue 6.03 KB
Newer Older
全球's avatar
全球 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
<template>
    <div class="mspp4-bg">
        <div class="port-wrapper">
            <div class="port-container part1">
                <div class="port-area">
                    <interface v-for="item in ifList1"
                               :key="item.ifNum"
                               :item="item"
                               :if-type="ifType"
                               :data-set="dataSet"
                               class="port-item"
                               :class="{
                                   'icon-gray-port-bg-color':item.class === 'icon-gray-port' ? true : false,
                                   'icon-green-port-bg-color':item.class === 'icon-green-port' ? true : false,
                                   'icon-blue-port-bg-color':item.class === 'icon-blue-port' ? true : false,
                               }"
                               @right-click="rightClick"
                               @pop-up-click="handlePopUp"
                    >
                    </interface>
                </div>
            </div>
            <div class="port-container part2">
                <div class="port-area">
                    <interface v-for="item in ifList2"
                               :key="item.ifNum"
                               :item="item"
                               :if-type="ifType"
                               :data-set="dataSet"
                               class="port-item"
                               :class="{
                                   'icon-gray-port-bg-color':item.class === 'icon-gray-port' ? true : false,
                                   'icon-green-port-bg-color':item.class === 'icon-green-port' ? true : false,
                                   'icon-blue-port-bg-color':item.class === 'icon-blue-port' ? true : false,
                               }"
                               @right-click="rightClick"
                               @pop-up-click="handlePopUp"
                    >
                    </interface>
                </div>
            </div>
            <div class="port-container part3">
                <div class="port-area">
                    <interface v-for="item in ifList3"
                               :key="item.ifNum"
                               :item="item"
                               :if-type="ifType"
                               :data-set="dataSet"
                               class="port-item"
                               :class="{
                                   'icon-gray-port-bg-color':item.class === 'icon-gray-port' ? true : false,
                                   'icon-green-port-bg-color':item.class === 'icon-green-port' ? true : false,
                                   'icon-blue-port-bg-color':item.class === 'icon-blue-port' ? true : false,
                               }"
                               @right-click="rightClick"
                               @pop-up-click="handlePopUp"
                    >
                    </interface>
                </div>
            </div>
            <div class="port-container part4">
                <div class="port-area">
                    <interface v-for="item in ifList4"
                               :key="item.ifNum"
                               :item="item"
                               :if-type="ifType"
                               :data-set="dataSet"
                               class="port-item"
                               :class="{
                                   'icon-gray-port-bg-color':item.class === 'icon-gray-port' ? true : false,
                                   'icon-green-port-bg-color':item.class === 'icon-green-port' ? true : false,
                                   'icon-blue-port-bg-color':item.class === 'icon-blue-port' ? true : false,
                               }"
                               @right-click="rightClick"
                               @pop-up-click="handlePopUp"
                    >
                    </interface>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
import Interface from '../../interface/interface'
export default {
    name: "mspp4",
    props: {
        ifList: {
            type: Array,
            required: true
        },
        ifType: {
            type: String
        },
        dataSet:{
            type: Object,
            default: function () {
                return {devId: '',ifType:'',vpnName:'' }
            }
        }
    },
    methods: {
        rightClick(item) {
            this.$emit('right-click',item)
        },
        handlePopUp(item,event){
            this.$emit('pop-up-click',item,event)
        }
    },
    components:{Interface},
    computed: {
        ifList1() {
            return this.ifList.filter(item => parseInt(item.ifNum) === 0)
        },
        ifList2() {
            return this.ifList.filter(item => parseInt(item.ifNum) === 1)
        },
        ifList3() {
            return this.ifList.filter(item => parseInt(item.ifNum) === 2)
        },
        ifList4() {
            return this.ifList.filter(item => parseInt(item.ifNum) === 3)
        }
    }
}
</script>

<style lang="scss">
.mspp4-bg {
    height: 76px;
    width: 280px;
    background: url("../../../../assets/actualView/HIM-MSP4P.png");
    position: absolute;
    .port-wrapper {
        height: 100%;
        display: flex;
        padding-left: 32px;
        padding-top: 45px;
        .port-container {
            height: 23px;
            width: 32px;
            background: #ffffff;
            border: 1px solid #8b8b8b;
            padding: 1px 2px;
            margin-top: 2px;
            &.part1,&.part3 {
                margin-right: 24px;
            }
            &.part2 {
                margin-right: 26px;
            }
            .port-area {
                display: flex;
                .port-item {
                    display: block;
                    height: 19px;
                    width: 26px;
                    background: #9e9e9d;
                    border: 1px solid #17191b;
                }
            }
        }
    }
}
</style>