work-order-monitor/README_APP.md

138 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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