|
|
||
|---|---|---|
| .claude | ||
| .husky | ||
| .serena | ||
| .tauri | ||
| .vscode | ||
| data | ||
| public | ||
| scripts | ||
| src | ||
| src-tauri | ||
| .czrc | ||
| .editorconfig | ||
| .env | ||
| .env.development | ||
| .env.production | ||
| .gitignore | ||
| README.md | ||
| commitlint.config.cjs | ||
| eslint.config.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| prettier.config.js | ||
| run.bat | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
README.md
工单系统监测
基于 Tauri 2.x + Vue 3 + TypeScript 的工单监测桌面应用,用于监测 CRM 系统的待处理工单并发送系统通知。
环境要求
- Node.js >= 18
- Rust(stable)
- Visual Studio Build Tools(Windows,含 C++ 工具链)
- pnpm
推荐 IDE: VS Code + Vue - Official + Tauri + rust-analyzer
开发
# 安装依赖
pnpm install
# 启动开发模式(前端 + Tauri)
pnpm run tauri-dev
# 仅启动前端开发服务器
pnpm run dev
构建
签名密钥已包含在项目中(.tauri/ 目录),构建脚本会自动加载,直接运行:
pnpm run tauri-build
构建产物位于 src-tauri/target/release/bundle/nsis/。
版本号管理
使用自定义脚本统一更新 package.json、tauri.conf.json、Cargo.toml 三个文件的版本号:
pnpm run version:patch # 补丁版本 x.y.Z → x.y.Z+1
pnpm run version:minor # 次版本 x.Y.z → x.Y+1.0
pnpm run version:major # 主版本 X.y.z → X+1.0.0
pnpm run version -- 1.2.3 # 指定版本号
发布
构建完成后,运行发布脚本将安装包和更新元数据上传到远程服务器:
pnpm run publish -- --notes "更新说明"
脚本会自动:
- 从构建产物中读取
.nsis.zip和.nsis.zip.sig - 生成
update.json(供应用内自动更新使用) - 通过 SCP 上传到服务器
192.168.2.127:/var/www/html/work-order-monitor/
更新地址:http://web.nps.yunvip123.cn/work-order-monitor/update.json
完整发版流程
# 1. 更新版本号
pnpm run version:minor
# 2. 构建
pnpm run tauri-build
# 3. 发布到服务器
pnpm run publish -- --notes "v0.3.0 新功能说明"
或一键构建 + 发布:
pnpm run release
签名密钥
项目已内置 updater 签名密钥(.tauri/signing-key 和 .tauri/signing-key.pub),无密码保护,任何人克隆项目后即可直接构建。
如需重新生成密钥:
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— 进程管理(重启)