From c69082e60f9b27dfd8c6cfa64af0b36ede1fade4 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期五, 05 十一月 2021 14:13:39 +0800
Subject: [PATCH] merge
---
src/pages/settings/components/CloudNode.vue | 226 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 182 insertions(+), 44 deletions(-)
diff --git a/src/pages/settings/components/CloudNode.vue b/src/pages/settings/components/CloudNode.vue
index 800651a..e99063f 100644
--- a/src/pages/settings/components/CloudNode.vue
+++ b/src/pages/settings/components/CloudNode.vue
@@ -1,7 +1,21 @@
<template>
<div class="cloud">
<div class="inner">
+ <!-- <div
+ class="rect"
+ :style="{width:`${minWidth+BaseWidth}px`,height:`${minHeight+BaseHeight}px`}"
+ >-->
<div class="rect">
+ <!-- <div
+ class="node"
+ v-for="item in insideNodes"
+ :key="item.id"
+ :style="{top:item.t+'px',left:item.l+'px'}"
+ >
+ <span class="node-icon">
+ </span>
+ <span class="node-name">{{item.nodeName}}</span>
+ </div>-->
<serfDiagram
ref="inside-nodes"
:members="insideNodes"
@@ -24,46 +38,156 @@
:startX="60"
class="outer-nodes"
></serfDiagram>
+ <!-- <div
+ class="node"
+ v-for="(item,index) in outsideNodes"
+ :key="item.id"
+ :style="{top:36*(index+1)+'px',left:60*(index+1)+'px'}"
+ >
+ <span class="node-icon"></span>
+ <span class="node-name">{{item.nodeName}}</span>
+ </div>-->
</div>
</div>
</template>
<script>
import SerfDiagram from "@/components/serfDiagram";
export default {
- name: "cloudNode",
+ name: 'cloudNode',
props: {
- nodes: Array,
+ nodes: Array
},
components: {
- SerfDiagram,
+ SerfDiagram
},
- data() {
+ data () {
return {
- agentName: "",
+ agentName: '',
nodeIcons: [],
//insideNodes: [],
BaseWidth: 150,
BaseHeight: 70,
minWidth: 0,
minHeight: 0,
- };
+ mockData: [
+ {
+ cluster_id: "b6132bfe-d3af-4710-ba89-436f614c2f46",
+ hardwareType: "01",
+ id: "DSVAD010120190622",
+ node_id: "DSVAD010120190622",
+ node_ip: "192.168.20.10:30190",
+ nodeName: "寮�鍙�20.10-1",
+ role: 'pc'
+ },
+ {
+ cluster_id: "b6132bfe-d3af-4710-ba89-436f614c2f",
+ hardwareType: "02",
+ id: "DSVAD010120190623",
+ node_id: "DSVAD010120190623",
+ node_ip: "192.168.20.10:30190",
+ nodeName: "寮�鍙戞祴璇�20.11-1",
+ role: 'master'
+ },
+ {
+ cluster_id: "b6132bfe-d3af-4710-ba89-436f614c2g",
+ hardwareType: "03",
+ id: "DSVAD010120190624",
+ node_id: "DSVAD010120190624",
+ node_ip: "192.168.20.10:30190",
+ nodeName: "娴嬭瘯20.13-1",
+ role: 'pc'
+ },
+ {
+ cluster_id: "b6132bfe-d3af-4710-ba89-436f614c2h",
+ hardwareType: "03",
+ id: "DSVAD010120190625",
+ node_id: "DSVAD010120190625",
+ node_ip: "192.168.20.10:30190",
+ nodeName: "娴嬭瘯20.101-1",
+ role: 'server'
+ },
+ {
+ cluster_id: "b6132bfe-d3af-4710-ba89-436f614cf",
+ hardwareType: "02",
+ id: "DSVAD01012019063",
+ node_id: "DSVAD01012019063",
+ node_ip: "192.168.20.10:30190",
+ nodeName: "寮�鍙戞祴璇�20.15-1",
+ role: 'master'
+ },
+ {
+ cluster_id: "b6132bfe-d3af-710-ba89-436f614cf",
+ hardwareType: "02",
+ id: "DSVAD0101201906",
+ node_id: "DSVAD0101209063",
+ node_ip: "192.168.20.10:30190",
+ nodeName: "k20.15-128437586",
+ role: 'master'
+ },
+ {
+ cluster_id: "b612bfe-d3af-710-ba89-436f614cf",
+ hardwareType: "02",
+ id: "DSVAD010120906",
+ node_id: "DSVAD010120963",
+ node_ip: "192.168.20.107:30190",
+ nodeName: "kfl20.15-127586",
+ role: 'master'
+ },
+ {
+ cluster_id: "b6132bfe-d3af-710-ba89-436f614cf",
+ hardwareType: "02",
+ id: "DSVAD0101201906",
+ node_id: "DSVAD001209063",
+ node_ip: "192.168.20.10:30190",
+ nodeName: "k20.15-128437586",
+ role: 'master'
+ },
+ {
+ cluster_id: "b612bfe-d3af-710-ba89-436f614cf",
+ hardwareType: "02",
+ id: "DSVAD01010906",
+ node_id: "DSVAD012063",
+ node_ip: "192.168.20.107:30190",
+ nodeName: "kfl20.15-127586",
+ role: 'master'
+ },
+ {
+ cluster_id: "b6132bfe-d3af-710-ba89-436f614cf",
+ hardwareType: "02",
+ id: "DSVAD0101201906",
+ node_id: "DSVAD0012063",
+ node_ip: "192.168.20.10:30190",
+ nodeName: "k20.15-128437586",
+ role: 'master'
+ },
+ {
+ cluster_id: "b612bfe-d3af-710-ba89-436f614cf",
+ hardwareType: "02",
+ id: "DSVAD01010906",
+ node_id: "DSVAD01012063",
+ node_ip: "192.168.20.107:30190",
+ nodeName: "kfl20.15-127586",
+ role: 'master'
+ },
+ ]
+ }
},
- mounted() {
- console.log(this.nodes);
+ mounted () {
+ console.log(this.nodes)
//this.getInsideNodes();
},
methods: {
- getRandom(index) {
+ getRandom (index) {
if (index % 2 == 0) {
- return Math.random() * 20;
+ return Math.random() * 20
} else {
- return Math.random() * 50;
+ return Math.random() * 50
}
},
- getInsideNodes() {
- let arr = this.nodes.filter(
- (item) => item.hardwareType == "01" || item.hardwareType == "02"
- );
+ getInsideNodes () {
+ //return this.nodes.filter(item=>item.hardwareType=='01'||item.hardwareType=='02');
+ //return this.mockData.filter(item => item.hardwareType == '01' || item.hardwareType == '02');
+ let arr = this.nodes.filter(item => item.hardwareType == '01' || item.hardwareType == '02');
let len = arr.length;
let lefts = [];
let tops = [];
@@ -75,55 +199,69 @@
t: 30 * (index + 1),
nodeName: item.nodeName,
id: item.id,
- workType: item.workType,
- };
+ workType: item.workType
+ }
});
this.minWidth = Math.max(...lefts) - Math.min(...lefts);
this.minHeight = Math.max(...tops) - Math.min(...tops);
- console.log("w,h", this.minWidth, this.minHeight);
+ console.log('w,h', this.minWidth, this.minHeight);
},
},
computed: {
- cloudPic() {
- return "/images/settings/cloud.png";
+ cloudPic () {
+ return '/images/settings/cloud.png'
},
- insideNodes() {
- return this.nodes.filter(
- (item) => item.hardwareType == "01" || item.hardwareType == "02"
- );
+ insideNodes () {
+ return this.nodes.filter(item => item.hardwareType == '01' || item.hardwareType == '02');
},
- insideSizeX() {
- return 160 + 200 * 0.2 * this.insideNodes.length <= 400
- ? 160 + 200 * 0.2 * this.insideNodes.length
- : 400;
+ insideSizeX () {
+ return 160 + 200 * 0.2 * (this.insideNodes.length) <= 400 ? 160 + 200 * 0.2 * (this.insideNodes.length) : 400;
},
- insideSizeY() {
- return 140 + 200 * 0.2 * this.insideNodes.length <= 380
- ? 140 + 200 * 0.2 * this.insideNodes.length
- : 380;
+ insideSizeY () {
+ return 140 + 200 * 0.2 * (this.insideNodes.length) <= 380 ? 140 + 200 * 0.2 * (this.insideNodes.length) : 380;
},
- insideStartX() {
- return this.insideSizeX / 3;
+ insideStartX () {
+ return this.insideSizeX / 3
},
- outsideNodes() {
- return this.nodes.filter((item) => item.hardwareType == "03");
- },
- },
-};
+ // insideNodes () {
+ // //return this.nodes.filter(item=>item.hardwareType=='01'||item.hardwareType=='02');
+ // //return this.mockData.filter(item => item.hardwareType == '01' || item.hardwareType == '02');
+ // let arr = this.mockData.filter(item => item.hardwareType == '01' || item.hardwareType == '02');
+ // let len = arr.length;
+ // let lefts = [];
+ // let tops = [];
+ // let temp = arr.map((item,index)=>{
+ // lefts.push((20-len)*(index+1));
+ // tops.push(30*(index+1));
+ // return {
+ // l: (20-len)*(index+1),
+ // t: 30*(index+1),
+ // nodeName: item.nodeName,
+ // id: item.id,
+ // workType: item.workType
+ // }
+ // });
+ // return temp;
+ // },
+ outsideNodes () {
+ return this.nodes.filter(item=>item.hardwareType=='03');
+ //return this.mockData.filter(item => item.hardwareType == '03');
+ }
+ }
+}
</script>
<style lang="scss">
.cloud {
width: 100%;
display: flex;
.inner {
- background: url("/images/settings/easy-cloud.png") no-repeat;
+ background: url('/images/settings/easy-cloud.png') no-repeat;
background-size: 100%;
- margin-top: -55px;
- margin-left: 55px;
-
+ margin-top: -80px;
.rect {
+ //background: rgba(176, 203, 253, 0.3);
position: relative;
- margin: 130px 100px 70px;
+ margin: 130px 100px 100px;
.node {
position: absolute;
.node-icon {
--
Gitblit v1.8.0