Demo:支持根据主题自动切换为暗黑模式

This commit is contained in:
wanglin2 2023-07-24 10:25:02 +08:00
parent d5e4044fb2
commit 55945a1a2c
3 changed files with 49 additions and 2 deletions

View File

@ -27,130 +27,162 @@ export const themeList = [
{ {
name: '默认', name: '默认',
value: 'default', value: 'default',
dark: false
}, },
{ {
name: '暗色2', name: '暗色2',
value: 'dark2', value: 'dark2',
dark: true
}, },
{ {
name: '天清绿', name: '天清绿',
value: 'skyGreen', value: 'skyGreen',
dark: false
}, },
{ {
name: '脑图经典2', name: '脑图经典2',
value: 'classic2', value: 'classic2',
dark: false
}, },
{ {
name: '脑图经典3', name: '脑图经典3',
value: 'classic3', value: 'classic3',
dark: false
}, },
{ {
name: '经典绿', name: '经典绿',
value: 'classicGreen', value: 'classicGreen',
dark: false
}, },
{ {
name: '经典蓝', name: '经典蓝',
value: 'classicBlue', value: 'classicBlue',
dark: false
}, },
{ {
name: '天空蓝', name: '天空蓝',
value: 'blueSky', value: 'blueSky',
dark: false
}, },
{ {
name: '脑残粉', name: '脑残粉',
value: 'brainImpairedPink', value: 'brainImpairedPink',
dark: false
}, },
{ {
name: '暗色', name: '暗色',
value: 'dark', value: 'dark',
dark: true
}, },
{ {
name: '泥土黄', name: '泥土黄',
value: 'earthYellow', value: 'earthYellow',
dark: false
}, },
{ {
name: '清新绿', name: '清新绿',
value: 'freshGreen', value: 'freshGreen',
dark: false
}, },
{ {
name: '清新红', name: '清新红',
value: 'freshRed', value: 'freshRed',
dark: false
}, },
{ {
name: '浪漫紫', name: '浪漫紫',
value: 'romanticPurple', value: 'romanticPurple',
dark: false
}, },
{ {
name: '粉红葡萄', name: '粉红葡萄',
value: 'pinkGrape', value: 'pinkGrape',
dark: false
}, },
{ {
name: '薄荷', name: '薄荷',
value: 'mint', value: 'mint',
dark: false
}, },
{ {
name: '金色vip', name: '金色vip',
value: 'gold', value: 'gold',
dark: false
}, },
{ {
name: '活力橙', name: '活力橙',
value: 'vitalityOrange', value: 'vitalityOrange',
dark: false
}, },
{ {
name: '绿叶', name: '绿叶',
value: 'greenLeaf', value: 'greenLeaf',
dark: false
}, },
{ {
name: '脑图经典', name: '脑图经典',
value: 'classic', value: 'classic',
dark: true
}, },
{ {
name: '脑图经典4', name: '脑图经典4',
value: 'classic4', value: 'classic4',
dark: false
}, },
{ {
name: '小黄人', name: '小黄人',
value: 'minions', value: 'minions',
dark: false
}, },
{ {
name: '简约黑', name: '简约黑',
value: 'simpleBlack', value: 'simpleBlack',
dark: true
}, },
{ {
name: '课程绿', name: '课程绿',
value: 'courseGreen', value: 'courseGreen',
dark: false
}, },
{ {
name: '咖啡', name: '咖啡',
value: 'coffee', value: 'coffee',
dark: false
}, },
{ {
name: '红色精神', name: '红色精神',
value: 'redSpirit', value: 'redSpirit',
dark: false
}, },
{ {
name: '黑色幽默', name: '黑色幽默',
value: 'blackHumour', value: 'blackHumour',
dark: true
}, },
{ {
name: '深夜办公室', name: '深夜办公室',
value: 'lateNightOffice', value: 'lateNightOffice',
dark: true
}, },
{ {
name: '黑金', name: '黑金',
value: 'blackGold', value: 'blackGold',
dark: true
}, },
{ {
name: '牛油果', name: '牛油果',
value: 'avocado', value: 'avocado',
dark: false
}, },
{ {
name: '秋天', name: '秋天',
value: 'autumn', value: 'autumn',
dark: false
}, },
{ {
name: '橙汁', name: '橙汁',
value: 'orangeJuice', value: 'orangeJuice',
dark: true
} }
] ]

View File

@ -7,7 +7,7 @@
<Outline :mindMap="mindMap"></Outline> <Outline :mindMap="mindMap"></Outline>
<Style v-if="!isZenMode"></Style> <Style v-if="!isZenMode"></Style>
<BaseStyle :data="mindMapData" :mindMap="mindMap"></BaseStyle> <BaseStyle :data="mindMapData" :mindMap="mindMap"></BaseStyle>
<Theme :mindMap="mindMap"></Theme> <Theme v-if="mindMap" :mindMap="mindMap"></Theme>
<Structure :mindMap="mindMap"></Structure> <Structure :mindMap="mindMap"></Structure>
<ShortcutKey></ShortcutKey> <ShortcutKey></ShortcutKey>
<Contextmenu v-if="mindMap" :mindMap="mindMap"></Contextmenu> <Contextmenu v-if="mindMap" :mindMap="mindMap"></Contextmenu>

View File

@ -21,7 +21,7 @@
import Sidebar from './Sidebar' import Sidebar from './Sidebar'
import { themeList } from 'simple-mind-map/src/constants/constant' import { themeList } from 'simple-mind-map/src/constants/constant'
import { storeConfig } from '@/api' import { storeConfig } from '@/api'
import { mapState } from 'vuex' import { mapState, mapMutations } from 'vuex'
import { themeMap } from '@/config/constant.js' import { themeMap } from '@/config/constant.js'
import customThemeList from '@/customThemes' import customThemeList from '@/customThemes'
@ -54,13 +54,20 @@ export default {
activeSidebar(val) { activeSidebar(val) {
if (val === 'theme') { if (val === 'theme') {
this.theme = this.mindMap.getTheme() this.theme = this.mindMap.getTheme()
this.handleDark()
this.$refs.sidebar.show = true this.$refs.sidebar.show = true
} else { } else {
this.$refs.sidebar.show = false this.$refs.sidebar.show = false
} }
} }
}, },
created () {
this.theme = this.mindMap.getTheme()
this.handleDark()
},
methods: { methods: {
...mapMutations(['setIsDark']),
/** /**
* @Author: 王林 * @Author: 王林
* @Date: 2021-06-24 23:04:38 * @Date: 2021-06-24 23:04:38
@ -68,6 +75,7 @@ export default {
*/ */
useTheme(theme) { useTheme(theme) {
this.theme = theme.value this.theme = theme.value
this.handleDark()
this.mindMap.setTheme(theme.value) this.mindMap.setTheme(theme.value)
storeConfig({ storeConfig({
theme: { theme: {
@ -75,6 +83,13 @@ export default {
config: this.mindMap.getCustomThemeConfig() config: this.mindMap.getCustomThemeConfig()
} }
}) })
},
handleDark() {
let target = themeList.find((item) => {
return item.value === this.theme
})
this.setIsDark(target.dark)
} }
} }
} }