chore(build): 更新.gitignore配置和清理Wails临时文件

- 添加dist/目录到.gitignore,用于排除打包输出的绿色免安装版
- 添加Wails打包过程中的临时文件和自动生成文件到.gitignore
- 删除build/windows/installer/wails_tools.nsh自动生成文件
- 添加Windows安装器临时目录和Webview2安装文件到忽略列表

feat(docs): 添加万川平台对接文档和产品素材

- 创建万川平台登录到获取模型信息的流程说明文档
- 添加万川平台对接实施计划文档
- 新增产品图片、公司简介图、宣传海报、教程截图、案例展示等素材文件

refactor(runtime): 扩展通知功能类型定义

- 添加NotificationOptions接口定义
- 添加NotificationAction接口定义
- 添加NotificationCategory接口定义
- 扩展通知相关的运行时API类型声明,包括初始化、发送、注册分类等功能
This commit is contained in:
2026-06-25 18:13:11 +08:00
parent 858cb68f4f
commit a926ee6b1b
34 changed files with 1178 additions and 275 deletions

View File

@@ -0,0 +1,108 @@
# 万川平台对接 — 实施计划
> 本文为对接万川 AI 平台(登录 → 拉取模型配置)的实施计划。
> 接口契约见同目录 [万川平台-登录到获取模型信息-流程说明.md](万川平台-登录到获取模型信息-流程说明.md)。
## 范围
### 本期做
登录平台 → 拉模型配置 → **log 打印**。平台凭证可编辑、可持久化、可重置。
### 本期不做(留第二期)
- 回填 AI 表单(`form.ai.*`
-`SaveAutoReplyConfig` 落盘 + 推 helper 重载
理由:先打印确认平台返回的数据结构与解析结果正确,再接回填与保存。
## 架构决策
- **Go 只做透传代理 + 凭证存取**,不碰业务解析。仅用于绕开 WebView 的 CORS 限制。
- **业务逻辑全在前端**:取 token、按 code 拉取、解析 `encryptedConfig`、字段映射。
- **持久化存 `config/config.json`**exe 同级,重启自动恢复,与浏览器无关),新增 `platformConfig` 段。不使用 localStorage。
- ⚠️ 密码以明文存在 config.json本地桌面工具常见做法。如需更稳可加简单混淆但非真加密。
## 一、Go 端
新文件:`wanchuan_proxy.go`(与 [app.go](../../app.go) 同级main 包)。
### 1.1 透传代理方法(绑定到 App
| 方法 | 行为 |
|------|------|
| `WanchuanLogin(baseUrl, username, password string) string` | POST `{baseUrl}/api/login`body `{username, password, loginType:"user"}`**原样返回**平台响应 JSON 字符串;日志打印(密码/token 打码) |
| `WanchuanGetModel(baseUrl, code, token string) string` | GET `{baseUrl}/api/system/model/getByCode/{code}`;带头 `Authorization: Bearer {token}``token: Bearer {token}`**原样返回**响应 JSON日志打印 |
不解析 token、不合并字段、不存盘——平台返什么就返什么。
### 1.2 凭证存取方法(绑定到 App
| 方法 | 行为 |
|------|------|
| `GetPlatformConfig() interface{}` | 读 config.json 的 `platformConfig` 段回前端 |
| `SavePlatformConfig(jsonData string) (bool, string)` | 存 `platformConfig` 段(重置 = 存空值) |
### 1.3 config 结构改动
[config/types.go](../types.go) 新增结构并挂到 `Config`
```go
type PlatformConfig struct {
BaseURL string `json:"baseUrl"`
Username string `json:"username"`
Password string `json:"password"`
}
// Config 增加字段:
// PlatformConfig PlatformConfig `json:"platformConfig"`
```
[config/config_manager.go](../config_manager.go) 新增 `UpdatePlatformConfig`,复用现有 `SaveGlobalConfig`
> 改了 App 方法后需跑 `wails dev` / `wails build` 重新生成 `frontend/wailsjs/go/main/App.js` 绑定。
## 二、前端
文件:[frontend/src/components/AutoReply.vue](../../frontend/src/components/AutoReply.vue),在 AI 配置区(`#auto-section-ai`02顶部新增「万川平台」卡片。
### 2.1 UI
- 输入框:平台地址 / 账号 / 密码(绑 reactive挂载时 `GetPlatformConfig` 回填,可编辑)
- 按钮「登录并获取模型」
- 按钮「重置」:清空凭证(`SavePlatformConfig` 存空)后重新走一次流程
### 2.2 「登录并获取模型」逻辑
1. `SavePlatformConfig(当前输入)` 先存凭证
2. `WanchuanLogin(url, user, pwd)``JSON.parse` → 多路径取 token
`token` / `data.token` / `data.access_token` / `access_token`
3. 依次 `WanchuanGetModel(url, code, token)`
- `generic`(必拉)
- `vision``voice`(可选,失败跳过)
4. 每个响应取 `data.providerModels`,对 `encryptedConfig` 做**二次 `JSON.parse`**
`{ modelName, apiKey, endpointUrl }`
5. **`console.log` + `LogFrontend` 打印**原始响应与解析结果 —— **到此为止。**
### 2.3 字段映射(供第二期参考)
| 万川 code | 解析字段 | AIConfig 字段 |
|-----------|---------|---------------|
| `generic` | endpointUrl / apiKey / modelName | `baseUrl` / `apiKey` / `model` |
| `vision` | endpointUrl / apiKey / modelName | `visionBaseUrl` / `visionApiKey` / `visionModel` |
| `voice` | endpointUrl / apiKey / modelName | `audioBaseUrl` / `audioApiKey` / `audioModel` |
`summary_*` 无对应业务,忽略;知识库列表不拉。)
## 三、验证
- `go build` 通过;`wails dev` 起来后在 AI 配置区填真实平台地址/账号/密码,点「登录并获取模型」,
看浏览器控制台和后端日志打印出 generic/vision/voice 的解析结果,确认 `endpointUrl/apiKey/modelName` 拿对。
- 重启应用,确认账号密码自动回填(持久化生效)。
- 点「重置」,确认凭证清空。
## 四、第二期(确认数据无误后)
把 2.2 第 5 步从"打印"改为:
- 按 2.3 映射回填 `form.ai.*`
- 调现有 `SaveAutoReplyConfig(form)` 落盘 + 推 helper 重载
至此 AI 配置实现平台动态下发。