# ruoyi-screen

Vue 3 + Vite + **ECharts** 大屏前端子项目（与 `ruoyi-ui` 独立）。

**规范说明**：`doc/可视化大屏.md`  
**Cursor 规则**：仓库根目录 `.cursor/rules/ruoyi-screen.mdc`（编辑本目录下文件时会自动带上约束）

**注意：本仓库根目录 `huimv-baqing` 下没有 `package.json`，必须在进入 `ruoyi-screen` 后再执行 npm 命令。** 若在根目录运行 `npm run dev`，会报错 `ENOENT: no such file or directory, open '.../package.json'`。

## 环境

- **Node.js ≥ 16.14** 即可（当前使用 **Vite 4**，避免在 Node 16 上出现 `crypto.getRandomValues is not a function`；Vite 5 需 Node ≥ 18）。
- 若已升级 **Node ≥ 18**，可自行把 `package.json` 里 `vite`、`@vitejs/plugin-vue` 升到 5.x。

## 命令

```bash
cd ruoyi-screen
npm install
npm run dev
```

浏览器访问终端里打印的本地地址（一般为 `http://localhost:5173`）。

```bash
npm run build
npm run preview
```

## ECharts 用法

封装组件：`src/components/ScreenChart.vue`  
传入 `option`（与 [ECharts option](https://echarts.apache.org/zh/option.html) 一致），组件负责 `init` / `resize` / `dispose`。

按需可改为：

```js
import * as echarts from "echarts/core"
import { BarChart } from "echarts/charts"
import { GridComponent, TooltipComponent, TitleComponent } from "echarts/components"
import { CanvasRenderer } from "echarts/renderers"
echarts.use([BarChart, GridComponent, TooltipComponent, TitleComponent, CanvasRenderer])
```

以减小打包体积。

## 常见问题（`npm run dev` 报错）

1. **ENOENT / 找不到 package.json**  
   先执行：`cd ruoyi-screen`（或你的本机路径下的 `ruoyi-screen`），再 `npm install`、`npm run dev`。

2. **找不到 vite / 依赖不完整**  
   在 `ruoyi-screen` 目录执行：`npm install`。

3. **端口被占用**  
   修改 `vite.config.js` 里 `server.port`，或关掉占用 5173 端口的程序。

4. **`crypto.getRandomValues is not a function`（启动 dev 失败）**  
   多为 Node 16 + Vite 5 不兼容。本项目已固定 **Vite 4**；请在 `ruoyi-screen` 目录删除 `node_modules` 与 `package-lock.json` 后重新执行 `npm install`。仍建议长期升级到 **Node 18 LTS**。
