From d451e7b7570a523bf0f397fa376be8d929f2492b Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期六, 17 十月 2020 13:42:53 +0800
Subject: [PATCH] 集群节点移入效果更新
---
src/pages/settings/components/CloudNode.vue | 2
src/components/serfDiagram/index.vue | 96 ++++++++++++++++++++++++++----------------------
2 files changed, 53 insertions(+), 45 deletions(-)
diff --git a/src/components/serfDiagram/index.vue b/src/components/serfDiagram/index.vue
index 9358571..4f69b58 100644
--- a/src/components/serfDiagram/index.vue
+++ b/src/components/serfDiagram/index.vue
@@ -19,7 +19,7 @@
<script>
import D3Network from "./vue-d3-network";
import RoleIcon from "./icons.js";
-
+
export default {
name: "SerfDiagram",
components: {
@@ -32,7 +32,7 @@
sizeY: Number,
startX: Number
},
- data() {
+ data () {
return {
nodeSize: 20,
fontSize: 20,
@@ -45,7 +45,7 @@
};
},
computed: {
- nodes() {
+ nodes () {
let n = new Array();
this.members.forEach((v, i) => {
n.push({
@@ -60,14 +60,14 @@
: ""
});
});
-
+
return n;
},
- links() {
+ 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:
@@ -87,7 +87,7 @@
// is me? skip
continue;
}
-
+
if (!dup["d" + target + i]) {
arr.push({ sid: i, tid: target });
dup["d" + i + target] = 1;
@@ -95,10 +95,10 @@
}
}
}
-
+
return arr;
},
- options() {
+ options () {
return {
force: 3000,
nodeSize: this.nodeSize,
@@ -117,71 +117,71 @@
};
}
},
- created() {
+ created () {
this.reset();
},
methods: {
- nodeHover(event, node) {
+ nodeHover (event, node) {
console.log(node);
node._opacity = 1;
node._size = 28;
- let width = document.body.clientWidth;
+ //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";
-
+ this.toolTipStyle.top = node.y - 60 + "px";
+ this.toolTipStyle.left = node.x + "px";
+
this.toolTipNode = this.members[node.id].nodeName;
this.toolTipAddr = this.members[node.id].Address;
},
- nodeOut(event, node) {
+ nodeOut (event, node) {
node._opacity = node.opacity;
node._size = node.size;
this.toolTipStyle.display = "none";
},
- dragStart(event) {
+ dragStart (event) {
if (event) {
this.movement = event.timeStamp;
}
},
- nodeClick(event, node) {
+ 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(event, node)
debugger
if (event.timeStamp - this.movement < 200) {
this.$emit("selected-node", event, this.members[node.id]);
}
},
- reset() {
+ reset () {
this.nodeSelected = {};
this.linksSelected = {};
(this.toolTipNode = ""), (this.toolTipAddr = ""), (this.movement = 0);
},
- unSelectNode(nodeId) {
+ unSelectNode (nodeId) {
if (this.nodeSelected[nodeId]) {
delete this.nodeSelected[nodeId];
}
this.selectNodesLinks();
},
- unSelectLink(linkId) {
+ unSelectLink (linkId) {
if (this.linksSelected[linkId]) {
delete this.linksSelected[linkId];
}
},
- selectNode(node) {
+ selectNode (node) {
this.nodeSelected[node.id] = node;
},
- selectLink(link) {
+ selectLink (link) {
this.$set(this.linksSelected, link.id, link);
},
- selectNodesLinks() {
+ selectNodesLinks () {
for (let link of this.links) {
// node is nodeSelected
if (this.nodeSelected[link.sid] || this.nodeSelected[link.tid]) {
@@ -200,7 +200,7 @@
height: 100%;
margin: 0;
}
-
+
.node {
/* stroke: rgba(18, 120, 98, 0.7); */
stroke: rgba(76, 78, 78, 0.7);
@@ -210,51 +210,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;
@@ -263,7 +263,7 @@
font-size: 11px;
padding-left: 5px;
}
-
+
.arrow_box p {
height: 30px;
line-height: 30px;
@@ -272,26 +272,34 @@
}
.arrow_box:after,
.arrow_box:before {
- right: 100%;
- top: 50%;
+ right: 50%;
+ top: 100%;
border: solid transparent;
- content: " ";
+ content: ' ';
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
-
+
.arrow_box:after {
border-color: rgba(136, 183, 213, 0);
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: 5px;
margin-top: -5px;
}
.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;
+ transform: translateY(6px) rotateZ(-90deg);
}
</style>
\ No newline at end of file
diff --git a/src/pages/settings/components/CloudNode.vue b/src/pages/settings/components/CloudNode.vue
index 64a3082..b5f68e6 100644
--- a/src/pages/settings/components/CloudNode.vue
+++ b/src/pages/settings/components/CloudNode.vue
@@ -197,7 +197,7 @@
// return temp;
// },
outsideNodes () {
- return this.mockData.filter(item=>item.hardwareType=='03');
+ return this.nodes.filter(item=>item.hardwareType=='03');
//return this.nodes.filter(item => item.hardwareType == '03');
}
}
--
Gitblit v1.8.0