104 lines
2.5 KiB
Markdown
104 lines
2.5 KiB
Markdown
# Settings 模块
|
|
|
|
`Settings` 模块当前主要负责 ERP 登录凭据的查看、编辑和保存,并通过当前用户上下文对配置进行按用户管理。
|
|
|
|
## 1. 模块职责
|
|
|
|
- 加载当前用户的 ERP 配置
|
|
- 编辑 ERP 用户名和密码
|
|
- 保存配置到后端持久化存储
|
|
- 提示保存结果
|
|
|
|
## 2. 模块结构
|
|
|
|
```mermaid
|
|
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.tsx`
|
|
- `src/main/ipc/settings-handler.ts`
|
|
- `src/main/services/config/config-manager.ts`
|
|
- `src/main/services/user/user-erp-config-service.ts`
|
|
|
|
## 4. 主流程
|
|
|
|
```mermaid
|
|
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. 页面状态
|
|
|
|
当前设置页非常轻量,主要状态包括:
|
|
|
|
- `credentials`
|
|
- `isModified`
|
|
- `isLoading`
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
Load[加载配置]
|
|
Edit[编辑账号密码]
|
|
Dirty[isModified = true]
|
|
Save[保存配置]
|
|
Success[提示成功]
|
|
|
|
Load --> Edit
|
|
Edit --> Dirty
|
|
Dirty --> Save
|
|
Save --> Success
|
|
```
|
|
|
|
## 6. 与其他模块的关系
|
|
|
|
Settings 模块与这些模块关系较强:
|
|
|
|
- `auth`
|
|
当前用户决定读取和保存哪份 ERP 配置
|
|
- `cleaner`
|
|
Cleaner 执行时会读取 ERP 账号密码
|
|
- `extractor`
|
|
提取链路也依赖 ERP 登录能力
|
|
|
|
## 7. 常见改动点
|
|
|
|
- 改页面交互:`SettingsPage.tsx`
|
|
- 改 IPC 契约:`settings-handler.ts`
|
|
- 改配置存储逻辑:`user-erp-config-service.ts`
|
|
- 改全局配置:`config-manager.ts`
|
|
|
|
## 8. 修改建议
|
|
|
|
- 保持“页面只编辑当前用户配置”的边界清晰
|
|
- 不要把 ERP 凭据保存逻辑重新分散到多个模块
|
|
- 如果后续扩展更多设置项,建议引入更清晰的分组和局部表单结构
|