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
|
|
|
|
|
2026-01-22 09:41:24 +08:00
|
|
|
|
## 代码仓库
|
|
|
|
|
|
|
|
|
|
|
|
- **GitHub**: https://github.com/gituib/idc_assest
|
2026-01-30 10:08:45 +08:00
|
|
|
|
- **Gitee**: https://gitee.com/zhang96110/idc_assest
|
2026-01-22 09:41:24 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
## 系统概述
|
2025-12-18 10:45:13 +08:00
|
|
|
|
|
2025-12-20 09:37:43 +08:00
|
|
|
|
### 核心功能
|
2025-12-18 10:45:13 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
- **机房管理**:管理多个机房的详细信息、容量和使用状态
|
|
|
|
|
|
- **机柜管理**:机柜的增删改查,支持按机房分类管理
|
|
|
|
|
|
- **设备管理**:服务器、网络设备、存储设备的全生命周期管理
|
|
|
|
|
|
- **工单管理**:设备故障报修、维护工单全流程管理
|
|
|
|
|
|
- **耗材管理**:耗材库存、领用记录、统计报表管理
|
|
|
|
|
|
- **数据看板**:实时监控数据中心整体运行状态
|
|
|
|
|
|
- **3D可视化**:三维机柜可视化展示,支持设备悬停详情查看
|
|
|
|
|
|
- **系统配置**:设备字段、工单字段自定义管理
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
### 项目截图
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
*数据看板 - 实时监控数据中心运行状态*
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
*3D机柜可视化 - 三维展示机柜设备布局*
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
*设备管理 - 设备全生命周期管理*
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
*机房管理 - 多机房分类管理*
|
|
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 技术栈
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
| 类别 | 技术 | 版本 |
|
|
|
|
|
|
|------|------|------|
|
|
|
|
|
|
| 前端框架 | React | 18.2.0 |
|
|
|
|
|
|
| 构建工具 | Vite | 4.4.9 |
|
|
|
|
|
|
| UI组件库 | Ant Design | 5.8.6 |
|
|
|
|
|
|
| 3D渲染 | Three.js | 0.160.0 |
|
|
|
|
|
|
| 后端框架 | Express | 4.18.2 |
|
|
|
|
|
|
| ORM框架 | Sequelize | 6.32.1 |
|
|
|
|
|
|
| 数据库 | SQLite/MySQL | 5.1.6/8.0+ |
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
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接口封装
|
|
|
|
|
|
│ │ ├── components/ # 通用组件
|
|
|
|
|
|
│ │ ├── context/ # 状态管理
|
|
|
|
|
|
│ │ └── pages/ # 页面模块
|
|
|
|
|
|
│ └── vite.config.js # Vite配置
|
|
|
|
|
|
├── backend/ # 后端项目
|
|
|
|
|
|
│ ├── models/ # 数据模型
|
|
|
|
|
|
│ ├── routes/ # API路由
|
|
|
|
|
|
│ ├── middleware/ # 中间件
|
|
|
|
|
|
│ └── server.js # 服务入口
|
2026-02-05 12:35:50 +08:00
|
|
|
|
├── deploy/ # 部署配置 ⭐ NEW
|
|
|
|
|
|
│ ├── ecosystem.config.js # PM2配置
|
|
|
|
|
|
│ └── nginx-idc.conf # Nginx配置
|
2026-01-21 15:21:46 +08:00
|
|
|
|
├── docs/ # 项目文档
|
|
|
|
|
|
│ └── api/ # 接口文档
|
2026-02-05 12:35:50 +08:00
|
|
|
|
├── install.js # 交互式安装脚本 ⭐ NEW
|
|
|
|
|
|
├── update.js # 一键更新脚本 ⭐ NEW
|
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 12:35:50 +08:00
|
|
|
|
### 方式一:一键部署脚本(推荐)⭐ NEW
|
2025-12-18 10:45:13 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
我们提供了交互式安装脚本,自动完成所有部署步骤:
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
```bash
|
2026-02-05 12:35:50 +08:00
|
|
|
|
# 克隆项目
|
|
|
|
|
|
git clone https://github.com/gituib/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)
|
|
|
|
|
|
✓ PM2 配置文件已生成 (deploy/ecosystem.config.js)
|
|
|
|
|
|
✓ Nginx 配置文件已生成 (deploy/nginx-idc.conf)
|
|
|
|
|
|
✓ 安装部署完成!
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 方式二:手动安装
|
|
|
|
|
|
|
|
|
|
|
|
#### 环境要求
|
|
|
|
|
|
|
|
|
|
|
|
- Node.js ≥14.0.0(推荐 20.x LTS)
|
|
|
|
|
|
- npm ≥6.0.0
|
|
|
|
|
|
- 操作系统:Windows 10/11、macOS、Linux
|
|
|
|
|
|
|
|
|
|
|
|
#### 安装步骤
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 1. 克隆项目
|
|
|
|
|
|
git clone https://github.com/gituib/idc_assest.git
|
|
|
|
|
|
cd idc_assest
|
|
|
|
|
|
|
|
|
|
|
|
# 2. 安装后端依赖
|
2026-01-21 15:21:46 +08:00
|
|
|
|
cd backend
|
|
|
|
|
|
npm install
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
# 3. 安装前端依赖
|
2026-01-21 15:21:46 +08:00
|
|
|
|
cd ../frontend
|
|
|
|
|
|
npm install
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
# 4. 配置环境变量
|
2026-01-21 15:21:46 +08:00
|
|
|
|
cd ../backend
|
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
# 5. 启动服务
|
2026-01-21 15:21:46 +08:00
|
|
|
|
# 启动后端(端口8000)
|
|
|
|
|
|
npm run dev
|
|
|
|
|
|
|
|
|
|
|
|
# 启动前端(端口3000)- 新终端
|
|
|
|
|
|
cd ../frontend
|
|
|
|
|
|
npm run dev
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
**访问地址**:
|
|
|
|
|
|
- 前端应用:http://localhost:3000
|
|
|
|
|
|
- 后端API:http://localhost:8000/api
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
## 更新升级
|
|
|
|
|
|
|
|
|
|
|
|
### 一键更新(推荐)⭐ NEW
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
npm run update
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
功能:自动备份 → 拉取代码 → 更新依赖 → 重建前端 → 重启服务
|
|
|
|
|
|
|
|
|
|
|
|
### 手动更新
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 拉取最新代码
|
|
|
|
|
|
git pull
|
|
|
|
|
|
|
|
|
|
|
|
# 更新后端
|
|
|
|
|
|
cd backend && npm install
|
|
|
|
|
|
|
|
|
|
|
|
# 更新前端并构建
|
|
|
|
|
|
cd ../frontend && npm install && npm run build
|
|
|
|
|
|
|
|
|
|
|
|
# 重启服务
|
|
|
|
|
|
pm2 restart idc-backend
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
## 主要功能
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 机房管理
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
多机房支持,机房详细信息记录,按机房分类管理机柜。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 机柜管理
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
机柜增删改查,机柜容量统计,可视化机柜状态展示。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 设备管理
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
设备全生命周期管理,批量导入/导出,设备状态跟踪,自定义设备字段。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 工单管理
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
故障报修流程,维护工单创建与处理,工单状态追踪,操作记录审计。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 耗材管理
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
耗材分类管理,库存监控,领用记录,耗材使用统计报表。
|
|
|
|
|
|
|
|
|
|
|
|
### 数据看板
|
|
|
|
|
|
|
|
|
|
|
|
实时统计图表,设备状态分布,容量使用率分析,关键指标监控。
|
|
|
|
|
|
|
|
|
|
|
|
### 3D可视化
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
三维机柜展示,设备悬停详情,实时交互体验,视角控制功能,支持设备弹出动画开关。
|
2026-01-21 15:21:46 +08:00
|
|
|
|
|
|
|
|
|
|
## API接口
|
|
|
|
|
|
|
|
|
|
|
|
完整接口文档请参考 [docs/api/README.md](docs/api/README.md)。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
### 基础信息
|
|
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
- Base URL: `http://localhost:8000/api`
|
|
|
|
|
|
- Content-Type: `application/json`
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
### 通用响应格式
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"success": true,
|
|
|
|
|
|
"data": {...},
|
|
|
|
|
|
"message": "操作成功"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 错误响应
|
|
|
|
|
|
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"success": false,
|
|
|
|
|
|
"error": "错误信息",
|
|
|
|
|
|
"message": "详细描述"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
## 部署
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
详细部署指南请参考 [DEPLOYMENT.md](DEPLOYMENT.md)。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 开发环境
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
默认使用SQLite数据库,无需额外配置即可启动。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
### 生产环境
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
- 推荐使用MySQL数据库
|
|
|
|
|
|
- 使用Nginx作为反向代理
|
|
|
|
|
|
- 配置SSL证书
|
|
|
|
|
|
- 建议使用PM2管理进程
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
### 服务管理命令
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 查看服务状态
|
|
|
|
|
|
pm2 status
|
|
|
|
|
|
|
|
|
|
|
|
# 查看日志
|
|
|
|
|
|
pm2 logs idc-backend
|
|
|
|
|
|
|
|
|
|
|
|
# 重启服务
|
|
|
|
|
|
pm2 restart idc-backend
|
|
|
|
|
|
|
|
|
|
|
|
# 停止服务
|
|
|
|
|
|
pm2 stop idc-backend
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
## 版本历史
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
完整版本记录请参考 [CHANGELOG.md](CHANGELOG.md)。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
## 许可证
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
本项目采用 MIT 许可证,详见 [LICENSE](LICENSE)。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
## 贡献指南
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
欢迎提交Issue或Pull Request。
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
---
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-21 15:21:46 +08:00
|
|
|
|
**⭐ 如果这个项目对您有帮助,请给我们一个Star!**
|