跳转到正文

Setting Store ​

useSettingGetters() 返回计算引用,useSettingActions() 修改偏好及相关副作用。设置会在刷新后恢复。运行中切换时优先用已提供的动作,避免 UI、日期语言或 HTML 样式不同步。

Getters ​

Getter字段与默认行为
getLayoutConfiglayoutConfig,布局模式和工作区尺寸,见下表。
getDrawerPlacementdrawerPlacement,设置抽屉方向,默认 right。
getPrimaryColorOverrideprimaryColorOverride,Naive UI 主题覆盖;默认主色 #3b63d9。
getAppTheme / getAppThemeStr_appTheme 为实际深色布尔值,appTheme 为 light/dark/auto 模式,初始 light。
getLocaleLanguagelocaleLanguage,应用语言,默认读取历史值或系统默认配置。
getMenuTagSwitch / getBreadcrumbSwitchmenuTagSwitch / breadcrumbSwitch,默认显示标签和面包屑。
getLockScreenSwitchlockScreenSwitch,锁屏设置弹窗显隐,默认关,不持久化。
getCopyrightSwitchcopyrightSwitch,默认显示版权区。
getContentTransitioncontentTransition,路由切换动画,默认 scale。
getWatermarkSwitch / getWatermarkConfigwatermarkSwitch 默认关;配置包含文字、字体大小、行高、宽高、偏移、间隔、旋转和 cross。
getAppRootRouteappRootRoute,默认 { name: 'Dashboard', path: '/dashboard' }。
getSideBarLogosideBarLogo,icon、title、url、jumpType。默认 logo/ray,站内跳转到仪表盘。
getKeepAliveConfigkeepAliveConfig,默认开启、最多 10 个、排除列表为空。
getMenuConfigmenuConfig,侧栏、折叠、图标、手风琴与滚动配置。
getColorWeakness / getDynamicDocumentTitlecolorWeakness 默认关,dynamicDocumentTitle 默认开。

layoutConfig 的 mode 为 side(默认)、top、mixed。contentWidth 默认 fluid,也可取 fixed。contentMaxWidth 默认 1200,限制在 640–2560;contentPadding 默认 16,限制在 0–48;fixedHeader、fixedFooter 默认开启。旧缓存水合时补齐字段并规范化范围。

menuConfig 默认菜单宽 272、折叠宽 64、普通和折叠图标均为 16、缩进 24。collapsedMode 默认 width,transform 模式改变位置;accordion、inverted、nativeScrollbar 默认关,menuSiderBarLogo 默认开。sideBarLogo.jumpType 用 station 站内跳转或 outsideStation 打开外部地址,未传 url 时不跳转。缓存中的旧裸图标名会尝试映射成完整名称;需要持久化的 Logo 建议用图标名字符串,VNode 不适合作为缓存值。

Actions ​

方法行为
updateSettingState(key, value, callback?)更新已有字段。普通对象浅合并;layoutConfig 额外做格式与范围校验。成功后调用可选回调。
updateLocale(key)更新 Vue I18n、Day.js、语言缓存和 Store,Naive UI 从 Store 同步语言。
changePrimaryColor(value, alpha = 0.85)更新 Naive UI 主色、hover/pressed/supplement 和 HTML CSS 变量。
toggleColorWeakness(bool)更新设置并切换 HTML 反色滤镜。

切换主题使用 useTheme,切换首页使用 useAppRoot。修改嵌套配置时传入完整的下一级对象,浅合并不会递归保存更深层字段。

ts
import { useSettingActions, useSettingGetters } from "@/store";

export function useCompactWorkspace() {
  const { getLayoutConfig } = useSettingGetters();
  const { updateSettingState } = useSettingActions();
  const apply = () =>
    updateSettingState("layoutConfig", {
      mode: "mixed",
      contentWidth: "fixed",
      contentMaxWidth: 1200,
    });
  return { config: getLayoutConfig, apply };
}

Getters 与 Actions · 状态类型 · 默认配置 · 持久化实现