From 8d103a91abc08ae4045be2f54c69887716ef55c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=A1=E5=A4=8D=E4=B9=A0?= <2353956224@qq.com> Date: Mon, 9 Feb 2026 16:59:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E9=97=AD=E8=BD=AF=E4=BB=B6=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=9D=A1=E4=BB=B6=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 232 +++++++++++++++++++++++++++++++++++++++ src/pages/ConfigPage.vue | 149 ++++++++++++++++++++----- 2 files changed, 351 insertions(+), 30 deletions(-) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..adeec98 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,232 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## 项目概述 + +这是一个基于 Vue 3 的 AI 助手 Web 前端应用(Yolo),可在浏览器和 Electron 环境中运行。项目主要用于自动化私信和内容管理,支持多账号管理、轮换策略和 AI 自动回复功能。 + +## 核心技术栈 + +- **前端框架**: Vue 3(使用 Composition API) +- **构建工具**: Vite +- **样式**: Tailwind CSS +- **HTTP 请求**: Axios +- **运行环境**: 支持浏览器和 Electron 双环境 + +## 常用开发命令 + +```bash +# 安装依赖 +npm install + +# 本地开发(默认端口 5173) +npm run dev + +# 生产构建 +npm run build + +# 预览构建产物 +npm run preview +``` + +## 项目架构 + +### 目录结构 + +``` +src/ +├── api/ # API 接口定义 +├── assets/ # 静态资源(图片等) +├── components/ # Vue 组件 +├── hooks/ # 可复用的组合式函数 +├── layout/ # 布局组件 +├── locales/ # 国际化配置 +├── pages/ # 页面级组件 +├── router/ # 路由配置 +├── styles/ # 全局样式 +├── types/ # TypeScript 类型定义 +├── utils/ # 工具函数 +└── views/ # 视图组件 +``` + +### 关键架构模式 + +#### 双环境支持设计 + +项目通过 `electronBridge.js` 实现 Web 和 Electron 环境的兼容: + +- 使用 `isElectron()` 检测运行环境 +- 通过 `window.electronAPI` 访问 Electron 功能 +- 非 Electron 环境中 API 调用会安全降级 + +#### 页面状态管理 + +应用使用三个主要页面状态: +1. `login` - 登录页面 +2. `config` - 配置页面(账号、AI 设置、任务配置) +3. `browser` - 浏览器视图(9 个视图分为 A/B/C 三组) + +状态存储于 `localStorage`: +- `user_data` - 用户认证信息 +- `autoDm_runConfig` - 自动化运行配置 + +#### 视图分组系统 + +- 9 个视图被分为 3 组(A/B/C),每组 3 个视图 +- 视图 ID 映射:Tab A (1-3), Tab B (4-5), Tab C (7-9) +- 支持账号轮换和自动切换策略 + +### API 请求架构 + +#### 请求拦截器配置 + +- **开发环境**: `http://192.168.2.22:8101` +- **生产环境**: `https://crawlclient.api.yolozs.com` +- **认证**: 通过 `vvtoken` header(登录和租户查询接口除外) +- **超时时间**: 60 秒 +- **错误码 40400**: 强制退出登录并停止脚本 + +#### 关键 API 端点 + +```javascript +// 认证相关 +/api/tenant/get-id-by-name - 根据租户名获取 ID +/api/user/doLogin - 用户登录 +/api/tenant/get-expired-time - 获取账号到期时间 + +// 数据相关 +/api/save_data/hosts_info - 保存主播信息 +/api/save_data/live_host_detail - 查看直播间详情 +/api/common/country_info - 获取国家信息 + +// 账号管理 +/api/account/list - 查询员工列表 +/api/account/managerhosts - 分配主播 +``` + +### Electron 集成要点 + +#### 主要 IPC 通道 + +```javascript +// 视图控制 +electronAPI.showViews() - 显示浏览器视图 +electronAPI.hideViews() - 隐藏浏览器视图 +electronAPI.switchTab(tabId) - 切换标签组 +electronAPI.switchToView(viewId) - 切换到指定视图 + +// 自动化控制 +electronAPI.stopTikTokAutomation(viewId) - 停止自动化任务 +electronAPI.updateAutomationConfig(config) - 更新自动化配置 +electronAPI.clearAllCache() - 清空所有缓存 + +// 状态监听 +electronAPI.onRotationStatusChanged(callback) - 监听轮换状态变化 +electronAPI.onGreetingStatsChanged(callback) - 监听问候统计变化 +electronAPI.onAutomationLog(callback) - 监听自动化日志 + +// 系统功能 +electronAPI.getAppVersion() - 获取应用版本 +electronAPI.checkHealth() - 健康检查 +``` + +#### 健康检查机制 + +每 5 秒执行一次健康检查: +- 检测到错误码 40400 时自动退出登录 +- 仅在 Electron 环境且已登录状态下运行 + +## 样式和 UI 规范 + +### Tailwind 自定义配置 + +项目扩展了以下 Tailwind 主题: + +**主色调**: +- `primary-500` (#3b82f6) 用于主要操作按钮和强调元素 +- 提供完整的 50-900 梯度色阶 + +**自定义动画**: +- `fadeIn` - 淡入效果(0.3s) +- `slideIn` - 滑入效果(0.3s,带 Y 轴位移) + +### 设计原则 + +- 使用渐变背景增强视觉层次:`from-slate-100 to-slate-200` +- 卡片设计使用圆角和阴影:`rounded-2xl shadow-xl` +- 状态指示器使用脉动动画:`animate-pulse` +- 过渡效果统一使用 `transition-all` + +## Vite 配置要点 + +### 路径别名 + +```javascript +'@' -> src/ +``` + +### 开发服务器 + +- 端口:5173 +- 启用网络访问:`host: true` + +### 构建配置 + +- 输出目录:`dist/` +- 禁用 sourcemap(生产环境) + +## 重要约定 + +### 状态管理 + +不使用 Vuex/Pinia,直接使用: +- Composition API 的 `ref`/`reactive` 管理组件状态 +- `localStorage` 持久化关键配置 +- 事件监听器同步跨组件状态 + +### 组件通信 + +- 父子组件:通过 `props` 和 `emit` 事件 +- 跨页面:通过 `storage` 事件监听 `localStorage` 变化 +- Electron 通信:通过 `window.electronAPI` 的 IPC 通道 + +### 错误处理 + +- API 错误通过 Axios 拦截器统一处理 +- 40400 错误码触发全局登出 +- 使用 `try-catch` 保护可能失败的操作(带空 catch 块的是故意忽略错误) + +### 代码风格 + +- 使用 ESLint 的 `eslint-disable-line no-empty` 标记故意为空的 catch 块 +- 组件使用 ` + \ No newline at end of file