2.5 KiB
2.5 KiB
Settings 模块
Settings 模块当前主要负责 ERP 登录凭据的查看、编辑和保存,并通过当前用户上下文对配置进行按用户管理。
1. 模块职责
- 加载当前用户的 ERP 配置
- 编辑 ERP 用户名和密码
- 保存配置到后端持久化存储
- 提示保存结果
2. 模块结构
graph TD
Page[SettingsPage]
Preload[preload.settings]
Handler[settings-handler]
Config[Config / User ERP Config Service]
Storage[数据库中的用户配置]
Page --> Preload
Preload --> Handler
Handler --> Config
Config --> Storage
3. 关键入口文件
src/renderer/src/pages/SettingsPage.tsxsrc/main/ipc/settings-handler.tssrc/main/services/config/config-manager.tssrc/main/services/user/user-erp-config-service.ts
4. 主流程
sequenceDiagram
participant Page as SettingsPage
participant Preload as preload.settings
participant Handler as settings-handler
participant Service as config / user-erp-config-service
Page->>Preload: getSettings()
Preload->>Handler: invoke
Handler->>Service: load current user config
Service-->>Handler: settings payload
Handler-->>Preload: IpcResult
Preload-->>Page: ERP credentials
Page->>Preload: saveSettings(payload)
Preload->>Handler: invoke
Handler->>Service: persist config
Service-->>Handler: save result
Handler-->>Preload: IpcResult
Preload-->>Page: success / error
5. 页面状态
当前设置页非常轻量,主要状态包括:
credentialsisModifiedisLoading
flowchart LR
Load[加载配置]
Edit[编辑账号密码]
Dirty[isModified = true]
Save[保存配置]
Success[提示成功]
Load --> Edit
Edit --> Dirty
Dirty --> Save
Save --> Success
6. 与其他模块的关系
Settings 模块与这些模块关系较强:
auth当前用户决定读取和保存哪份 ERP 配置cleanerCleaner 执行时会读取 ERP 账号密码extractor提取链路也依赖 ERP 登录能力
7. 常见改动点
- 改页面交互:
SettingsPage.tsx - 改 IPC 契约:
settings-handler.ts - 改配置存储逻辑:
user-erp-config-service.ts - 改全局配置:
config-manager.ts
8. 修改建议
- 保持“页面只编辑当前用户配置”的边界清晰
- 不要把 ERP 凭据保存逻辑重新分散到多个模块
- 如果后续扩展更多设置项,建议引入更清晰的分组和局部表单结构