settings.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import variables from '@/assets/styles/element-variables.scss'
  2. import defaultSettings from '@/settings'
  3. const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo } = defaultSettings
  4. const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
  5. const state = {
  6. theme: storageSetting.theme || variables.theme,
  7. sideTheme: storageSetting.sideTheme || sideTheme,
  8. showSettings: showSettings,
  9. topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
  10. tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
  11. fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
  12. sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo
  13. }
  14. const mutations = {
  15. CHANGE_SETTING: (state, { key, value }) => {
  16. if (state.hasOwnProperty(key)) {
  17. state[key] = value
  18. }
  19. }
  20. }
  21. const actions = {
  22. changeSetting({ commit }, data) {
  23. commit('CHANGE_SETTING', data)
  24. }
  25. }
  26. export default {
  27. namespaced: true,
  28. state,
  29. mutations,
  30. actions
  31. }