| 
					
				 | 
			
			
				@@ -7,10 +7,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         v-for="item in leftList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :key="item.ref_ied_id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :ref="`termina${item.ref_ied_id}_arrow${item.ref_type}`" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @click="changeTermina(item.ref_ied_name)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <span class="small_icon"></span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="small_terminal_font"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <span>{{ item.ied_name }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <span>{{ item.ref_ied_name }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <span>{{ item.ref_ied_desc }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -31,11 +32,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         class="small_terminal" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         v-for="item in rightList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :key="item.ref_ied_id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @click="changeTermina(item.ref_ied_name)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :ref="`termina${item.ref_ied_id}_arrow${item.ref_type}`" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <span class="small_icon"></span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="small_terminal_font"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <span>{{ item.ied_name }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <span>{{ item.ref_ied_name }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <span>{{ item.ref_ied_desc }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -143,7 +145,7 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   mounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 将设备列表分成两份 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.listArr = JSON.parse(JSON.stringify(this.relation.list)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // console.log("this.relation", this.relation.list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log("this.relation", this.relation.list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // console.log("listArr", this.listArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 对数组进项处理 双向箭头的type为2,其他不变 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const formatArr = this.processArray(this.listArr); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -156,27 +158,53 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // console.log("leftList", this.leftList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // console.log("rightList", this.rightList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // this.$nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 调用画线方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // this.setLeaderline() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.$nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // console.log('this.lineArr',this.lineArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 调用画线方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (this.lineArr.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.setLeaderline(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 循环画线 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // line.color = '#51637F'; // 颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // line.size=2         //宽度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // line.path = 'straight'  //类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // line.endPlug = 'arrow1'   //箭头 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    relation(nv, ov) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 先清除之前的线条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.lineArr.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       this.lineArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //重新处理数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.listArr = JSON.parse(JSON.stringify(this.relation.list)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log("this.relation", this.relation.list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const formatArr = this.processArray(this.listArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const arrlenght = formatArr.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const long1 = Math.ceil(arrlenght / 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.leftList = [...formatArr.splice(0, long1)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.rightList = [...formatArr.splice(0)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log('leftList',this.leftList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.setLeaderline() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   beforeDestroy() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 需要在跳转页面之前销毁连线 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // console.log(this.line); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.lineArr.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       item.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.lineArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.$emit("getLineArr", this.lineArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 画线函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     setLeaderline() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.lineArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log('this.lineArr',this.lineArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (this.lineArr.length > 0) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // this.lineArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       //线条样式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const lineStyle0 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         color: "#51637F", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -184,12 +212,6 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         path: "straight", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         endPlug: "arrow1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // const lineStyle1 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   color: "#51637F", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   size: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   path: "straight", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   startPlug: "arrow1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const lineStyle2 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         color: "#134BEA", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         size: 2, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -203,18 +225,19 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (key !== "terminaBig") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const start = this.$refs.terminaBig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const endDom = this.$refs[key][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          let line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let line; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (key.includes("arrow0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             line = new LeaderLine(start, endDom, lineStyle0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            line = new LeaderLine(start, endDom, lineStyle0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } else if (key.includes("arrow1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             line = new LeaderLine(endDom, start, lineStyle0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            line = new LeaderLine(endDom, start, lineStyle0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } else if (key.includes("arrow2")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             line = new LeaderLine(start, endDom, lineStyle2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            line = new LeaderLine(start, endDom, lineStyle2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           //  保存进数组,方便进行遍历删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           this.lineArr.push(line); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log('this.lineArr',this.lineArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.$emit("getLineArr", this.lineArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // list数组处理函数 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -238,6 +261,12 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // 将 uniqueObjects 中的值转为数组并返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return Object.values(uniqueObjects); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 点击设备切换函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    changeTermina(id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 点击的设备的id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log("refId = ", id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$emit("changeRelation", id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 |