work-order-monitor/README_APP.md

4.1 KiB
Raw Blame 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. 启动应用程序

# 开发模式
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):

{
  "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
  }
}

通知逻辑

  • PendingCountStaycloseCountConfirmCount 三个值都为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 项目

  • 配置实际的API地址和端点
  • 实现Cookie认证机制
  • 适配实际API响应格式
  • 添加更多的配置选项(检查间隔等)
  • 添加日志系统和日志显示
  • 实现自动启动功能
  • 添加网络连接状态检测
  • 添加测试按钮(手动检查、停止/开始、最小化等)
  • 实现密码加密存储
  • 支持不同登录状态的托盘图标(图标文件)
  • 添加日志文件输出
  • 实现会话过期自动重新登录
  • 解决Windows编译环境问题需要Visual Studio Build Tools