| | |
| | | .net |
| | | d3-network( |
| | | ref='net' |
| | | v-if="nodes.length" |
| | | :net-nodes="nodes" |
| | | :net-links="links" |
| | | :options="options" |
| | |
| | | @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> |
| | |
| | | props: { |
| | | agent: String, |
| | | members: Array, |
| | | searchNodes: Array, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }; |
| | | }, |
| | | 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.边节点(现对应bit) |
| | | 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, |
| | |
| | | : "" |
| | | }); |
| | | }); |
| | | console.log(n) |
| | | |
| | | return n; |
| | | }, |
| | | links() { |
| | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | // 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]); |
| | | } |
| | |
| | | border-right-color: #323333; |
| | | 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> |