From b7910c466590801340009151986959bba76e0308 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Sat, 22 Apr 2023 14:24:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8A=82=E7=82=B9=E7=BC=96?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/RichText.js | 15 ++++++++------- simple-mind-map/src/Style.js | 4 ++-- simple-mind-map/src/TextEdit.js | 7 ++++--- simple-mind-map/src/utils/nodeCreateContents.js | 5 +++++ 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/simple-mind-map/src/RichText.js b/simple-mind-map/src/RichText.js index f419f151..284a8674 100644 --- a/simple-mind-map/src/RichText.js +++ b/simple-mind-map/src/RichText.js @@ -65,14 +65,15 @@ class RichText { .ql-container.ql-snow { border: none; } + + .smm-richtext-node-wrap p { + font-family: auto; + } + + .smm-richtext-node-edit-wrap p { + font-family: auto; + } ` - // .smm-richtext-node-wrap p { - // display: flex; - // } - - // .smm-richtext-node-edit-wrap p { - // display: flex; - // } this.styleEl = document.createElement('style') this.styleEl.type = 'text/css' this.styleEl.innerHTML = cssText diff --git a/simple-mind-map/src/Style.js b/simple-mind-map/src/Style.js index 72f109c9..b0f95fd3 100644 --- a/simple-mind-map/src/Style.js +++ b/simple-mind-map/src/Style.js @@ -120,11 +120,11 @@ class Style { } // html文字节点 - domText(node, fontSizeScale = 1, textLines) { + domText(node, fontSizeScale = 1, isMultiLine) { node.style.fontFamily = this.merge('fontFamily') node.style.fontSize = this.merge('fontSize') * fontSizeScale + 'px' node.style.fontWeight = this.merge('fontWeight') || 'normal' - node.style.lineHeight = textLines === 1 ? 'normal' : this.merge('lineHeight') + node.style.lineHeight = !isMultiLine ? 'normal' : this.merge('lineHeight') node.style.fontStyle = this.merge('fontStyle') } diff --git a/simple-mind-map/src/TextEdit.js b/simple-mind-map/src/TextEdit.js index adb2c9de..80d7e90b 100644 --- a/simple-mind-map/src/TextEdit.js +++ b/simple-mind-map/src/TextEdit.js @@ -110,7 +110,8 @@ export default class TextEdit { let lineHeight = node.style.merge('lineHeight') let fontSize = node.style.merge('fontSize') let textLines = (this.cacheEditingText || node.nodeData.data.text).split(/\n/gim) - node.style.domText(this.textEditNode, scale, textLines.length) + let isMultiLine = node._textData.node.attr('data-ismultiLine') === 'true' + node.style.domText(this.textEditNode, scale, isMultiLine) this.textEditNode.style.zIndex = this.mindMap.opt.nodeTextEditZIndex this.textEditNode.innerHTML = textLines.join('
') this.textEditNode.style.minWidth = rect.width + 10 + 'px' @@ -119,8 +120,8 @@ export default class TextEdit { this.textEditNode.style.top = rect.top + 'px' this.textEditNode.style.display = 'block' this.textEditNode.style.maxWidth = this.mindMap.opt.textAutoWrapWidth * scale + 'px' - if (textLines.length > 1 && lineHeight !== 1) { - this.textEditNode.style.transform = `translateY(${-((lineHeight * fontSize - fontSize) / 2 - 2) * scale}px)` + if (isMultiLine && lineHeight !== 1) { + this.textEditNode.style.transform = `translateY(${-((lineHeight * fontSize - fontSize) / 2) * scale}px)` } this.showTextEdit = true // 选中文本 diff --git a/simple-mind-map/src/utils/nodeCreateContents.js b/simple-mind-map/src/utils/nodeCreateContents.js index 9c507af1..4e729947 100644 --- a/simple-mind-map/src/utils/nodeCreateContents.js +++ b/simple-mind-map/src/utils/nodeCreateContents.js @@ -96,6 +96,7 @@ function createTextNode() { let textStyle = this.style.getTextFontStyle() let textArr = this.nodeData.data.text.split(/\n/gim) let maxWidth = this.mindMap.opt.textAutoWrapWidth + let isMultiLine = false textArr.forEach((item, index) => { let arr = item.split('') let lines = [] @@ -113,6 +114,9 @@ function createTextNode() { if (line.length > 0) { lines.push(line.join('')) } + if (lines.length > 1) { + isMultiLine = true + } textArr[index] = lines.join('\n') }) textArr = textArr.join('\n').split(/\n/gim) @@ -127,6 +131,7 @@ function createTextNode() { height = Math.ceil(height) g.attr('data-width', width) g.attr('data-height', height) + g.attr('data-ismultiLine', isMultiLine || textArr.length > 1) return { node: g, width,