# 系统监测应用程序 这是一个基于 Tauri + Vue 开发的系统监测应用程序,具有以下功能: ## 功能特性 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. 配置设置 - 应用启动后会自动最小化到系统托盘 - 右键点击托盘图标选择"显示设置"打开设置界面 - 输入用户名和密码,点击"保存设置" ### 3. 登录和监测 - 保存设置后点击"登录"按钮 - 登录成功后会自动启动定时任务(每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)