From 4a800a8fc83c6bd1f86a8e847b079a51a7532c09 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 20 七月 2022 15:05:58 +0800 Subject: [PATCH] 修复国标配置的bug --- src/pages/systemSettings/components/CloudNode.vue | 226 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 182 insertions(+), 44 deletions(-) diff --git a/src/pages/systemSettings/components/CloudNode.vue b/src/pages/systemSettings/components/CloudNode.vue index 800651a..e99063f 100644 --- a/src/pages/systemSettings/components/CloudNode.vue +++ b/src/pages/systemSettings/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