Files
yunrui_asset/README.md
T

390 lines
10 KiB
Markdown
Raw Normal View History

2025-12-18 10:45:13 +08:00
# IDC设备管理系统
2026-01-21 15:21:46 +08:00
一个现代化的数据中心(IDC)设备管理系统,提供机房、机柜、设备的全生命周期管理,具备3D可视化展示功能。
2025-12-18 10:45:13 +08:00
## 代码仓库
- **Gitee**: https://gitee.com/zhang96110/idc_assest
2026-01-21 15:21:46 +08:00
## 系统概述
2025-12-18 10:45:13 +08:00
### 核心功能
2025-12-18 10:45:13 +08:00
2026-02-05 13:59:28 +08:00
| 功能模块 | 描述 |
|---------|------|
| **机房管理** | 多机房管理,支持位置、面积等详细信息 |
| **机柜管理** | 机柜增删改查,容量统计,3D可视化展示 |
| **设备管理** | 服务器、网络设备、存储设备全生命周期管理,支持批量导入/导出 |
| **端口管理** | 设备端口配置与管理,支持网卡绑定 |
| **线缆管理** | 机柜间线缆连接管理,可视化追踪 |
| **工单管理** | 故障报修、维护工单全流程管理,支持自定义字段 |
| **耗材管理** | 耗材库存、领用记录、统计报表管理 |
| **数据看板** | 实时监控数据中心整体运行状态 |
| **3D可视化** | 三维机柜可视化展示,支持设备悬停详情、LOD优化 |
| **系统配置** | 设备字段、工单字段自定义管理,背景配置 |
| **用户权限** | 基于角色的权限控制(RBAC) |
### 项目截图
![数据看板](docs/images/dashboard.png)
*数据看板 - 实时监控数据中心运行状态*
![3D机柜可视化](docs/images/3d-visualization.png)
*3D机柜可视化 - 三维展示机柜设备布局*
![设备管理](docs/images/device-management.png)
*设备管理 - 设备全生命周期管理*
![机房管理](docs/images/room-management.png)
*机房管理 - 多机房分类管理*
2026-01-21 15:21:46 +08:00
### 技术栈
2026-02-05 13:59:28 +08:00
#### 前端技术栈
| 技术 | 版本 | 用途 |
2026-01-21 15:21:46 +08:00
|------|------|------|
2026-02-05 13:59:28 +08:00
| React | 18.2.0 | 前端框架(用户界面开发库) |
| Vite | 4.4.9 | 构建工具(前端项目打包工具) |
| Ant Design | 5.8.6 | UI组件库(企业级设计系统) |
| Three.js | 0.160.0 | 3D渲染引擎 |
| React Router | 6.15.0 | 路由管理 |
| Axios | 1.5.0 | HTTP客户端 |
| Day.js | 1.11.19 | 日期处理库 |
| SheetJS (xlsx) | 0.18.5 | Excel文件处理 |
| PapaParse | 5.5.3 | CSV文件解析 |
#### 后端技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| Node.js | ≥14.0.0 | 运行环境 |
| Express | 4.18.2 | Web框架(后端服务框架) |
| Sequelize | 6.32.1 | ORM框架(数据库对象关系映射) |
| SQLite/MySQL | 5.1.6/8.0+ | 数据库 |
| JWT | 9.0.3 | 身份认证 |
| bcryptjs | 3.0.3 | 密码加密 |
| Winston | 3.19.0 | 日志管理 |
| Jest | 30.2.0 | 测试框架 |
2026-01-21 15:21:46 +08:00
## 项目结构
2025-12-18 10:45:13 +08:00
```
2026-01-21 15:21:46 +08:00
jigui/
├── frontend/ # 前端项目
│ ├── src/
│ │ ├── api/ # API接口封装
2026-02-05 13:59:28 +08:00
│ │ ├── assets/ # 静态资源(字体、3D环境贴图)
2026-01-21 15:21:46 +08:00
│ │ ├── components/ # 通用组件
2026-02-05 13:59:28 +08:00
│ │ │ ├── 3d/ # 3D可视化组件
│ │ │ │ ├── materials/ # 3D材质组件
│ │ │ │ ├── DeviceModel.jsx # 设备模型
│ │ │ │ ├── RackModel.jsx # 机柜模型
│ │ │ │ ├── Scene.jsx # 3D场景
│ │ │ │ └── LODManager.jsx # LOD管理器
│ │ │ └── *.jsx # 业务组件
│ │ ├── context/ # React Context状态管理
│ │ ├── hooks/ # 自定义Hooks
│ │ ├── pages/ # 页面模块
│ │ └── utils/ # 工具函数
│ ├── public/ # 公共资源
2026-01-21 15:21:46 +08:00
│ └── vite.config.js # Vite配置
├── backend/ # 后端项目
2026-02-05 13:59:28 +08:00
│ ├── middleware/ # 中间件(认证、验证)
│ ├── models/ # 数据模型(Sequelize
2026-01-21 15:21:46 +08:00
│ ├── routes/ # API路由
2026-02-05 13:59:28 +08:00
│ ├── scripts/ # 数据库脚本
│ ├── uploads/ # 文件上传目录
│ ├── validation/ # 数据验证Schema
2026-01-21 15:21:46 +08:00
│ └── server.js # 服务入口
├── docs/ # 项目文档
2026-02-05 13:59:28 +08:00
│ ├── api/ # 接口文档
│ └── images/ # 文档图片
├── install.js # 交互式安装脚本 ⭐
├── update.js # 一键更新脚本 ⭐
├── uninstall.js # 卸载脚本
├── check.js # 环境检查脚本
├── modify.js # 配置修改脚本
2026-01-21 15:21:46 +08:00
├── README.md # 项目说明
├── CHANGELOG.md # 版本记录
└── DEPLOYMENT.md # 部署指南
2025-12-18 10:45:13 +08:00
```
2026-01-21 15:21:46 +08:00
## 快速开始
2025-12-18 10:45:13 +08:00
2026-02-05 13:59:28 +08:00
### 方式一:一键部署脚本(推荐)⭐
2025-12-18 10:45:13 +08:00
我们提供了交互式安装脚本,自动完成所有部署步骤:
2026-01-21 15:21:46 +08:00
```bash
# 克隆项目
git clone https://gitee.com/zhang96110/idc_assest.git
cd idc_assest
# 运行交互式安装脚本
npm run deploy
# 或
node install.js
```
**脚本功能:**
- ✅ 自动检测 Node.js、npm、PM2、Nginx
-**Linux 支持自动安装 Node.js**(交互式)
- ✅ 交互式配置数据库(SQLite/MySQL
- ✅ 交互式选择运行环境(development/production
- ✅ 交互式选择前端部署方式(Nginx/PM2 serve
- ✅ 自动安装项目依赖
- ✅ 自动初始化数据库
- ✅ 自动构建前端项目
- ✅ 使用 PM2 启动和管理服务
**交互配置示例:**
```
▶ 环境检测
✓ Node.js v20.11.0
✓ npm 10.2.4
✓ PM2 已安装
▶ 数据库配置
选择数据库类型:
1. SQLite(零配置,适合开发/小规模)
2. MySQL(生产环境推荐)
请选择 (1): 1
▶ 服务配置
后端服务端口 (8000):
选择运行环境:
1. production(生产模式,性能优化,推荐正式部署)
2. development(开发模式,详细日志,便于调试)
请选择 (1): 1
前端部署方式:
1. Nginx(性能最优,推荐生产环境)
2. PM2 serve(简单快捷,无需额外安装)
请选择 (1): 1
▶ 配置确认
部署配置摘要:
数据库类型: sqlite
后端端口: 8000
运行环境: production
前端部署: nginx
前端端口: 80
确认以上配置并开始部署? (Y/n): Y
✓ 后端环境变量文件已生成 (.env)
2026-02-05 13:59:28 +08:00
✓ PM2 配置文件已生成 (ecosystem.config.js)
✓ Nginx 配置文件已生成 (nginx-idc.conf)
✓ 安装部署完成!
```
### 方式二:手动安装
#### 环境要求
2026-02-05 13:59:28 +08:00
| 项目 | 要求 |
|------|------|
| Node.js | ≥14.0.0(推荐 20.x LTS |
| npm | ≥6.0.0 |
| 操作系统 | Windows 10/11、macOS、Linux |
#### 安装步骤
```bash
# 1. 克隆项目
git clone https://gitee.com/zhang96110/idc_assest.git
cd idc_assest
# 2. 安装后端依赖
2026-01-21 15:21:46 +08:00
cd backend
npm install
# 3. 安装前端依赖
2026-01-21 15:21:46 +08:00
cd ../frontend
npm install
# 4. 配置环境变量
2026-01-21 15:21:46 +08:00
cd ../backend
cp .env.example .env
# 5. 启动服务
2026-01-21 15:21:46 +08:00
# 启动后端(端口8000
npm run dev
# 启动前端(端口3000- 新终端
cd ../frontend
npm run dev
```
2026-01-21 15:21:46 +08:00
**访问地址**
- 前端应用:http://localhost:3000
- 后端APIhttp://localhost:8000/api
2026-02-05 13:59:28 +08:00
- 健康检查:http://localhost:8000/health
## 更新升级
2026-02-05 13:59:28 +08:00
### 一键更新(推荐)⭐
```bash
npm run update
```
功能:自动备份 → 拉取代码 → 更新依赖 → 重建前端 → 重启服务
### 手动更新
```bash
# 拉取最新代码
git pull
# 更新后端
cd backend && npm install
# 更新前端并构建
cd ../frontend && npm install && npm run build
# 重启服务
pm2 restart idc-backend
```
2026-02-05 13:59:28 +08:00
## 主要功能详解
2026-01-21 15:21:46 +08:00
### 机房管理
2026-02-05 13:59:28 +08:00
- 多机房支持,机房详细信息记录
- 按机房分类管理机柜
- 机房容量统计与状态展示
2026-01-21 15:21:46 +08:00
### 机柜管理
2026-02-05 13:59:28 +08:00
- 机柜增删改查,支持自定义高度(U数)
- 机柜容量统计,功率管理
- 3D可视化展示,支持视角控制
2026-01-21 15:21:46 +08:00
### 设备管理
2026-02-05 13:59:28 +08:00
- 设备全生命周期管理(采购→上线→维护→报废)
- 批量导入/导出(支持Excel/CSV
- 设备状态跟踪与筛选
- 自定义设备字段,灵活扩展
- 网卡管理与端口配置
### 端口与线缆管理
- 设备端口配置(类型、速率、状态)
- 网卡管理与绑定
- 线缆连接管理,可视化追踪
- 支持批量配置
2026-01-21 15:21:46 +08:00
### 工单管理
2026-02-05 13:59:28 +08:00
- 故障报修流程,支持附件上传
- 维护工单创建与处理
- 工单状态追踪,操作记录审计
- 自定义工单字段和分类
2026-01-21 15:21:46 +08:00
### 耗材管理
2026-02-05 13:59:28 +08:00
- 耗材分类管理,规格定义
- 库存监控,预警提醒
- 领用记录,使用追踪
- 耗材使用统计报表
2026-01-21 15:21:46 +08:00
### 数据看板
2026-02-05 13:59:28 +08:00
- 实时统计图表(设备状态、容量使用)
- 关键指标监控
- 趋势分析
2026-01-21 15:21:46 +08:00
### 3D可视化
2026-02-05 13:59:28 +08:00
- 三维机柜展示,真实比例渲染
- 设备悬停详情查看
- LOD(多级细节)优化,流畅渲染
- 设备弹出动画(可开关)
- 视角控制(旋转、缩放、平移)
2026-01-21 15:21:46 +08:00
## API接口
完整接口文档请参考 [docs/api/README.md](docs/api/README.md)。
### 基础信息
2026-02-05 13:59:28 +08:00
| 项目 | 值 |
|------|-----|
| Base URL | `http://localhost:8000/api` |
| Content-Type | `application/json` |
| 认证方式 | Bearer Token (JWT) |
### 通用响应格式
2026-02-05 13:59:28 +08:00
**成功响应:**
```json
{
"success": true,
"data": {...},
"message": "操作成功"
}
```
2026-02-05 13:59:28 +08:00
**错误响应:**
```json
{
"success": false,
"error": "错误信息",
"message": "详细描述"
}
```
2026-01-21 15:21:46 +08:00
## 部署
2026-01-21 15:21:46 +08:00
详细部署指南请参考 [DEPLOYMENT.md](DEPLOYMENT.md)。
2026-01-21 15:21:46 +08:00
### 开发环境
2026-01-21 15:21:46 +08:00
默认使用SQLite数据库,无需额外配置即可启动。
2026-01-21 15:21:46 +08:00
### 生产环境
2026-01-21 15:21:46 +08:00
- 推荐使用MySQL数据库
- 使用Nginx作为反向代理
- 配置SSL证书
- 建议使用PM2管理进程
### 服务管理命令
```bash
# 查看服务状态
pm2 status
# 查看日志
pm2 logs idc-backend
# 重启服务
pm2 restart idc-backend
# 停止服务
pm2 stop idc-backend
```
2026-01-21 15:21:46 +08:00
## 版本历史
2026-01-21 15:21:46 +08:00
完整版本记录请参考 [CHANGELOG.md](CHANGELOG.md)。
2026-01-21 15:21:46 +08:00
## 许可证
2026-01-21 15:21:46 +08:00
本项目采用 MIT 许可证,详见 [LICENSE](LICENSE)。
2026-01-21 15:21:46 +08:00
## 贡献指南
2026-01-21 15:21:46 +08:00
欢迎提交Issue或Pull Request。
1. Fork本项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启Pull Request
2026-01-21 15:21:46 +08:00
---
2026-01-21 15:21:46 +08:00
**⭐ 如果这个项目对您有帮助,请给我们一个Star!**