From 3fc7f383b437b6c579b625f83639c864b33b97fa Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 15 十一月 2024 14:35:33 +0800 Subject: [PATCH] add:1版本 --- src/components/equ-add-form.vue | 17 +++ src/views/area/chart-itm.vue | 46 +++++++++ src/views/area/tj-container.vue | 8 + src/views/area/server-info.vue | 18 +++ src/views/screen1/components/chart-itm.vue | 89 +++++++++++++++-- src/components/bridge.vue | 67 ++++++++++++- src/views/screen1/itm-left.vue | 4 src/views/area/main-container.vue | 1 8 files changed, 227 insertions(+), 23 deletions(-) diff --git a/src/components/bridge.vue b/src/components/bridge.vue index 773d0b8..31873e3 100644 --- a/src/components/bridge.vue +++ b/src/components/bridge.vue @@ -72,7 +72,9 @@ class="device-info" @click="show_info = false" > - <div class="title">接口</div> + <div class="info-container"> + <div class="info-block"> + <div class="title">上一次信息</div> <div class="each"> <div class="label">网络连接性:</div> <div class="value">{{ current_show_info.status }}</div> @@ -108,6 +110,47 @@ <div class="each"> <div class="label">操作系统:</div> <div class="value">{{ current_show_info.clhwOperating_System }}</div> + </div> + </div> + <div class="info-block"> + <div class="title">当前信息</div> + <div class="each"> + <div class="label">网络连接性:</div> + <div class="value">{{ current_show_info.status }}</div> + </div> + <div class="each"> + <div class="label">IP地址:</div> + <div class="value">{{ current_show_info.ip || "" }}</div> + </div> + <div class="each"> + <div class="label">Mac:</div> + <div class="value">{{ current_show_info.mac }}</div> + </div> + <div class="each"> + <div class="label">桥架端口:</div> + <div class="value">{{ current_show_info.networkPort }}</div> + </div> + <div class="each"> + <div class="label">交换机名字:</div> + <div class="value">{{ current_show_info.switchName }}</div> + </div> + <div class="each"> + <div class="label">交换机端口:</div> + <div class="value">{{ current_show_info.port }}</div> + </div> + <div class="each"> + <div class="label">名称:</div> + <div class="value">{{ current_show_info.clhwName }}</div> + </div> + <div class="each"> + <div class="label">类型:</div> + <div class="value">{{ current_show_info.clhwTier }}</div> + </div> + <div class="each"> + <div class="label">操作系统:</div> + <div class="value">{{ current_show_info.clhwOperating_System }}</div> + </div> + </div> </div> <div class="button-to-switch" @click="toSwitchInfo(index)">交换机</div> <div class="button-del-port" @click="delPort(index)">删除</div> @@ -434,11 +477,15 @@ background-image: url("../assets/area/device-info-bg.svg"); /* background-color: #a6c6e5; */ background-size: 100% 100%; - height: 24.4rem; - width: 29rem; + //height: 24.4rem; + height: 39.4rem; + //width: 29rem; + width: 49rem; position: absolute; - top: -31.5rem; - transform: translate(-50%, 0%); + //top: -31.5rem; + top: -46.5rem; + //transform: translate(-50%, 0%); + transform: translate(-48%, 0%); left: 50%; z-index: 120; padding: 3.1rem; @@ -571,4 +618,14 @@ background-image: url("../assets/area/space-text-gray.svg") !important; } } + +.info-container { + display: flex; + justify-content: space-between; +} + +.info-block { + width: 45%; /* Adjust the width as needed */ +} + </style> \ No newline at end of file diff --git a/src/components/equ-add-form.vue b/src/components/equ-add-form.vue index a3be8e9..b216911 100644 --- a/src/components/equ-add-form.vue +++ b/src/components/equ-add-form.vue @@ -220,6 +220,23 @@ this.open = !this.open; } }, + openConfigform(code, cabinetName) { + if (this.open) { + this.open = !this.open; + } else { + //展开,显示表格 + this.locInfo = {}; + this.selectcode = code; + console.log("this.locInfo", this.locInfo); + this.name = cabinetName; + this.port = this.locInfo.port || ""; + this.networkPort = this.locInfo.name || ""; + this.macAddress = this.locInfo.macAddress || ""; + this.ipAddress = this.locInfo.ipAddress || ""; + + this.open = !this.open; + } + }, }, watch: { code(newval, oldval) { diff --git a/src/views/area/chart-itm.vue b/src/views/area/chart-itm.vue index 7a45094..439448e 100644 --- a/src/views/area/chart-itm.vue +++ b/src/views/area/chart-itm.vue @@ -13,6 +13,14 @@ <div class="chart-status-dot red"></div> <div class="chart-status-desc">异常连接数</div> </div> + <div class="flex1 flex tooltip"> + <div class="chart-status-dot blue"></div> + <div class="chart-status-desc">从有到无</div> + </div> + <div class="flex1 flex tooltip"> + <div class="chart-status-dot purple"></div> + <div class="chart-status-desc">从无到有</div> + </div> </div> <div class="sub-div"></div> <div class="chart-itm-equ-echarts" :id="eid"></div> @@ -62,7 +70,7 @@ radius: ["55%", "68%"], center: ["50%", "55%"], // radius: "75%", - avoidLabelOverlap: false, + avoidLabelOverlap: true, itemStyle: { borderRadius: 10, borderColor: "#fff", @@ -146,6 +154,42 @@ }, }, }, + { + value: this.info.beSomething || 0, + // name: "异常连接数", + itemStyle: { + normal: { + color: new echarts.graphic.LinearGradient(0.2, 1, 0.3, 0, [ + { + offset: 1, + color: "rgba(52, 90, 255, 1)", + }, + { + offset: 0, + color: "rgba(241, 76, 3, 1)", + }, + ]), + }, + }, + }, + { + value: this.info.beNothing || 0, + // name: "异常连接数", + itemStyle: { + normal: { + color: new echarts.graphic.LinearGradient(0.2, 1, 0.3, 0, [ + { + offset: 1, + color: "rgba(128, 0, 128, 1)", + }, + { + offset: 0, + color: "rgba(241, 76, 3, 1)", + }, + ]), + }, + }, + }, ], }, ], diff --git a/src/views/area/main-container.vue b/src/views/area/main-container.vue index 0bcef3c..48c0a43 100644 --- a/src/views/area/main-container.vue +++ b/src/views/area/main-container.vue @@ -328,7 +328,6 @@ this.$refs.equAddForm && this.$refs.equAddForm.openform(locInfo); }, async showServeInfo(info) { - debugger; //展示交换机全部端口 console.log("showServeInfo", info); //弹出框展示全部端口,并且每个端口的情况 diff --git a/src/views/area/server-info.vue b/src/views/area/server-info.vue index e978738..7266b40 100644 --- a/src/views/area/server-info.vue +++ b/src/views/area/server-info.vue @@ -65,6 +65,7 @@ <el-dialog append-to-body :modal="false" :visible.sync="dialog_activateSwitchPorts" title="交换机端口情况" class="dialog_activateSwitchPorts"> + <div><el-button type="primary" @click="click_item_add" style="margin-bottom:6rem" >新增</el-button></div> <div v-for="(infos, index2) of activateSwitchPorts" :key="index2" class="port-items"> <div class="port-item" v-for="(item, index) of infos" :key="index"> <div :key="index" class="space-text" :class="[ @@ -113,7 +114,8 @@ </el-table> </el-dialog> - + <equ-add-form ref="equAddForm" :code="code" :areas="areas" :init_device_list="device_list" + @update="update_map"></equ-add-form> </div> </template> <script> @@ -141,6 +143,7 @@ serve_info: {}, serve_select:{}, code:"", + cabinetName:"", }, //根据 //后端存储的是世界坐标,初次时候也是世界坐标,最小单位为0.01吧,这个间距或者大小,不考虑实际像素 @@ -152,6 +155,8 @@ dialog_activateSwitchPorts: false, activateSwitchPorts:{}, switchAllDetialInfos:[], + areas: [], + device_list: [], // serve_info: {}, }; @@ -162,6 +167,10 @@ console.log("this.serve_select:",this.serve_select) }, mounted() { + getAreaTjData().then((res) => { + // console.log('areas',res.switchAreaInfo || []) + this.areas = res.switchAreaInfo || []; + }); }, destroyed() { @@ -169,7 +178,6 @@ }, methods: { async showServeInfo(info) { - debugger; //展示交换机全部端口 console.log("showServeInfo", info); //弹出框展示全部端口,并且每个端口的情况 @@ -202,6 +210,12 @@ } // console.log("this.activateSwitchPorts", this.activateSwitchPorts); this.dialog_activateSwitchPorts = true; + this.cabinetName = info.cabinetName; + }, + click_item_add() { + console.log("this.$refs.equAddForm", this.$refs.equAddForm); + console.log("this.areas", this.areas); + this.$refs.equAddForm && this.$refs.equAddForm.openConfigform(this.code,this.cabinetName); }, }, }; diff --git a/src/views/area/tj-container.vue b/src/views/area/tj-container.vue index 35f069e..0fed85d 100644 --- a/src/views/area/tj-container.vue +++ b/src/views/area/tj-container.vue @@ -24,6 +24,14 @@ <div class="num r">{{ info.alarm || 0 }}</div> <div class="desc2">故障</div> </div> + <div class="container-equ-num-item"> + <div class="num r">{{ info.beSomething || 0 }}</div> + <div class="desc2">从有到无</div> + </div> + <div class="container-equ-num-item"> + <div class="num r">{{ info.beNothing || 0 }}</div> + <div class="desc2">从无到有</div> + </div> </div> <div class="tj-line"></div> diff --git a/src/views/screen1/components/chart-itm.vue b/src/views/screen1/components/chart-itm.vue index b2509d5..b369457 100644 --- a/src/views/screen1/components/chart-itm.vue +++ b/src/views/screen1/components/chart-itm.vue @@ -7,11 +7,19 @@ </div> <div class="flex1 flex tooltip"> <div class="chart-status-dot yellow"></div> - <div class="chart-status-desc">>警告设备</div> + <div class="chart-status-desc">警告设备</div> </div> <div class="flex1 flex tooltip"> <div class="chart-status-dot red"></div> <div class="chart-status-desc">异常设备</div> + </div> + <div class="flex1 flex tooltip"> + <div class="chart-status-dot blue"></div> + <div class="chart-status-desc">从有到无</div> + </div> + <div class="flex1 flex tooltip"> + <div class="chart-status-dot purple"></div> + <div class="chart-status-desc">从无到有</div> </div> </div> <div class="sub-div"></div> @@ -45,14 +53,16 @@ methods: { initChart() { var value = 0.56; - var v1 = 0, v2 = 0, v3 = 0; + var v1 = 0, v2 = 0, v3 = 0,v4 = 0,v5 = 0; for (var item of this.areas) { - v1 += parseInt(item.areaStatic.normal || 0) - v2 += parseInt(item.areaStatic.warn || 0) - v3 += parseInt(item.areaStatic.alarm || 0) + v1 += parseInt(item.areaStatic.normal || 0); + v2 += parseInt(item.areaStatic.warn || 0); + v3 += parseInt(item.areaStatic.alarm || 0); + v4 += parseInt(item.areaStatic.beSomething || 0); + v5 += parseInt(item.areaStatic.beNothing || 0); } - this.total = v1 + v2 + v3 - // console.log('v1', v1, v2, v3) + this.total = v1 + v2 + v3 + v4 + v5 + console.log('v1', v1, 'v2', v2, 'v3', v3, 'v4', v4, 'v5', v5); this.option = { tooltip: { @@ -63,11 +73,12 @@ { // name: 'Access From', type: "pie", - silent: "ture", + minAngle: 0, // 最小角度设置为0.01度 + silent: true, radius: ["55%", "68%"], center: ["50%", "55%"], // radius: "75%", - avoidLabelOverlap: false, + avoidLabelOverlap: true, itemStyle: { borderRadius: 10, borderColor: "#fff", @@ -79,6 +90,11 @@ align: "left", color: "rgba(108, 153, 190, 1)", + labelLine: { + show: true, + length: 5, // 引导线长度 + length2: 10 // 第二段引导线长度 + }, // rich: { // time: { // fontSize: 10, @@ -95,7 +111,13 @@ fontWeight: "bold", }, }, - + // data: [ + // { value: v1, itemStyle: { normal: this.getGradient("rgba(150, 222, 194, 1)", "rgba(6, 188, 117, 1)") } }, + // { value: v2, itemStyle: { normal: this.getGradient("rgba(236, 197, 13, 1)", "rgba(221, 175, 1, 1)") } }, + // { value: v3, itemStyle: { normal: this.getGradient("rgba(249, 109, 0, 1)", "rgba(241, 76, 3, 1)") } }, + // { value: v4, itemStyle: { normal: this.getGradient("rgba(249, 109, 0, 1)", "rgba(241, 76, 3, 1)") } }, + // { value: v5, itemStyle: { normal: this.getGradient("rgba(128, 0, 128, 1)", "rgba(241, 76, 3, 1)") } } + // ] data: [ { value: v1, @@ -134,7 +156,7 @@ }, }, { - value: v3, + value: parseInt(v3), // name: "异常连接数", itemStyle: { normal: { @@ -142,6 +164,40 @@ { offset: 1, color: "rgba(249, 109, 0, 1)", + }, + { + offset: 0, + color: "rgba(241, 76, 3, 1)", + }, + ]), + }, + }, + }, + { + value: parseInt(v4), + itemStyle: { + normal: { + color: new echarts.graphic.LinearGradient(0.2, 1, 0.3, 0, [ + { + offset: 1, + color: "rgba(52, 90, 255, 1)", + }, + { + offset: 0, + color: "rgba(241, 76, 3, 1)", + }, + ]), + }, + }, + }, + { + value: parseInt(v5), + itemStyle: { + normal: { + color: new echarts.graphic.LinearGradient(0.2, 1, 0.3, 0, [ + { + offset: 1, + color: "rgba(128, 0, 128, 1)", }, { offset: 0, @@ -175,13 +231,13 @@ position: relative; .tooltips { - width: 21rem; + width: 100%; height: 2.25rem; background: #e3edf8; border-radius: 1.42rem; position: absolute; bottom: -3rem; - left: calc((100% - 21rem) / 2); + //left: calc((100% - 21rem) / 2); .tooltip { margin: 0 auto; @@ -208,6 +264,13 @@ background: rgba(223, 177, 2, 1); } + .chart-status-dot.blue { + background: rgba(52, 90, 255, 1); + } + + .chart-status-dot.purple { + background: rgba(128, 0, 128, 1); + } .chart-status-desc { font-size: 1rem; font-family: PingFangSC-Regular, PingFang SC; diff --git a/src/views/screen1/itm-left.vue b/src/views/screen1/itm-left.vue index a11097a..3f2cce1 100644 --- a/src/views/screen1/itm-left.vue +++ b/src/views/screen1/itm-left.vue @@ -90,7 +90,9 @@ this.$router.push({path: "/area", query: {code: res.areaCode, networkPort: res.networkPort || ''}}); } else { - this.$message.warning('未找到对应区域') + // this.$message.warning('未找到对应区域') + await this.$modal.confirm('未找到对应区域是否前往交换机机柜引导页面?') + this.$router.push({path: "/switch-board"}); } } }, -- Gitblit v1.9.3