2026-03-23 09:10:32 +08:00
|
|
|
|
# 系统监测应用程序
|
2026-02-27 09:07:50 +08:00
|
|
|
|
|
2026-03-23 09:10:32 +08:00
|
|
|
|
这是一个基于 Tauri + Vue 开发的系统监测应用程序,具有以下功能:
|
2026-02-27 09:07:50 +08:00
|
|
|
|
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
|
|
|
|
|
1. **用户设置界面** - 配置用户名和密码
|
|
|
|
|
|
2. **系统托盘集成** - 应用启动后自动最小化到系统托盘
|
|
|
|
|
|
3. **自动登录** - 保存用户凭据并支持自动登录
|
|
|
|
|
|
4. **定时API调用** - 登录后每1分钟调用一次接口
|
|
|
|
|
|
5. **系统通知** - 根据API返回值弹出系统消息
|
|
|
|
|
|
6. **模块化架构** - 代码按功能模块组织,便于维护
|
|
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
src-tauri/src/
|
|
|
|
|
|
├── lib.rs # 主模块,应用程序入口和命令处理
|
|
|
|
|
|
├── config.rs # 配置管理模块
|
|
|
|
|
|
├── api.rs # API调用模块
|
|
|
|
|
|
├── tray.rs # 系统托盘模块
|
|
|
|
|
|
└── scheduler.rs # 定时任务模块
|
|
|
|
|
|
|
|
|
|
|
|
src/
|
|
|
|
|
|
└── App.vue # Vue设置界面
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 使用说明
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 启动应用程序
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 开发模式
|
|
|
|
|
|
pnpm tauri dev
|
|
|
|
|
|
|
|
|
|
|
|
# 构建生产版本
|
|
|
|
|
|
pnpm tauri build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 配置设置
|
|
|
|
|
|
- 应用启动后会自动最小化到系统托盘
|
|
|
|
|
|
- 右键点击托盘图标选择"显示设置"打开设置界面
|
|
|
|
|
|
- 输入用户名和密码,点击"保存设置"
|
|
|
|
|
|
|
2026-03-23 09:10:32 +08:00
|
|
|
|
### 3. 登录和监测
|
2026-02-27 09:07:50 +08:00
|
|
|
|
- 保存设置后点击"登录"按钮
|
|
|
|
|
|
- 登录成功后会自动启动定时任务(每1分钟执行一次)
|
|
|
|
|
|
- 系统会根据API返回值显示通知消息
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 托盘操作
|
|
|
|
|
|
- **左键点击托盘图标** - 显示设置界面
|
|
|
|
|
|
- **右键点击托盘图标** - 显示菜单(显示设置/退出)
|
|
|
|
|
|
- **关闭窗口** - 应用会隐藏到托盘而不是退出
|
|
|
|
|
|
|
|
|
|
|
|
## 配置说明
|
|
|
|
|
|
|
|
|
|
|
|
### API接口
|
|
|
|
|
|
应用程序已配置为使用以下API接口:
|
|
|
|
|
|
|
|
|
|
|
|
- **登录接口**: `https://crm.yunvip123.com/api/SystemUser/Login`
|
|
|
|
|
|
- **检查接口**: `https://crm.yunvip123.com/api/DemandManage/QueryIndexCount`
|
|
|
|
|
|
|
|
|
|
|
|
### 认证机制
|
|
|
|
|
|
- 登录时获取 `ASP.NET_SessionId` Cookie
|
|
|
|
|
|
- 所有后续请求都需要携带此Cookie进行认证
|
|
|
|
|
|
|
|
|
|
|
|
### API响应格式
|
|
|
|
|
|
|
|
|
|
|
|
**登录响应 (LoginResponse):**
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"success": true,
|
|
|
|
|
|
"code": null,
|
|
|
|
|
|
"msg": "执行成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"GID": "512860ad-aa4a-4268-a5d9-6c7d2e28680b",
|
|
|
|
|
|
"SU_UserName": "A田森林"
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**检查响应 (CheckResponse):**
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"success": true,
|
|
|
|
|
|
"code": null,
|
|
|
|
|
|
"msg": "执行成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"PendingCount": 0,
|
|
|
|
|
|
"StaycloseCount": 0,
|
|
|
|
|
|
"ConfirmCount": 0
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 通知逻辑
|
|
|
|
|
|
- 当 `PendingCount`、`StaycloseCount`、`ConfirmCount` 三个值都为0时,不发送通知
|
|
|
|
|
|
- 当任意一个值大于0时,发送系统通知,显示具体的工单数量
|
|
|
|
|
|
|
|
|
|
|
|
## 开发说明
|
|
|
|
|
|
|
|
|
|
|
|
### 添加新功能
|
|
|
|
|
|
1. **新的API端点** - 在 `api.rs` 中添加新的方法
|
|
|
|
|
|
2. **新的配置项** - 在 `config.rs` 中添加到 `AppConfig` 结构体
|
|
|
|
|
|
3. **新的UI组件** - 在 `App.vue` 中添加新的界面元素
|
|
|
|
|
|
4. **新的命令** - 在 `lib.rs` 中添加新的 Tauri 命令
|
|
|
|
|
|
|
|
|
|
|
|
### 错误处理
|
|
|
|
|
|
- 所有模块都使用 `anyhow::Result` 进行错误处理
|
|
|
|
|
|
- 错误信息会显示在UI的消息卡片中
|
|
|
|
|
|
- 日志记录使用 `log` crate,可通过环境变量 `RUST_LOG` 控制级别
|
|
|
|
|
|
|
|
|
|
|
|
### 数据持久化
|
|
|
|
|
|
- 用户配置保存在系统配置目录:`%APPDATA%/tauri-app/config.json` (Windows)
|
|
|
|
|
|
- 配置文件使用JSON格式,包含用户名、密码等信息
|
|
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
|
|
1. **安全性** - 密码以明文形式存储在配置文件中,生产环境建议加密
|
|
|
|
|
|
2. **网络请求** - API调用失败时会显示错误通知
|
|
|
|
|
|
3. **系统权限** - 需要通知权限来显示系统消息
|
|
|
|
|
|
4. **托盘图标** - 使用应用程序默认图标,可根据登录状态切换不同图标
|
|
|
|
|
|
|
|
|
|
|
|
## TODO 项目
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 配置实际的API地址和端点
|
|
|
|
|
|
- [x] 实现Cookie认证机制
|
|
|
|
|
|
- [x] 适配实际API响应格式
|
|
|
|
|
|
- [x] 添加更多的配置选项(检查间隔等)
|
|
|
|
|
|
- [x] 添加日志系统和日志显示
|
|
|
|
|
|
- [x] 实现自动启动功能
|
|
|
|
|
|
- [x] 添加网络连接状态检测
|
|
|
|
|
|
- [x] 添加测试按钮(手动检查、停止/开始、最小化等)
|
|
|
|
|
|
- [ ] 实现密码加密存储
|
|
|
|
|
|
- [ ] 支持不同登录状态的托盘图标(图标文件)
|
|
|
|
|
|
- [ ] 添加日志文件输出
|
|
|
|
|
|
- [ ] 实现会话过期自动重新登录
|
|
|
|
|
|
- [ ] 解决Windows编译环境问题(需要Visual Studio Build Tools)
|