work-order-monitor/README_APP.md

138 lines
4.1 KiB
Markdown
Raw Normal View History

# 系统监控应用程序
这是一个基于 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