settings.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import defaultSettings from '@/settings'
  2. import { useDynamicTitle } from '@/utils/dynamicTitle'
  3. const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings
  4. const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
  5. const useSettingsStore = defineStore(
  6. 'settings',
  7. {
  8. state: () => ({
  9. title: '',
  10. theme: storageSetting.theme || '#409EFF',
  11. sideTheme: storageSetting.sideTheme || sideTheme,
  12. showSettings: showSettings,
  13. topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
  14. tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
  15. fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
  16. sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
  17. dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
  18. }),
  19. actions: {
  20. // 修改布局设置
  21. changeSetting(data) {
  22. const { key, value } = data
  23. if (this.hasOwnProperty(key)) {
  24. this[key] = value
  25. }
  26. },
  27. // 设置网页标题
  28. setTitle(title) {
  29. this.title = title
  30. useDynamicTitle();
  31. }
  32. }
  33. })
  34. export default useSettingsStore