| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import defaultSettings from '@/settings'
- import { useDark, useToggle } from '@vueuse/core'
- import { useDynamicTitle } from '@/utils/dynamicTitle'
- const isDark = useDark()
- if(isDark.value) isDark.value=false; //固定为深色模式
- const toggleDark = useToggle(isDark)
- const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings
- const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
- const useSettingsStore = defineStore(
- 'settings',
- {
- state: () => ({
- title: '',
- theme: storageSetting.theme || '#409EFF',
- sideTheme: storageSetting.sideTheme || sideTheme,
- showSettings: showSettings,
- topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
- tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
- fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
- sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
- dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle,
- isDark: isDark.value
- }),
- actions: {
- // 修改布局设置
- changeSetting(data) {
- const { key, value } = data
- if (this.hasOwnProperty(key)) {
- this[key] = value
- }
- },
- // 设置网页标题
- setTitle(title) {
- this.title = title
- useDynamicTitle()
- },
- // 切换暗黑模式
- toggleTheme() {
- if(this.isDark.value) return //深色模式时不切换,保持深色模式
- this.isDark = !this.isDark
- toggleDark()
- }
- }
- })
- export default useSettingsStore
|