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