|
@@ -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>
|