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