feat: add settings schema
This commit is contained in:
+27
@@ -199,3 +199,30 @@
|
||||
- 非阻塞警告:
|
||||
- `dev.bat` 日志仍有 `SetProcessDpiAwarenessContext failed ... Access is denied`,不影响窗口创建和页面加载。
|
||||
- Browserslist 数据过期、Vite chunk 体积警告和 `wails3 build` alias 警告仍存在。
|
||||
|
||||
### 收敛设置模块 schema
|
||||
|
||||
- 任务:完成 `T-014`,让主题、语言、窗口行为、快捷键、数据目录和日志策略都有统一配置定义和默认值。
|
||||
- 结果:
|
||||
- 新增 `internal/models/settings.go`,定义 `AppSettingGroup`、`AppSettingDefinition` 和 `AppSettingOption`。
|
||||
- 新增 `internal/services/settings_schema.go`,集中定义设置 key、类型、默认值、说明、选项和只读策略,并由 schema 生成 `appconfig` 初始化 SQL。
|
||||
- `AppConfigService` 新增 `GetSettingsSchema`,返回分组、当前值和默认值。
|
||||
- `SetAppConfig` 对 schema 已知项执行 select、boolean、number 和只读校验。
|
||||
- 设置页 `/#/settings` 展示后端统一 schema,主题设置改为读写 `theme.mode`。
|
||||
- 重新生成 Wails `.js` bindings。
|
||||
- 覆盖的配置分组:
|
||||
- 外观与语言:`theme.mode`、`language`。
|
||||
- 窗口行为:`window.start_state`、`window.width`、`window.height`、`window.remember_state`。
|
||||
- 快捷键:`shortcut.open_second_window`、`shortcut.open_main_window`,只读展示,实际更新仍走 `HotkeyService`。
|
||||
- 数据目录:`data.root_mode`、`data.custom_directory`。
|
||||
- 日志策略:`logs.level`、`logs.audit_retention_days`、`logs.app_retention_days`。
|
||||
- 登录:`auth.provider` 和本地演示账号 hash 配置。
|
||||
- 验证:
|
||||
- `go test ./...` 通过。
|
||||
- `cd frontend && npm run typecheck` 通过。
|
||||
- `cd frontend && npm run build` 通过。
|
||||
- `go build -o bin\cmbone.exe .` 通过。
|
||||
- `cmd /c build.bat` 通过,并重新生成 Wails `.js` bindings。
|
||||
- 非阻塞警告:
|
||||
- `cmd /c build.bat` 仍提示 `wails3 build` 是 `wails3 task` 的 alias。
|
||||
- 前端构建仍提示 Browserslist 数据过期和 chunk 大小警告。
|
||||
|
||||
Reference in New Issue
Block a user