gaoluyang
2026-05-16 89079cd6f458c06b014d2609dcded95600be30a9
src/store/modules/settings.js
@@ -4,11 +4,15 @@
const preferredDark = usePreferredDark();
const colorMode = useColorMode({
  emitAuto: true,
  attribute: 'class',
  selector: 'html',
  modes: {
    dark: 'dark',
    light: '',
  }
});
const {
  sideTheme,
  showSettings,
  topNav,
  tagsView,
@@ -21,13 +25,15 @@
const storageSetting = JSON.parse(localStorage.getItem("layout-setting") || "{}");
const defaultDarkMode = darkMode || "auto";
const initialDarkMode = storageSetting.darkMode || defaultDarkMode;
// 设置初始值
colorMode.value = initialDarkMode;
const getIsDark = (mode) => mode === "dark" || (mode === "auto" && preferredDark.value);
const useSettingsStore = defineStore("settings", () => {
  const title = ref("");
  const theme = ref(storageSetting.theme || "#002fa7");
  const sideThemeValue = ref(storageSetting.sideTheme || sideTheme);
  const showSettingsValue = ref(showSettings);
  const topNavValue = ref(
    storageSetting.topNav === undefined ? topNav : storageSetting.topNav
@@ -47,12 +53,18 @@
  const darkModeValue = ref(initialDarkMode);
  const isDark = computed(() => getIsDark(darkModeValue.value));
  // 监听系统主题变化
  watch(preferredDark, (newVal) => {
    if (darkModeValue.value === 'auto') {
      colorMode.value = 'auto';
    }
  });
  function changeSetting(data) {
    const { key, value } = data;
    const settingMap = {
      title,
      theme,
      sideTheme: sideThemeValue,
      showSettings: showSettingsValue,
      topNav: topNavValue,
      tagsView: tagsViewValue,
@@ -86,7 +98,6 @@
  return {
    title,
    theme,
    sideTheme: sideThemeValue,
    showSettings: showSettingsValue,
    topNav: topNavValue,
    tagsView: tagsViewValue,