# 工单系统监测 基于 **Tauri 2.x + Vue 3** 的工单监测桌面应用,用于监测 CRM 系统的待处理工单并发送系统通知。 ## 环境要求 - Node.js >= 18 - Rust (stable) - Visual Studio Build Tools(Windows,含 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` — 进程管理(重启)