From 38c6966d13abeb16f6ed52a71c7e2e3e9a2a55e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E8=A7=92=E5=B0=8F=E6=9E=97?= <1013335014@qq.com> Date: Fri, 26 Jul 2024 16:39:19 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E7=A7=BB=E5=8A=A8=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E4=B8=94=E8=8A=82=E7=82=B9=E5=B1=82=E7=BA=A7=E5=8F=91?= =?UTF-8?q?=E7=94=9F=E4=BA=86=E6=94=B9=E5=8F=98=EF=BC=8C=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E8=BF=87=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AF=8C=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E7=9A=84=E8=8A=82=E7=82=B9=E4=B8=8D=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E6=9B=B4=E6=96=B0=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/core/render/Render.js | 4 ++++ simple-mind-map/src/plugins/RichText.js | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index 6b69610c..d984310b 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -1264,6 +1264,10 @@ class Render { // 如果是富文本模式,那么某些层级变化需要更新样式 checkNodeLayerChange(node, toNode, toNodeIsParent = false) { if (this.mindMap.richText) { + // 如果设置了自定义样式那么不需要更新 + if (this.mindMap.richText.checkNodeHasCustomRichTextStyle(node)) { + return + } const toIndex = toNodeIsParent ? toNode.layerIndex + 1 : toNode.layerIndex let nodeLayerChanged = (node.layerIndex === 1 && toIndex !== 1) || diff --git a/simple-mind-map/src/plugins/RichText.js b/simple-mind-map/src/plugins/RichText.js index f172557e..448fa328 100644 --- a/simple-mind-map/src/plugins/RichText.js +++ b/simple-mind-map/src/plugins/RichText.js @@ -666,6 +666,25 @@ class RichText { } } + // 检查指定节点是否存在自定义的富文本样式 + checkNodeHasCustomRichTextStyle(node) { + const list = [ + 'fontFamily', + 'fontSize', + 'fontWeight', + 'fontStyle', + 'textDecoration', + 'color' + ] + const nodeData = node.getData() + for (let i = 0; i < list.length; i++) { + if (nodeData[list[i]] !== undefined) { + return true + } + } + return false + } + // 将所有节点转换成非富文本节点 transformAllNodesToNormalNode() { if (!this.mindMap.renderer.renderTree) return