From 34b28e36a7a754803deaf6ec0c3d210cc5fc67c0 Mon Sep 17 00:00:00 2001 From: yaojn Date: Tue, 3 Jun 2025 11:33:31 +0800 Subject: [PATCH] =?UTF-8?q?-=20[=E4=BF=AE=E5=A4=8D]=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E9=80=89=E4=B8=AD=E8=8A=82=E7=82=B9=E5=90=8E=EF=BC=8C=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E7=BA=BF=E6=9C=AA=E8=83=BD=E5=9B=9E=E6=98=BE=E8=87=B3?= =?UTF-8?q?=E5=85=88=E5=89=8D=E8=AE=BE=E7=BD=AE=E7=9A=84=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/alerttopo/alerttopo-editor.vue | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/pages/alerttopo/alerttopo-editor.vue b/pages/alerttopo/alerttopo-editor.vue index 4d202c0..b1bf0fa 100644 --- a/pages/alerttopo/alerttopo-editor.vue +++ b/pages/alerttopo/alerttopo-editor.vue @@ -400,19 +400,33 @@ export default { }, highlightEdge(edge, action) { if (edge && edge.isEdge()) { + const lineClassName = edge.getAttrByPath('line/class'); + if (lineClassName) { + /** + * 保存连线的默认 CSS class 名称。 + * 此操作目的在于,后续执行取消高亮操作时,能够基于该默认 class 名称将连线样式恢复至初始状态。 + * 注意:当连线模式为非常规线时,连线元素不会包含该 class 名称, + * 所以仅在连线为默认颜色时,才会对该 class 名称进行存储。 + */ + edge.setAttrByPath('line/data-default-class', lineClassName); + } edge.setAttrByPath('line/class', 'line-' + action); edge.setAttrByPath('line/targetMarker/class', 'marker-' + action); } }, unHighlightEdge(edge) { if (edge && edge.isEdge()) { - const edgeClass = edge.getAttrByPath('line/stroke'); - if (edgeClass) { - edge.setAttrByPath('line/class', edgeClass); - edge.setAttrByPath('line/targetMarker/class', edgeClass); - } else { + const dataDefaultClass = edge.getAttrByPath('line/data-default-class'); + if (dataDefaultClass) { + /** + * 此操作在取消连线高亮状态后执行。 + * 目的是将连线的颜色从高亮样式恢复到其初始的默认颜色,确保连线外观与未高亮时一致。 + */ edge.setAttrByPath('line/class', 'line'); edge.setAttrByPath('line/targetMarker/class', 'marker'); + } else { + edge.setAttrByPath('line/class', null); + edge.setAttrByPath('line/targetMarker/class', null); } } }, -- Gitee