| 
					
				 | 
			
			
				@@ -13,16 +13,24 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div class="tagBox"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class="cont-line tagP" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class="cont-line" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           :class="{ clicktag: tagChoose == index }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           v-for="(item, index) in tagList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           :key="index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           @click="tagClick(item, index)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @mouseover="startCounting(OpensclTrue?`(${item.ied_name})${item.ied_desc}`:`(${item.ied_name})${item.desc})`)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @mouseleave="clearCounting" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <span v-if="!OpensclTrue">{{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            `(${item.ied_name})${item.desc}` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <span v-else>{{ `(${item.ied_name})${item.ied_desc}` }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="tagP"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <span v-if="!OpensclTrue">{{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              `(${item.ied_name})${item.desc}` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <span v-else>{{ `(${item.ied_name})${item.ied_desc}` }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <!-- 左下角全名提示 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <!-- <div class="tooltips" v-if="istooltip && tagChoose == index"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             {{ nametip }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div class="setting"> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -78,6 +86,11 @@ const props = defineProps({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     type: Array, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     default: () => [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  upName: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //用于判断上传的cid是否产生变化,如有变化清空装置列表的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    type: String, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    default: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const emit = defineEmits(["treeBack", "clickCode", "treeBackDefalut"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let tagList = ref(props.iedRelation); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -222,7 +235,7 @@ const codeStatic = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ied_name: names, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     comptype: "u", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if(!res) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!res) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   updateNum(treeData.value, res.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const updateNum = (treeNode, data) => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -232,7 +245,7 @@ const updateNum = (treeNode, data) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (data && data.hasOwnProperty(node.itemcode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       node.num = parseInt(data[node.itemcode]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (data && node.itemcode == "scd.ied.Relation"&&data["scd.ied.ExtRef"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (data && node.itemcode == "scd.ied.Relation" && data["scd.ied.ExtRef"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       node.num = parseInt(data["scd.ied.ExtRef"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 如果当前节点有子节点,递归处理子节点 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -244,7 +257,7 @@ const updateNum = (treeNode, data) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         .reduce((total, child) => total + child.num, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  loading.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loading.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let defaultProps = ref({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   label: "label", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -314,26 +327,38 @@ const reload = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       tagList.value = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       tagChoose.value = res.data ? Object.keys(res.data)[0] : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       clickTage.value = res.data ? Object.values(res.data)[0] : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      emit("treeBack", clickTage.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      emit("treeBack", clickTage.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const clickTage = ref(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const tagClick = (row, num) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  loading.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  treeData.value.forEach(item=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+watch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  () => props.upName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (newValue) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (newValue) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      results(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//重置装置列表数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const results = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  treeData.value.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     item.num = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     item.childItemCid = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(item.children){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      item.children.forEach(key=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        key.num=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (item.children) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.children.forEach((key) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        key.num = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         key.childItemCid = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const tagClick = (row, num) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loading.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  results(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tagChoose.value = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   clickTage.value = row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  emit("treeBack", row) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  emit("treeBack", row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // cid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   //   .findFile({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   //     scd_id: route.query.id, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -360,12 +385,12 @@ const tagClick = (row, num) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   //         emit("treeBack", row, fileInfo[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   //       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   let a = res.data.filter((item) => item.type_name == "CID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   if (a.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     needName.value = a[0].file_name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     emit("treeBack", needName.value, a[0].id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   let a = res.data.filter((item) => item.type_name == "CID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   if (a.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     needName.value = a[0].file_name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     emit("treeBack", needName.value, a[0].id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (props.OpensclTrue) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     codeStatic(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -385,6 +410,19 @@ const handleNodeClick = (e) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   clickItemcode.value = e.itemcode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   emit("clickCode", e.itemcode, e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const nametip = ref(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const istooltip = ref(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const startCounting = (nametips) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  nametip.value =nametips; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    istooltip.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 1500); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const clearCounting = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  istooltip.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  nametip.value = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tagChoose.value = props.iedRelation ? Object.keys(props.iedRelation)[0] : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   clickTage.value = props.iedRelation 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -438,8 +476,9 @@ h3 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   overflow: hidden; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   text-overflow: ellipsis; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   white-space: nowrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  margin-top: 8px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  margin-top: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   font-size: 16px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .setting { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   width: 92%; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -485,6 +524,7 @@ h3 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .cont-line, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 :deep(.el-tree-node__label) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   color: #1a2447; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   font-size: 14px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .clicktag { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -493,4 +533,12 @@ h3 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .tree-label { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   color: #134bea; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.tooltips { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  border: 1px solid #000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  background: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  bottom: -57px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  right:0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  z-index: 999; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </style> 
			 |