# Module Spec：store-settings（全局配置/主题/布局状态）

module:
  id: store-settings
  name: Settings Store（主题/布局/语言/折叠等全局配置）
  type: store
  entrypoints:
    - src/store/modules/settings.ts

public_api:
  concept:
    - "集中管理全局配置：theme、device、collapse、language、lock、logo、title"
    - "持久化：localStorage（theme/collapse/language/...）"
    - "主题注入：updateTheme() 动态加载 scss module 并写入 CSS 变量（--el-*）"

usage_examples:
  - "useSettingsStore().updateTheme() 在应用启动或主题变更后调用"
  - "useSettingsStore().toggleCollapse() 控制侧边栏折叠"

dependency_closure:
  runtime:
    - "src/config（默认 theme/layout/开关项等）"
    - "@vueuse/core：useCssVar（如果项目通过 auto-import 或显式引入提供）"
  bundler:
    - "webpack dynamic require：require(`@vab/styles/variables/vab-${themeName}-variables.module.scss`)"
  alias:
    - "@ -> src"
    - "@vab -> library"

acceptance:
  - "切换 themeName 后 updateTheme() 能更新 Element Plus CSS 变量"
  - "刷新后 theme/collapse/language 等能从 localStorage 恢复"

pitfalls:
  - "updateTheme() 使用动态 require scss module；非 webpack 构建需替代实现"
  - "useCssVar 的来源依赖工程约定（若未自动注入，需要显式 import）"
