From 355de6d28489e9ff3d17138575c2fef32266930e Mon Sep 17 00:00:00 2001 From: hanbaoshan <hanbaoshan@aiotlink.com> Date: 星期四, 15 十月 2020 16:13:08 +0800 Subject: [PATCH] 应用中心未安装算法图标修复,集群节点展示组件更新 --- src/components/serfDiagram/index.vue | 165 +++++++++---------------------------------------------- 1 files changed, 27 insertions(+), 138 deletions(-) diff --git a/src/components/serfDiagram/index.vue b/src/components/serfDiagram/index.vue index 544fb8a..179f7d8 100644 --- a/src/components/serfDiagram/index.vue +++ b/src/components/serfDiagram/index.vue @@ -2,7 +2,6 @@ .net d3-network( ref='net' - v-if="nodes.length" :net-nodes="nodes" :net-links="links" :options="options" @@ -12,42 +11,12 @@ @node-hover='nodeHover' @node-out='nodeOut' ) - .clouds(v-if="members.length") - //- d3-network( - //- ref='net' - //- v-if="outerNodes.length" - //- :net-nodes="outerNodes" - //- :net-links="links" - //- :options="options" - //- :selection="{nodes: nodeSelected, links: linksSelected}" - //- @drag-start='dragStart' - //- @node-click='nodeClick' - //- @node-hover='nodeHover' - //- @node-out='nodeOut' - //- ) - .inner - d3-network( - ref='net' - v-if="innerNodes.length" - :net-nodes="innerNodes" - :net-links="links" - :options="options" - :selection="{nodes: nodeSelected, links: linksSelected}" - @drag-start='dragStart' - @node-click='nodeClick' - @node-hover='nodeHover' - @node-out='nodeOut' - ) - - - - </template> - + <script> import D3Network from "./vue-d3-network"; import RoleIcon from "./icons.js"; - + export default { name: "SerfDiagram", components: { @@ -56,7 +25,6 @@ props: { agent: String, members: Array, - searchNodes: Array, }, data() { return { @@ -71,72 +39,9 @@ }; }, computed: { - //鍒嗙被鑺傜偣 - //1.浜戝唴鑺傜偣(瀵瑰簲X86) - innerNodes(){ - // return this.members.map(item=>{ - // if(item.hardwareType == '01'||item.hardwareType == '02'){ - // return { - // id:item.id, - // name:item.nodeName, - // svgSym: RoleIcon[item.role], - // _color: - // this.agent === v.nodeName - // ? "red" - // : v.role === "master" - // ? "orange" - // : "" - // } - // } - // }) - let arr = []; - this.members.forEach(item=>{ - if(item.hardwareType == '01'||item.hardwareType == '02'){ - arr.push({ - id:item.id, - cluster_id:item.cluster_id, - name:item.nodeName, - svgSym: RoleIcon[item.role], - _color: - this.agent === item.nodeName - ? "red" - : item.role === "master" - ? "orange" - : "" - }); - } - }); - console.log(this.members); - console.log(arr) - return arr; - }, - //2.杈硅妭鐐�(鐜板搴攂it) - outerNodes(){ - let arr = []; - this.members.forEach(item=>{ - debugger - if(item.hardwareType == '03'){ - arr.push({ - id:item.id, - cluster_id:item.cluster_id, - name:item.nodeName, - svgSym: RoleIcon[item.role], - _color: - this.agent === item.nodeName - ? "red" - : item.role === "master" - ? "orange" - : "" - }); - } - }); - console.log(this.members); - console.log(arr) - return arr; - }, nodes() { let n = new Array(); - this.searchNodes.forEach((v, i) => { + this.members.forEach((v, i) => { n.push({ id: i, name: v.nodeName, @@ -149,14 +54,14 @@ : "" }); }); - console.log(n) + return n; }, links() { let arr = new Array(); let dup = new Array(); // Deduplicate to ensure that two nodes have only one line const count = this.members.length; - + switch (count) { case 0: case 1: @@ -176,7 +81,7 @@ // is me? skip continue; } - + if (!dup["d" + target + i]) { arr.push({ sid: i, tid: target }); dup["d" + i + target] = 1; @@ -184,7 +89,7 @@ } } } - + return arr; }, options() { @@ -205,11 +110,6 @@ created() { this.reset(); }, - mounted(){ - console.log(this.members) - console.log('innerNodes',this.innerNodes); - console.log('outerNodes',this.outerNodes) - }, methods: { nodeHover(event, node) { console.log(node); @@ -219,9 +119,9 @@ this.toolTipStyle.display = "block"; this.toolTipStyle.top = node.y - 10 + "px"; this.toolTipStyle.left = node.x + width / 2 - 30 + "px"; - - //this.toolTipNode = this.members[node.id].nodeName; - //this.toolTipAddr = this.members[node.id].Address; + + this.toolTipNode = this.members[node.id].nodeName; + this.toolTipAddr = this.members[node.id].Address; }, nodeOut(event, node) { node._opacity = node.opacity; @@ -239,13 +139,12 @@ // // is not nodeSelected // } else { // this.selectNode(node) - + // } // this.selectNodesLinks() // this.$set(this.nodes, node.index, node) console.log(event,node) - console.log(this.members) - console.log(this.members[node.id]) + debugger if (event.timeStamp - this.movement < 200) { this.$emit("selected-node", event, this.members[node.id]); } @@ -285,13 +184,13 @@ } }; </script> - + <style> .net { height: 100%; margin: 0; } - + .node { /* stroke: rgba(18, 120, 98, 0.7); */ stroke: rgba(76, 78, 78, 0.7); @@ -301,51 +200,51 @@ /* fill: #dcfaf3; */ fill: #e3e4e4; } - + .node.selected { stroke: #caa455; } - + .node.pinned { stroke: rgba(190, 56, 93, 0.6); } - + .link { stroke: rgba(18, 120, 98, 0.3); } - + .link, .node { stroke-linecap: round; } - + .link:hover, .node:hover { stroke: #df8108; stroke-width: 1px; cursor: pointer; } - + .link.selected { stroke: rgba(202, 164, 85, 0.6); } - + .curve { fill: none; } - + .link-label, .node-label { /* fill: #127862; */ fill: rgba(76, 78, 78, 0.7); } - + .link-label { -webkit-transform: translateY(-0.5em); transform: translateY(-0.5em); text-anchor: middle; } - + .arrow_box { position: absolute; background: #fff; @@ -354,7 +253,7 @@ font-size: 11px; padding-left: 5px; } - + .arrow_box p { height: 30px; line-height: 30px; @@ -372,7 +271,7 @@ position: absolute; pointer-events: none; } - + .arrow_box:after { border-color: rgba(136, 183, 213, 0); border-right-color: #fff; @@ -385,14 +284,4 @@ border-width: 6px; margin-top: -6px; } -.clouds{ - height: 100%; - margin:0; - background:rgba(149, 221, 255, 0.322); -} -.inner{ - height:300px; - margin: 50px auto; - background:rgb(201 233 249); -} -</style> +</style> \ No newline at end of file -- Gitblit v1.8.0