# CMVR IoT 管理控制台

招商车研物联网平台 Vue 3 管理端。项目以 RuoYi-Vue3 3.9.2 为新版基础框架，完整迁移原 `cmvr-iot-ui` 的业务页面、API、机器人模型和运行配置，并连接 `RuoYi-Vue-master` 中的 Spring Boot 4 后端。

旧前端仅作为迁移来源，不参与本项目构建。

## 功能范围

- 系统管理：用户、角色、部门、岗位、菜单、字典、参数、通知和文件。
- 系统监控：在线用户、操作日志、登录日志、缓存、服务、Quartz 和 Druid。
- 设备管理：设备注册、终端、机器人、相机、机械臂、灵巧手、机器人头部、麦克风、扬声器和电机。
- 测试平台：测试项目、任务配置、任务编排、检测项、任务实例和执行流程。
- 智能巡检：机器人、地图、点位、任务、执行实例、巡检结果、告警和驾驶舱。
- 交互评价：语音交互、触控交互、评价指标、方案、项目和语料。
- 智能座舱：车机界面、车辆配置、功能配置、流程编辑和执行评价。
- 语料与媒体：语料管理、音频上传、图片预览、视频播放和 WebSocket 实时消息。
- 开发工具：代码生成、表单构建和 Knife4j 接口文档。

## 技术栈

| 组件 | 版本 |
| --- | --- |
| Vue | 3.5.26 |
| Vite | 6.4.1 |
| Element Plus | 2.13.1 |
| Pinia | 3.0.4 |
| Vue Router | 4.6.4 |
| 可视化 | ECharts、Vue Flow、Three.js、Monaco Editor、XGPlayer |

## 环境要求

- Node.js 20 LTS
- pnpm 10
- 后端 `RuoYi-Vue-master/cmvr-iot-admin`

## 开发运行

先启动后端，确认 `http://localhost:13080` 可以访问，然后执行：

```bash
pnpm install
pnpm dev
```

默认地址：

- 前端：`http://localhost:80`
- 后端：`http://localhost:13080`
- Knife4j：`http://localhost:13080/doc.html`

开发配置位于 `.env.development`：

```dotenv
VITE_APP_TITLE=招商车研物联网平台管理系统
VITE_APP_BASE_API=/dev-api
VITE_API_URL=http://localhost:13080
VITE_WS_URL=ws://localhost:13080/ws
VITE_PORT=80
```

## 构建

```bash
pnpm build:dev
pnpm build:stage
pnpm build:prod
pnpm preview
```

生产构建输出到 `dist`。部署时需要由 Nginx 或网关转发 `/prod-api`，并支持 `/ws` WebSocket、文件上传和媒体请求。

## 目录说明

```text
public/models          机器人 URDF 和网格模型
public/inspection      巡检机械臂模型
src/adapters           URDF/Xacro 模型适配
src/api                REST API 封装
src/components         公共及业务组件
src/router             公共路由和隐藏业务路由
src/store              Pinia 状态管理
src/views/device       设备管理与设备控制
src/views/test         测试业务
src/views/flow         流程编排
src/views/inspection   智能巡检
src/views/evaluate     评价管理
src/views/vi           语音交互
src/views/is           智能座舱
src/views/corpusManger 语料管理
```

业务菜单由后端 `/getRouters` 动态返回。数据库菜单中的 `component` 必须与 `src/views` 下的实际页面路径一致，权限字符必须与后端控制器保持一致。

## 配置说明

- `.env.development`：本地开发地址。
- `.env.staging`：测试环境地址。
- `.env.production`：生产环境地址、Node-RED 和 MinIO。
- `vite.config.js`：代理、端口、Monaco 和构建分包。
- `src/settings.js`：布局、页签和版权配置。

生产密码、访问密钥和内部网络配置应通过部署环境注入，不要提交新的敏感信息。
