diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index faacd14b6..000000000 --- a/CLAUDE.md +++ /dev/null @@ -1,297 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## 项目概述 - -IoT 设备管理前端,基于 Vue 3 + Vben Admin 框架构建的 Turborepo monorepo。包含 4 个 UI 框架变体(Ant Design、Element Plus、Naive UI、TDesign),共享核心代码库。 - -**生产部署信息:** -- **容器名称:** `aiot-web-antd`(生产使用 Ant Design 版本) -- **端口映射:** 9090:80 -- **部署位置:** 腾讯云服务器 `/opt/vsp-platform` -- **后端 API:** http://服务器IP:48080(芋道微服务网关) -- **访问地址:** http://服务器IP:9090 -- **默认账号:** admin / admin123 - -## 常用命令 - -### 安装依赖 - -```bash -# 需要 pnpm 10.0.0+ 和 Node.js 20.19.0+ -pnpm install -``` - -### 本地开发 - -```bash -# 运行 Ant Design 版本(生产使用) -pnpm dev:antd - -# 运行其他版本 -pnpm dev:ele # Element Plus -pnpm dev:naive # Naive UI -pnpm dev:tdesign # TDesign - -# 开发服务器默认端口:5666 -# 访问:http://localhost:5666 -``` - -### 构建 - -```bash -# 构建 Ant Design 版本 -pnpm build:antd - -# 构建所有版本 -pnpm build - -# 构建其他版本 -pnpm build:ele -pnpm build:naive -pnpm build:tdesign -``` - -### 代码质量 - -```bash -# 代码检查 -pnpm lint - -# 代码格式化 -pnpm format - -# TypeScript 类型检查 -pnpm check:type - -# 检查循环依赖 -pnpm check:circular -``` - -### 测试 - -```bash -# 单元测试(Vitest) -pnpm test:unit - -# E2E 测试(Playwright) -pnpm test:e2e -``` - -### 清理 - -```bash -# 清理构建产物 -pnpm clean - -# 清理并重新安装依赖 -pnpm reinstall -``` - -### Docker 部署(生产环境) - -```bash -# 构建 Ant Design 版本镜像 -cd apps/web-antd -docker build -t aiot-web-antd:latest . - -# 运行容器 -docker run -d \ - --name aiot-web-antd \ - -p 9090:80 \ - -e VITE_BASE_URL=http://服务器IP:48080 \ - aiot-web-antd:latest - -# 查看日志 -docker logs -f aiot-web-antd - -# 重启容器 -docker restart aiot-web-antd -``` - -## 项目结构 - -### 目录组织 - -``` -iot-device-management-frontend/ -├── apps/ # 应用层(4 个 UI 框架变体) -│ ├── web-antd/ # Ant Design 版本(生产使用) -│ ├── web-ele/ # Element Plus 版本 -│ ├── web-naive/ # Naive UI 版本 -│ └── web-tdesign/ # TDesign 版本 -├── packages/ # 共享包 -│ ├── @core/ # 核心库(框架无关) -│ │ ├── base/ # 基础库(design tokens, icons, shared) -│ │ ├── composables/ # Vue composables -│ │ ├── preferences/ # 设置管理 -│ │ └── ui-kit/ # UI 组件(form, layout, menu, popup, tabs) -│ ├── effects/ # 功能包 -│ │ ├── access/ # 访问控制 -│ │ ├── hooks/ # React-like hooks -│ │ ├── layouts/ # 布局组件 -│ │ └── plugins/ # 插件(echarts, vxe-table等) -│ └── constants/ # 共享常量 -├── internal/ # 内部工具 -│ ├── lint-configs/ # ESLint、Prettier、Stylelint 配置 -│ ├── tsconfig/ # TypeScript 配置 -│ ├── vite-config/ # Vite 配置 -│ └── tailwind-config/ # Tailwind CSS 配置 -└── docs/ # 文档站点 -``` - -### 核心概念 - -**Workspace 架构:** -- 使用 pnpm workspaces 管理 monorepo -- 使用 Turborepo 进行构建优化 -- 所有 apps 共享 `@core` 和 `effects` 包 -- 修改 `@core` 包自动反映到所有 apps(Vite HMR) - -**包命名规范:** -- `@vben/` — Vben Admin 框架包 -- `@core/` — 项目核心包 -- `workspace:*` — workspace 内部依赖 - -## 关键页面路由 - -### AIoT 告警管理 -- `/aiot/alarm/event` — 告警事件列表 - - 分页、筛选、统计 - - 实时 WebSocket 推送 - - 告警处理(确认、忽略、派单) - -### 边缘设备管理 -- `/aiot/edge/device` — 边缘设备列表 - - 设备状态监控 - - 告警数统计 - -### 摄像头与 ROI 管理 -- `/aiot/camera` — 摄像头管理 - - 摄像头列表、添加、编辑 - - 与 WVP 平台同步 -- `/aiot/roi` — ROI 区域配置 - - ROI 绘制(polygon) - - 算法绑定配置 - -## 环境配置 - -### 开发环境(apps/web-antd/.env.development) - -```bash -VITE_PORT=5666 # 开发服务器端口 -VITE_BASE_URL=http://127.0.0.1:48080 # 后端 API 地址 -VITE_GLOB_API_URL=/admin-api # API 路径前缀 -VITE_DEVTOOLS=false # Vue DevTools -VITE_APP_DEFAULT_USERNAME=admin # 默认用户名 -VITE_APP_DEFAULT_PASSWORD=admin123 # 默认密码 -``` - -### 生产环境(apps/web-antd/.env.production) - -```bash -VITE_BASE_URL=http://服务器IP:48080 -VITE_GLOB_API_URL=/admin-api -``` - -## API 集成 - -### 后端接口(通过 aiot-gateway 48080) - -**告警事件:** -- `GET /admin-api/aiot/alarm/event/page` — 分页查询 -- `GET /admin-api/aiot/alarm/event/get` — 获取详情 -- `PUT /admin-api/aiot/alarm/event/handle` — 处理告警 -- `GET /admin-api/aiot/alarm/event/statistics` — 统计 - -**边缘设备:** -- `GET /admin-api/aiot/edge/device/page` — 分页查询 -- `GET /admin-api/aiot/edge/device/statistics` — 统计 - -**WebSocket(直连 vsp-service 8000):** -- `ws://服务器IP:8000/ws/alerts` — 实时告警推送 - -### API 调用示例 - -```typescript -// 使用 @vben/request 统一请求工具 -import { requestClient } from '@vben/request'; - -// 查询告警列表 -const response = await requestClient.get('/admin-api/aiot/alarm/event/page', { - params: { pageNo: 1, pageSize: 20 } -}); - -// 处理告警 -await requestClient.put('/admin-api/aiot/alarm/event/handle', { - id: alarmId, - handleStatus: 'CONFIRMED', - handleRemark: '已确认' -}); -``` - -## 开发工作流 - -### 添加新页面 -1. 在 `apps/web-antd/src/views/` 下创建页面组件 -2. 在 `apps/web-antd/src/router/routes/modules/` 添加路由配置 -3. 如果是共享组件,放到 `packages/@core/ui-kit/` 或 `packages/effects/common-ui/` - -### 修改共享组件 -1. 修改 `packages/@core/ui-kit/` 下的组件 -2. Vite HMR 自动刷新所有使用该组件的 apps -3. 无需重新构建 - -### 添加 API 接口 -1. 在 `apps/web-antd/src/api/` 创建 API 文件 -2. 使用 `requestClient` 发起请求 -3. 定义 TypeScript 类型 - -### 国际化(i18n) -- 语言文件:`apps/web-antd/src/locales/langs/` -- 中文:`zh-CN/` -- 英文:`en-US/` - -## 常见问题 - -### pnpm install 失败 -```bash -# 清理并重装 -pnpm clean -rm -rf node_modules pnpm-lock.yaml -pnpm install -``` - -### 构建失败:循环依赖 -```bash -# 检查循环依赖 -pnpm check:circular -``` - -### 类型错误 -```bash -# 运行类型检查 -pnpm check:type -``` - -### WebSocket 连接失败 -检查 vsp-service 是否运行: -```bash -docker logs vsp-service -``` - -## Git 提交规范 - -在修改代码后,使用中文提交信息: - -```bash -git add . -git commit -m "功能:添加XXX功能 - -详细说明... - -Co-Authored-By: Claude Sonnet 4.5 " -``` - -**不要立即 push**,等待用户指示再推送到远程。