diff --git a/simple-mind-map/package.json b/simple-mind-map/package.json index ccc51ff0..8a58a94a 100644 --- a/simple-mind-map/package.json +++ b/simple-mind-map/package.json @@ -1,6 +1,6 @@ { "name": "simple-mind-map", - "version": "0.6.11", + "version": "0.6.11-fix.1", "description": "一个简单的web在线思维导图", "authors": [ { diff --git a/simple-mind-map/src/plugins/MiniMap.js b/simple-mind-map/src/plugins/MiniMap.js index ed4a99d3..a4033584 100644 --- a/simple-mind-map/src/plugins/MiniMap.js +++ b/simple-mind-map/src/plugins/MiniMap.js @@ -1,4 +1,4 @@ -import { isWhite, isTransparent } from '../utils/index' +import { isWhite, isTransparent, getVisibleColorFromTheme } from '../utils/index' // 小地图插件 class MiniMap { @@ -84,7 +84,7 @@ class MiniMap { let shape = svg.findOne('.smm-node-shape') let fill = shape.attr('fill') if (isWhite(fill) || isTransparent(fill)) { - shape.attr('fill', this.getDefaultFill()) + shape.attr('fill', getVisibleColorFromTheme(this.mindMap.themeConfig)) } svg.clear() svg.add(shape) @@ -98,18 +98,6 @@ class MiniMap { } } - // 计算默认的填充颜色 - getDefaultFill() { - let { lineColor, root, second, node } = this.mindMap.themeConfig - let list = [lineColor, root.fillColor, root.color, second.fillColor, second.color, node.fillColor, node.color, root.borderColor, second.borderColor, node.borderColor] - for(let i = 0; i < list.length; i++) { - let color = list[i] - if (!isTransparent(color) && !isWhite(color)) { - return color - } - } - } - // 小地图鼠标按下事件 onMousedown(e) { this.isMousedown = true diff --git a/simple-mind-map/src/plugins/RichText.js b/simple-mind-map/src/plugins/RichText.js index 2652428f..ef74be49 100644 --- a/simple-mind-map/src/plugins/RichText.js +++ b/simple-mind-map/src/plugins/RichText.js @@ -1,7 +1,7 @@ import Quill from 'quill' import 'quill/dist/quill.snow.css' import html2canvas from 'html2canvas' -import { walk, getTextFromHtml } from '../utils' +import { walk, getTextFromHtml, isWhite, getVisibleColorFromTheme } from '../utils' import { CONSTANTS } from '../constants/constant' let extended = false @@ -176,11 +176,12 @@ class RichText { } // 使用节点的填充色,否则如果节点颜色是白色的话编辑时看不见 let bgColor = node.style.merge('fillColor') + let color = node.style.merge('color') this.textEditNode.style.marginLeft = `-${paddingX * scaleX}px` this.textEditNode.style.marginTop = `-${paddingY * scaleY}px` this.textEditNode.style.zIndex = this.mindMap.opt.nodeTextEditZIndex this.textEditNode.style.backgroundColor = - bgColor === 'transparent' ? '#fff' : bgColor + bgColor === 'transparent' ? isWhite(color) ? getVisibleColorFromTheme(this.mindMap.themeConfig) : '#fff' : bgColor this.textEditNode.style.minWidth = originWidth + paddingX * 2 + 'px' this.textEditNode.style.minHeight = originHeight + 'px' this.textEditNode.style.left = rect.left + 'px' diff --git a/simple-mind-map/src/utils/index.js b/simple-mind-map/src/utils/index.js index 68cc323a..2be4cc22 100644 --- a/simple-mind-map/src/utils/index.js +++ b/simple-mind-map/src/utils/index.js @@ -527,4 +527,16 @@ export const isWhite = (color) => { export const isTransparent = (color) => { color = String(color).replaceAll(/\s+/g, '') return ['', 'transparent'].includes(color) || /rgba\(\d+,\d+,\d+,0\)/.test(color) +} + +// 从当前主题里获取一个非透明非白色的颜色 +export const getVisibleColorFromTheme = (themeConfig) => { + let { lineColor, root, second, node } = themeConfig + let list = [lineColor, root.fillColor, root.color, second.fillColor, second.color, node.fillColor, node.color, root.borderColor, second.borderColor, node.borderColor] + for(let i = 0; i < list.length; i++) { + let color = list[i] + if (!isTransparent(color) && !isWhite(color)) { + return color + } + } } \ No newline at end of file diff --git a/web/src/pages/Doc/en/changelog/index.md b/web/src/pages/Doc/en/changelog/index.md index 849ba902..8de9b46f 100644 --- a/web/src/pages/Doc/en/changelog/index.md +++ b/web/src/pages/Doc/en/changelog/index.md @@ -1,5 +1,9 @@ # Changelog +## 0.6.11-fix.1 + +Fix: 1.Fixed the issue of invisible editing when node text is white. + ## 0.6.11 New: 1.Optimize the mini map, remove node content within the mini map, and optimize performance. diff --git a/web/src/pages/Doc/en/changelog/index.vue b/web/src/pages/Doc/en/changelog/index.vue index c61d8f73..1b919758 100644 --- a/web/src/pages/Doc/en/changelog/index.vue +++ b/web/src/pages/Doc/en/changelog/index.vue @@ -1,6 +1,8 @@