4.3 KiB
4.3 KiB
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 作为包管理器。
# 启动开发模式(前端 + Tauri)
pnpm run tauri-dev
# 仅启动前端开发服务器
pnpm run dev
# 前端类型检查 + 构建
pnpm run build
# 构建 Tauri 生产版本(含签名/安装包)
pnpm run tauri-build
# 构建并发布
pnpm run deploy
# 版本号管理(默认 patch)
pnpm run version # patch
pnpm run version:minor
pnpm run version:major
# 代码检查
pnpm run lint
pnpm run lint:fix
# 规范提交(commitizen + cz-git)
pnpm run commit
# Rust 后端检查
cd src-tauri && cargo check
cd src-tauri && cargo clippy
架构概述
前端驱动架构:所有业务逻辑(API 调用、定时任务、通知)都在 Vue 前端实现,Rust 后端仅负责系统级功能(窗口管理、插件注册)。
前端分层(src/)
Stores(Pinia):
stores/monitor.ts— 核心业务:登录、轮询检查工单、推迟/暂停逻辑、托盘联动stores/app.ts— 全局配置(轮询间隔、自启动、静默启动等),配置持久化到localStorage(key:crm_config)stores/log.ts— 运行日志管理stores/network.ts— 网络状态检测
Composables:
composables/useNotification.ts— 系统通知封装(tauri-plugin-notification)composables/useTray.ts— 系统托盘创建、图标/菜单动态更新composables/useUpdater.ts— 应用自动更新(tauri-plugin-updater)composables/useMonitor.ts— 监测相关辅助逻辑
Constants:
constants/api.ts— 所有 API URL 集中定义(LOGIN_URL、CHECK_URL、WORK_ORDER_URL)constants/app.ts— 应用级常量
Utils:
utils/storage.ts— localStorage 读写封装utils/common.ts— 通用工具函数(formatTime等)
Rust 后端(src-tauri/src/)
lib.rs— 应用初始化、插件注册、窗口关闭事件处理(关闭→隐藏到托盘,发出close-requested事件)
关键数据流
App.vue初始化:加载配置 → 加载凭据 → 初始化托盘 → 监听通知动作事件 + 关闭事件monitorStore.startMonitoring()执行登录(密码或 Token 模式),成功后启动setInterval轮询- 工单有待处理项时调用
useNotification.notify(),通知动作(推迟/去处理)通过 Tauri 事件回传 - 托盘图标/菜单通过
watch([isMonitoring, isPostponed, ticketCounts])自动同步
API 集成
- 登录:
POST https://crm.yunvip123.com/api/SystemUser/Login - 工单查询:
GET https://crm.yunvip123.com/api/DemandManage/QueryIndexCount - 认证方式:登录响应
set-cookie中提取ASP.NET_SessionId,后续请求携带 - HTTP 白名单配置在
src-tauri/capabilities/default.json
通知触发条件
当 PendingCount(待处理)、StaycloseCount(待关闭)、ConfirmCount(待确认)任意 > 0 时触发。
代码规范
- Vue 组件使用
<script setup lang="ts">+<style lang="scss" scoped> - 方法定义优先使用
function关键字(而非箭头函数赋值) props尽量提供default默认值;在script中使用props时通过toRefs(props)解构- 新增成员变量和方法须加注释
关键配置文件
src-tauri/capabilities/default.json— Tauri 权限配置(HTTP 白名单、插件权限)src-tauri/tauri.conf.json— 应用配置(窗口、图标、bundle、updater 端点).env/.env.development/.env.production— 环境变量vite.config.ts— Vite 配置,开发服务器端口 1420,HMR 端口 1421
依赖的 Tauri 插件
tauri-plugin-http— HTTP 请求tauri-plugin-notification— 系统通知tauri-plugin-autostart— 开机自启动tauri-plugin-opener— 打开外部链接tauri-plugin-updater— 应用自动更新tauri-plugin-store— 持久化存储tauri-plugin-process— 进程控制
Windows 编译要求
需要安装 Visual Studio Build Tools(包含 C++ 工具链)才能编译 Rust 后端。