Fix:修复自定义主题节点渐变色方向无效的问题

This commit is contained in:
街角小林 2024-09-20 09:32:12 +08:00
parent 29ddbba9b9
commit b4fdcd81b0
33 changed files with 76 additions and 65 deletions

View File

@ -19,7 +19,8 @@ import {
getObjectChangedProps, getObjectChangedProps,
isUndef, isUndef,
handleGetSvgDataExtraContent, handleGetSvgDataExtraContent,
getNodeTreeBoundingRect getNodeTreeBoundingRect,
mergeTheme
} from './src/utils' } from './src/utils'
import defaultTheme, { import defaultTheme, {
checkIsNodeSizeIndependenceConfig checkIsNodeSizeIndependenceConfig
@ -252,7 +253,7 @@ class MindMap {
// 设置主题 // 设置主题
initTheme() { initTheme() {
// 合并主题配置 // 合并主题配置
this.themeConfig = merge(theme[this.opt.theme], this.opt.themeConfig) this.themeConfig = mergeTheme(theme[this.opt.theme], this.opt.themeConfig)
// 设置背景样式 // 设置背景样式
Style.setBackgroundStyle(this.el, this.themeConfig) Style.setBackgroundStyle(this.el, this.themeConfig)
} }
@ -638,7 +639,7 @@ MindMap.defineTheme = (name, config = {}) => {
if (theme[name]) { if (theme[name]) {
return new Error('该主题名称已存在') return new Error('该主题名称已存在')
} }
theme[name] = merge(defaultTheme, config) theme[name] = mergeTheme(defaultTheme, config)
} }
export default MindMap export default MindMap

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 秋天 // 秋天
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 背景颜色 // 背景颜色
backgroundColor: '#fff2df', backgroundColor: '#fff2df',
// 连线的颜色 // 连线的颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 牛油果 // 牛油果
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 背景颜色 // 背景颜色
backgroundColor: '#e6f1de', backgroundColor: '#e6f1de',
// 连线的颜色 // 连线的颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 黑金 // 黑金
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 背景颜色 // 背景颜色
backgroundColor: 'rgb(18, 20, 20)', backgroundColor: 'rgb(18, 20, 20)',
// 连线的颜色 // 连线的颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 黑色幽默 // 黑色幽默
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 背景颜色 // 背景颜色
backgroundColor: 'rgb(27, 31, 34)', backgroundColor: 'rgb(27, 31, 34)',
// 连线的颜色 // 连线的颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 天空蓝 // 天空蓝
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(115, 161, 191)', lineColor: 'rgb(115, 161, 191)',
// 背景颜色 // 背景颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 脑残粉 // 脑残粉
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(191, 115, 148)', lineColor: 'rgb(191, 115, 148)',
// 背景颜色 // 背景颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 脑图经典 // 脑图经典
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: '#fff', lineColor: '#fff',
// 连线的粗细 // 连线的粗细

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 经典2 // 经典2
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(51, 51, 51)', lineColor: 'rgb(51, 51, 51)',
// 连线的粗细 // 连线的粗细

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 经典3 // 经典3
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(94, 202, 110)', lineColor: 'rgb(94, 202, 110)',
// 连线的粗细 // 连线的粗细

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 经典4 // 经典4
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(30, 53, 86)', lineColor: 'rgb(30, 53, 86)',
// 连线的粗细 // 连线的粗细

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 经典蓝 // 经典蓝
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(51, 51, 51)', lineColor: 'rgb(51, 51, 51)',
// 连线的粗细 // 连线的粗细

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 经典绿 // 经典绿
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(123, 199, 120)', lineColor: 'rgb(123, 199, 120)',
// 背景颜色 // 背景颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 咖啡 // 咖啡
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(173, 123, 91)', lineColor: 'rgb(173, 123, 91)',
lineWidth: 4, lineWidth: 4,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 课程绿 // 课程绿
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(113, 195, 169)', lineColor: 'rgb(113, 195, 169)',
lineWidth: 3, lineWidth: 3,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 暗色 // 暗色
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(17, 68, 23)', lineColor: 'rgb(17, 68, 23)',
// 连线的粗细 // 连线的粗细

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 暗色2 // 暗色2
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(75, 81, 78)', lineColor: 'rgb(75, 81, 78)',
lineWidth: 3, lineWidth: 3,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 泥土黄 // 泥土黄
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(191, 147, 115)', lineColor: 'rgb(191, 147, 115)',
// 背景颜色 // 背景颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 清新绿 // 清新绿
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: '#333', lineColor: '#333',
// 背景颜色 // 背景颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 清新红 // 清新红
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(191, 115, 115)', lineColor: 'rgb(191, 115, 115)',
// 背景颜色 // 背景颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 金色vip // 金色vip
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(51, 56, 62)', lineColor: 'rgb(51, 56, 62)',
lineWidth: 3, lineWidth: 3,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 绿叶 // 绿叶
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(40, 193, 84)', lineColor: 'rgb(40, 193, 84)',
lineWidth: 3, lineWidth: 3,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 深夜办公室 // 深夜办公室
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 背景颜色 // 背景颜色
backgroundColor: 'rgb(32, 37, 49)', backgroundColor: 'rgb(32, 37, 49)',
// 连线的颜色 // 连线的颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 小黄人 // 小黄人
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(51, 51, 51)', lineColor: 'rgb(51, 51, 51)',
lineWidth: 3, lineWidth: 3,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 薄荷 // 薄荷
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(104, 204, 202)', lineColor: 'rgb(104, 204, 202)',
lineWidth: 3, lineWidth: 3,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 橙汁 // 橙汁
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 背景颜色 // 背景颜色
backgroundColor: '#070616', backgroundColor: '#070616',
// 连线的颜色 // 连线的颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 粉红葡萄 // 粉红葡萄
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(166, 101, 106)', lineColor: 'rgb(166, 101, 106)',
lineWidth: 3, lineWidth: 3,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 红色精神 // 红色精神
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 背景颜色 // 背景颜色
backgroundColor: 'rgb(255, 238, 228)', backgroundColor: 'rgb(255, 238, 228)',
// 连线的颜色 // 连线的颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 浪漫紫 // 浪漫紫
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(123, 115, 191)', lineColor: 'rgb(123, 115, 191)',
// 背景颜色 // 背景颜色

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 简约黑 // 简约黑
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(34, 34, 34)', lineColor: 'rgb(34, 34, 34)',
lineWidth: 4, lineWidth: 4,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 天清绿 // 天清绿
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: '#fff', lineColor: '#fff',
lineWidth: 3, lineWidth: 3,

View File

@ -1,8 +1,8 @@
import defaultTheme from './default' import defaultTheme from './default'
import merge from 'deepmerge' import { mergeTheme } from '../utils'
// 活力橙 // 活力橙
export default merge(defaultTheme, { export default mergeTheme(defaultTheme, {
// 连线的颜色 // 连线的颜色
lineColor: 'rgb(254, 146, 0)', lineColor: 'rgb(254, 146, 0)',
lineWidth: 3, lineWidth: 3,

View File

@ -5,6 +5,7 @@ import {
} from '../constants/constant' } from '../constants/constant'
import MersenneTwister from './mersenneTwister' import MersenneTwister from './mersenneTwister'
import { ForeignObject } from '@svgdotjs/svg.js' import { ForeignObject } from '@svgdotjs/svg.js'
import merge from 'deepmerge'
// 深度优先遍历树 // 深度优先遍历树
export const walk = ( export const walk = (
@ -1610,3 +1611,12 @@ export const sortNodeList = nodeList => {
}) })
return nodeList return nodeList
} }
// 合并主题配置
export const mergeTheme = (dest, source) => {
return merge(dest, source, {
arrayMerge: (destinationArray, sourceArray) => {
return sourceArray
}
})
}