动态改变颜色
Former-commit-id: ffb048da436b289c2e2651bd4496b161c9157146 [formerly ffb048da436b289c2e2651bd4496b161c9157146 [formerly ffb048da436b289c2e2651bd4496b161c9157146 [formerly ffb048da436b289c2e2651bd4496b161c9157146 [formerly a59428acb527bc6321c95fa760265dc833cf65e5 [formerly 45ec9aef742e446120981b198f8218987b672a1f]]]]] Former-commit-id: 70d862d8e2078eafcec732ed447786d07c1e1430 Former-commit-id: 0a9e379b6fdcca1e745cba5e1be77b583e82ae58 Former-commit-id: 863a82d72ccc3a9d1bbcc8d7aa79f3d7660a973e [formerly c13c2a3bc22f90100f318e6893fb3c4abf7f8095] Former-commit-id: e5fb7675c964ee555398f2ecbdfbf8d1d59d75c1 Former-commit-id: 89c8cd222507e826ad8fdda0cad8f3f37ed912bc Former-commit-id: 758ef0f28887dded3b4f9a73839302f053870eba Former-commit-id: e477522484af89ef63cf16c8e4bb1ced4bdbe242 Former-commit-id: e7249fde10c183f40e99c3ad5810815ac755dfab
This commit is contained in:
@@ -1 +1 @@
|
||||
622f962f4363e0f0c973336d08765a77e90bbf3f
|
||||
b9f3262f3fb1e36a9bdc4b480799afc6ea5e7b07
|
||||
44
src/layout/header-aside/components/header-color/index.vue
Normal file
44
src/layout/header-aside/components/header-color/index.vue
Normal file
@@ -0,0 +1,44 @@
|
||||
<template>
|
||||
<el-color-picker
|
||||
class="btn-text can-hover"
|
||||
:value="value"
|
||||
:predefine="predefine"
|
||||
size="mini"
|
||||
@change="set"/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState, mapActions } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'd2-header-color',
|
||||
data () {
|
||||
return {
|
||||
predefine: [
|
||||
'#ff4500',
|
||||
'#ff8c00',
|
||||
'#ffd700',
|
||||
'#90ee90',
|
||||
'#00ced1',
|
||||
'#1e90ff',
|
||||
'#c71585'
|
||||
]
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState('d2admin/color', [
|
||||
'value'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
value (value) {
|
||||
this.set(value)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapActions('d2admin/color', [
|
||||
'set'
|
||||
])
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -32,6 +32,7 @@
|
||||
<d2-header-theme/>
|
||||
<d2-header-size/>
|
||||
<d2-header-locales/>
|
||||
<d2-header-color/>
|
||||
<d2-header-user/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -92,6 +93,7 @@ import d2HeaderSize from './components/header-size'
|
||||
import d2HeaderTheme from './components/header-theme'
|
||||
import d2HeaderUser from './components/header-user'
|
||||
import d2HeaderLog from './components/header-log'
|
||||
import d2HeaderColor from './components/header-color'
|
||||
import { mapState, mapGetters, mapActions } from 'vuex'
|
||||
import mixinSearch from './mixins/search'
|
||||
export default {
|
||||
@@ -109,7 +111,8 @@ export default {
|
||||
d2HeaderSize,
|
||||
d2HeaderTheme,
|
||||
d2HeaderUser,
|
||||
d2HeaderLog
|
||||
d2HeaderLog,
|
||||
d2HeaderColor
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
||||
@@ -107,6 +107,8 @@ export default {
|
||||
await dispatch('d2admin/menu/asideCollapseLoad', null, { root: true })
|
||||
// DB -> store 持久化数据加载全局尺寸
|
||||
await dispatch('d2admin/size/load', null, { root: true })
|
||||
// DB -> store 持久化数据加载颜色设置
|
||||
await dispatch('d2admin/color/load', null, { root: true })
|
||||
// end
|
||||
resolve()
|
||||
})
|
||||
|
||||
77
src/store/modules/d2admin/modules/color.js
Normal file
77
src/store/modules/d2admin/modules/color.js
Normal file
@@ -0,0 +1,77 @@
|
||||
import client from 'webpack-theme-color-replacer/client'
|
||||
import forElementUI from 'webpack-theme-color-replacer/forElementUI'
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state: {
|
||||
// 颜色
|
||||
value: process.env.VUE_APP_ELEMENT_COLOR
|
||||
},
|
||||
actions: {
|
||||
/**
|
||||
* @description 设置颜色
|
||||
* @param {Object} state vuex state
|
||||
* @param {String} color 尺寸
|
||||
*/
|
||||
set ({ state, dispatch, commit }, color) {
|
||||
return new Promise(async resolve => {
|
||||
// 记录上个值
|
||||
const old = state.value
|
||||
// store 赋值
|
||||
state.value = color || process.env.VUE_APP_ELEMENT_COLOR
|
||||
// 持久化
|
||||
await dispatch('d2admin/db/set', {
|
||||
dbName: 'sys',
|
||||
path: 'color.value',
|
||||
value: state.value,
|
||||
user: true
|
||||
}, { root: true })
|
||||
// 应用
|
||||
commit('apply', {
|
||||
oldColor: old,
|
||||
newColor: state.value
|
||||
})
|
||||
// end
|
||||
resolve()
|
||||
})
|
||||
},
|
||||
/**
|
||||
* @description 从持久化数据读取颜色设置
|
||||
* @param {Object} state vuex state
|
||||
*/
|
||||
load ({ state, dispatch, commit }) {
|
||||
return new Promise(async resolve => {
|
||||
// 记录上个值
|
||||
const old = state.value
|
||||
// store 赋值
|
||||
state.value = await dispatch('d2admin/db/get', {
|
||||
dbName: 'sys',
|
||||
path: 'color.value',
|
||||
defaultValue: process.env.VUE_APP_ELEMENT_COLOR,
|
||||
user: true
|
||||
}, { root: true })
|
||||
// 应用
|
||||
commit('apply', {
|
||||
oldColor: old,
|
||||
newColor: state.value
|
||||
})
|
||||
// end
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
},
|
||||
mutations: {
|
||||
/**
|
||||
* @description 将 vuex 中的主题颜色设置应用到系统中
|
||||
* @param {Object} state vuex state
|
||||
* @param {Object} payload 设置
|
||||
*/
|
||||
apply (state, { oldColor, newColor }) {
|
||||
var options = {
|
||||
oldColors: [...forElementUI.getElementUISeries(oldColor)],
|
||||
newColors: [...forElementUI.getElementUISeries(newColor)]
|
||||
}
|
||||
client.changer.changeColor(options)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
fa1ae9f9a7f3f62b11777f83150787d16a763359
|
||||
9c9dbaa47996b7dceac7c165fed90e73e4da0237
|
||||
Reference in New Issue
Block a user