work-order-monitor/CLAUDE.md

75 lines
2.5 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.

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## 项目概述
这是一个基于 **Tauri 2.x + Vue 3** 的工单监测桌面应用,用于监测 CRM 系统crm.yunvip123.com的待处理工单并发送系统通知。
## 常用命令
项目使用 **pnpm** 作为包管理器(存在 package-lock.json
```bash
# 启动开发模式(前端 + Tauri
pnpm run tauri dev
# 仅启动前端开发服务器
pnpm run dev
# 构建生产版本
pnpm run tauri build
# 前端类型检查 + 构建
pnpm run build
# Rust 后端检查
cd src-tauri && cargo check
cd src-tauri && cargo clippy
```
## 架构概述
**前端驱动架构**所有业务逻辑API 调用、定时任务、通知)都在 Vue 前端实现Rust 后端仅负责系统级功能。
### 前端src/
- `src/App.vue` - 主界面,包含全部业务逻辑:用户认证、监测调度、通知、网络检测、配置管理、系统托盘
- 使用 Vue 3 Composition API`<script setup>`
- Vite 开发服务器端口1420HMR 端口1421
- 系统托盘使用 `@tauri-apps/api/tray``@tauri-apps/api/menu` 实现
### Rust 后端src-tauri/src/
- `lib.rs` - 应用初始化、插件注册、窗口关闭事件处理(关闭→隐藏到托盘)
### Tauri 命令
无自定义命令(所有功能通过前端 API 实现)
### API 集成
- 登录:`POST https://crm.yunvip123.com/api/SystemUser/Login`
- 工单查询:`GET https://crm.yunvip123.com/api/DemandManage/QueryIndexCount`
- 认证方式ASP.NET_SessionId Cookie
- HTTP 白名单配置在 `src-tauri/capabilities/default.json`
### 通知触发条件
当以下任意计数 > 0 时触发系统通知:
- `PendingCount`(待处理)
- `StaycloseCount`(待关闭)
- `ConfirmCount`(待确认)
## 关键配置
- `src-tauri/capabilities/default.json` - Tauri 权限配置HTTP 白名单、插件权限)
- `src-tauri/tauri.conf.json` - 应用配置窗口、图标、bundle
- 用户配置文件路径:`%APPDATA%/work-order-monitor/config.json`Windows
## 依赖的 Tauri 插件
- `tauri-plugin-http` - HTTP 请求
- `tauri-plugin-notification` - 系统通知
- `tauri-plugin-autostart` - 开机自启动
- `tauri-plugin-opener` - 打开外部链接
## Windows 编译要求
需要安装 Visual Studio Build Tools包含 C++ 工具链)才能编译 Rust 后端。