From 44a3abe105e9b9b4d1a7173772fc9d18c9b59529 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期六, 18 九月 2021 16:24:02 +0800
Subject: [PATCH] 应用中心ui改动
---
src/components/serfDiagram/index.vue | 212 ++++++++++++++++------------------------------------
1 files changed, 65 insertions(+), 147 deletions(-)
diff --git a/src/components/serfDiagram/index.vue b/src/components/serfDiagram/index.vue
index 544fb8a..945e15d 100644
--- a/src/components/serfDiagram/index.vue
+++ b/src/components/serfDiagram/index.vue
@@ -1,8 +1,10 @@
<template lang='pug'>
.net
+ .arrow_box(:style="toolTipStyle")
+ p {{toolTipAddr}}
d3-network(
ref='net'
- v-if="nodes.length"
+ :startX="startX"
:net-nodes="nodes"
:net-links="links"
:options="options"
@@ -10,40 +12,10 @@
@drag-start='dragStart'
@node-click='nodeClick'
@node-hover='nodeHover'
- @node-out='nodeOut'
+ @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";
@@ -56,7 +28,10 @@
props: {
agent: String,
members: Array,
- searchNodes: Array,
+ sizeX: Number,
+ sizeY: Number,
+ startX: Number,
+ isShowHover: Boolean
},
data() {
return {
@@ -66,90 +41,27 @@
toolTipStyle: {
display: "none",
height: "30px",
- width: "120px"
+ width: "186px",
+ borderColor: "#ccc"
}
};
},
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,
svgSym: RoleIcon[v.role],
_color:
- this.agent === v.nodeName
- ? "red"
- : v.role === "master"
- ? "orange"
- : ""
+ v.role === "master"
+ ? "orange"
+ : ""
+
});
});
- console.log(n)
+
return n;
},
links() {
@@ -195,9 +107,13 @@
nodeLabels: true,
canvas: this.canvas,
linkWidth: 0,
+ // size: {
+ // w: 745,
+ // h: 426
+ // }
size: {
- w: 745,
- h: 426
+ w: this.sizeX || 445,
+ h: this.sizeY || 426
}
};
}
@@ -205,23 +121,38 @@
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);
node._opacity = 1;
node._size = 28;
- let width = document.body.clientWidth;
- this.toolTipStyle.display = "block";
- this.toolTipStyle.top = node.y - 10 + "px";
- this.toolTipStyle.left = node.x + width / 2 - 30 + "px";
+ //let width = document.body.clientWidth;
+ if (this.isShowHover) {
+ this.toolTipStyle.display = "block";
+ this.toolTipStyle.top = node.y - 60 + "px";
+ this.toolTipStyle.left = node.x + "px";
+ console.log(this.members[node.id]);
+ let workName = '';
+ switch (this.members[node.id].workType) {
+ case '01':
+ workName = '鍒嗘瀽'
+ break;
+ case '02':
+ workName = '瀛樺偍'
+ break;
+ case '03':
+ workName = '鍒嗘瀽+瀛樺偍'
+ break;
+ case '04':
+ workName = '搴旂敤'
+ break;
+ default:
+ return;
+ }
+ this.toolTipNode = this.members[node.id].nodeName;
+ this.toolTipAddr = `${this.members[node.id].Address}(${workName})`;
+ }
- //this.toolTipNode = this.members[node.id].nodeName;
- //this.toolTipAddr = this.members[node.id].Address;
},
nodeOut(event, node) {
node._opacity = node.opacity;
@@ -234,18 +165,6 @@
}
},
nodeClick(event, node) {
- // if (this.nodeSelected[node.id]) {
- // this.unSelectNode(node.id)
- // // 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])
if (event.timeStamp - this.movement < 200) {
this.$emit("selected-node", event, this.members[node.id]);
}
@@ -285,11 +204,12 @@
}
};
</script>
-
+
<style>
.net {
height: 100%;
margin: 0;
+ position: relative;
}
.node {
@@ -350,7 +270,7 @@
position: absolute;
background: #fff;
/* border: 1px solid #127862; */
- border: 1px solid rgba(76, 78, 78, 0.7);
+ border: 1px solid #ccc;
font-size: 11px;
padding-left: 5px;
}
@@ -358,13 +278,13 @@
.arrow_box p {
height: 30px;
line-height: 30px;
- width: 100px;
+ width: 100%;
overflow: hidden;
}
.arrow_box:after,
.arrow_box:before {
- right: 100%;
- top: 50%;
+ right: 50%;
+ top: 100%;
border: solid transparent;
content: " ";
height: 0;
@@ -378,21 +298,19 @@
border-right-color: #fff;
border-width: 5px;
margin-top: -5px;
+ transform: translateY(6px) rotateZ(-90deg);
}
.arrow_box:before {
border-color: rgba(194, 225, 245, 0);
border-right-color: #323333;
- border-width: 6px;
- margin-top: -6px;
+ border-width: 5px;
+ margin-top: -5px;
}
-.clouds{
- height: 100%;
- margin:0;
- background:rgba(149, 221, 255, 0.322);
+.arrow_box:before {
+ border-color: rgba(194, 225, 245, 0);
+ border-right-color: #323333;
+ border-width: 5px;
+ margin-top: -5px;
+ transform: translateY(6px) rotateZ(-90deg);
}
-.inner{
- height:300px;
- margin: 50px auto;
- background:rgb(201 233 249);
-}
-</style>
+</style>
\ No newline at end of file
--
Gitblit v1.8.0