Files
Web_BAI_Manage_ApiServer/front-end/AI-Coding/12-Settings-Store.md
XuJiacheng 9a387f3eec feat: 初始化项目结构并添加基础配置
添加前后端基础项目结构,包括.gitignore、package.json等配置文件
实现前端基础功能模块,包括路由、状态管理、API请求封装等
添加前端UI组件库和样式体系
配置开发环境Mock系统和构建工具链
2026-03-18 14:03:35 +08:00

1.3 KiB
Raw Permalink Blame History

12. Settings Store主题/布局等全局配置)

目标:把 Theme/Layout 的“根依赖”讲清楚,避免 AI 抽取时只搬组件却漏掉主题变量注入与持久化逻辑。

入口

  • src/store/modules/settings.tsuseSettingsStore

管理的核心状态

  • theme:包含 layout/themeName/background/menuWidth/showTheme/showThemeSetting/tabsBarStyle...
  • devicedesktop | mobile(布局响应式需要)
  • collapse:侧边栏折叠状态
  • language:国际化语言

关键动作

  • saveTheme():持久化 theme
  • resetTheme():恢复默认 theme并调用 updateTheme()
  • updateTheme()
    • 通过 @vab/styles/variables/vab-*-variables.module.scss 读取变量
    • vab- 前缀映射到 --el-,动态写入 Element Plus CSS 变量
    • 设置 body classvab-theme-*,并按 background 追加 class
    • 设置 --el-left-menu-width

最小闭包Theme/Layout 抽取必须带上)

  • src/store/modules/settings.ts
  • library/styles/variables/vab-*-variables.module.scss
  • library/plugins/vab.tsTheme 事件总线注入)

常见坑

  • updateTheme() 使用 webpack 风格动态 require,迁移到非 webpack 构建器需要等效替代
  • useCssVar 的导入方式依赖工程约定(自动导入 vs 显式 import