work-order-monitor/README_APP.md

128 lines
3.7 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 2.x + Vue 3** 的工单监测桌面应用,用于监测 CRM 系统的待处理工单并发送系统通知。
## 环境要求
- Node.js >= 18
- Rust (stable)
- Visual Studio Build ToolsWindows含 C++ 工具链)
## 开发
```bash
# 安装依赖
pnpm install
# 启动开发模式(前端 + Tauri
pnpm tauri dev
# 仅启动前端
pnpm dev
```
## 构建
签名密钥已包含在项目中(`.tauri/` 目录),构建脚本会自动加载,直接运行:
```bash
pnpm run tauri-build
```
构建产物位于 `src-tauri/target/release/bundle/nsis/`
## 版本号管理
使用自定义脚本统一更新 `package.json`、`tauri.conf.json`、`Cargo.toml` 三个文件的版本号:
```bash
node scripts/bump-version.mjs # 默认 patch: 0.2.0 → 0.2.1
node scripts/bump-version.mjs minor # minor: 0.2.0 → 0.3.0
node scripts/bump-version.mjs major # major: 0.2.0 → 1.0.0
node scripts/bump-version.mjs 1.2.3 # 指定版本
```
## 发布
构建完成后,运行发布脚本将安装包和更新元数据上传到远程服务器:
```bash
node scripts/publish.mjs --notes "更新说明"
```
脚本会自动:
1. 从构建产物中读取 `.nsis.zip``.nsis.zip.sig`
2. 生成 `update.json`(供应用内自动更新使用)
3. 通过 SCP 上传到服务器 `192.168.2.127:/var/www/html/work-order-monitor/`
更新地址:`http://web.nps.yunvip123.cn/work-order-monitor/update.json`
## 完整发版流程
```bash
# 1. 更新版本号
node scripts/bump-version.mjs minor
# 2. 构建
pnpm run tauri-build
# 3. 发布到服务器
node scripts/publish.mjs --notes "v0.3.0 新功能说明"
```
## 签名密钥
项目已内置 updater 签名密钥(`.tauri/signing-key` 和 `.tauri/signing-key.pub`),无密码保护,任何人克隆项目后即可直接构建。
如需重新生成密钥:
```bash
pnpm tauri signer generate -w .tauri/signing-key -p "" --ci -f
```
生成后需将 `.tauri/signing-key.pub` 的内容更新到 `src-tauri/tauri.conf.json``plugins.updater.pubkey` 字段。
## 项目结构
```
src/ # 前端Vue 3
├── App.vue # 主界面
├── stores/monitor.ts # Pinia 状态管理(核心业务逻辑)
├── components/
│ ├── MonitorControl.vue # 监测面板(工单数据卡片)
│ ├── LoginForm.vue # 登录表单
│ ├── SettingsPanel.vue # 配置面板
│ ├── StatusHeader.vue # 顶部状态栏
│ ├── LogViewer.vue # 日志查看器
│ ├── CloseDialog.vue # 关闭确认弹窗
│ └── UpdateDialog.vue # 更新确认弹窗
src-tauri/ # Rust 后端
├── src/lib.rs # 应用初始化、插件注册
├── src/notification.rs # Windows Toast 通知
├── tauri.conf.json # Tauri 配置
├── capabilities/default.json # 权限配置
scripts/
├── build.mjs # 构建(自动加载签名密钥)
├── bump-version.mjs # 版本号管理
└── publish.mjs # 构建发布
```
## 监测的 API
| 接口 | 说明 | 触发通知条件 |
| --- | --- | --- |
| `SystemUser/Login` | 登录获取 Session | - |
| `DemandManage/QueryIndexCount` | 工单统计 | PendingCount / StaycloseCount / ConfirmCount > 0 |
| `DemandManage/GetWorkOrderListPage` | 待审核工单列表 | DataCount > 0 |
## Tauri 插件
- `tauri-plugin-http` — HTTP 请求
- `tauri-plugin-notification` — 系统通知
- `tauri-plugin-autostart` — 开机自启动
- `tauri-plugin-opener` — 打开外部链接
- `tauri-plugin-updater` — 应用内自动更新
- `tauri-plugin-process` — 进程管理(重启)