From d7c6e0d1ec18f391243f77eb62bcb111378cb40f Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期一, 21 十二月 2020 10:13:46 +0800
Subject: [PATCH] 修复清空关联设备分组默认选中第一个添加执行条件
---
src/components/serfDiagram/index.vue | 121 +++++++++++++++++++++++----------------
1 files changed, 71 insertions(+), 50 deletions(-)
diff --git a/src/components/serfDiagram/index.vue b/src/components/serfDiagram/index.vue
index f8ad4fd..945e15d 100644
--- a/src/components/serfDiagram/index.vue
+++ b/src/components/serfDiagram/index.vue
@@ -1,5 +1,7 @@
<template lang='pug'>
.net
+ .arrow_box(:style="toolTipStyle")
+ p {{toolTipAddr}}
d3-network(
ref='net'
:startX="startX"
@@ -10,14 +12,14 @@
@drag-start='dragStart'
@node-click='nodeClick'
@node-hover='nodeHover'
- @node-out='nodeOut'
+ @node-out='nodeOut'
)
</template>
<script>
import D3Network from "./vue-d3-network";
import RoleIcon from "./icons.js";
-
+
export default {
name: "SerfDiagram",
components: {
@@ -28,7 +30,8 @@
members: Array,
sizeX: Number,
sizeY: Number,
- startX: Number
+ startX: Number,
+ isShowHover: Boolean
},
data() {
return {
@@ -38,7 +41,8 @@
toolTipStyle: {
display: "none",
height: "30px",
- width: "120px"
+ width: "186px",
+ borderColor: "#ccc"
}
};
},
@@ -51,21 +55,20 @@
name: v.nodeName,
svgSym: RoleIcon[v.role],
_color:
- this.agent === v.nodeName
- ? "red"
- : v.role === "master"
- ? "orange"
- : ""
+ v.role === "master"
+ ? "orange"
+ : ""
+
});
});
-
+
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:
@@ -85,7 +88,7 @@
// is me? skip
continue;
}
-
+
if (!dup["d" + target + i]) {
arr.push({ sid: i, tid: target });
dup["d" + i + target] = 1;
@@ -93,7 +96,7 @@
}
}
}
-
+
return arr;
},
options() {
@@ -123,13 +126,33 @@
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";
-
- this.toolTipNode = this.members[node.id].nodeName;
- this.toolTipAddr = this.members[node.id].Address;
+ //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})`;
+ }
+
},
nodeOut(event, node) {
node._opacity = node.opacity;
@@ -142,17 +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)
- debugger
if (event.timeStamp - this.movement < 200) {
this.$emit("selected-node", event, this.members[node.id]);
}
@@ -197,8 +209,9 @@
.net {
height: 100%;
margin: 0;
+ position: relative;
}
-
+
.node {
/* stroke: rgba(18, 120, 98, 0.7); */
stroke: rgba(76, 78, 78, 0.7);
@@ -208,70 +221,70 @@
/* 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;
/* border: 1px solid #127862; */
- border: 1px solid rgba(76, 78, 78, 0.7);
+ border: 1px solid #ccc;
font-size: 11px;
padding-left: 5px;
}
-
+
.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;
@@ -279,17 +292,25 @@
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
--
Gitblit v1.8.0