From fc621495bc5a887b2654cc18d0ab7511f9a8d36a Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期四, 08 五月 2025 17:45:35 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/store/modules/settings.js | 76 ++++++++++++++++++++------------------ 1 files changed, 40 insertions(+), 36 deletions(-) diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js index 06b91d2..76a1136 100644 --- a/src/store/modules/settings.js +++ b/src/store/modules/settings.js @@ -1,44 +1,48 @@ import defaultSettings from '@/settings' +import { useDark, useToggle } from '@vueuse/core' import { useDynamicTitle } from '@/utils/dynamicTitle' + +const isDark = useDark() +const toggleDark = useToggle(isDark) const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || '' -const 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 -} -const mutations = { - CHANGE_SETTING: (state, { key, value }) => { - if (state.hasOwnProperty(key)) { - state[key] = value + +const useSettingsStore = defineStore( + 'settings', + { + state: () => ({ + title: '', + theme: storageSetting.theme || '#2C51D9', + 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() { + this.isDark = !this.isDark + toggleDark() + } } - } -} + }) -const actions = { - // 淇敼甯冨眬璁剧疆 - changeSetting({ commit }, data) { - commit('CHANGE_SETTING', data) - }, - // 璁剧疆缃戦〉鏍囬 - setTitle({ commit }, title) { - state.title = title - useDynamicTitle(); - } -} - -export default { - namespaced: true, - state, - mutations, - actions -} - +export default useSettingsStore -- Gitblit v1.9.3