180 lines
4.2 KiB
Markdown
180 lines
4.2 KiB
Markdown
# IDC设备管理系统
|
||
|
||
一个基于React+Node.js+MySQL的IDC设备管理系统,用于管理IDC机房中的设备、机柜和机房信息。
|
||
|
||
## 功能特点
|
||
|
||
### 后端功能
|
||
- 机房管理(增删改查)
|
||
- 机柜管理(增删改查)
|
||
- 设备管理(增删改查)
|
||
- 功率统计与管理
|
||
- 设备状态监控
|
||
|
||
### 前端功能
|
||
- 仪表盘:设备、机柜、机房统计信息
|
||
- 设备管理:设备列表、搜索、筛选、添加、编辑、删除
|
||
- 机柜管理:机柜列表、搜索、筛选、添加、编辑、删除
|
||
- 机房管理:机房列表、搜索、筛选、添加、编辑、删除
|
||
|
||
## 技术栈
|
||
|
||
### 前端
|
||
- React 18
|
||
- Ant Design 5
|
||
- Vite 4
|
||
- React Router 6
|
||
- Axios
|
||
|
||
### 后端
|
||
- Node.js
|
||
- Express.js
|
||
- Sequelize
|
||
- MySQL
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
idc-device-management/
|
||
├── backend/ # 后端代码
|
||
│ ├── models/ # 数据库模型
|
||
│ │ ├── Room.js # 机房模型
|
||
│ │ ├── Rack.js # 机柜模型
|
||
│ │ └── Device.js # 设备模型
|
||
│ ├── routes/ # API路由
|
||
│ │ ├── rooms.js # 机房路由
|
||
│ │ ├── racks.js # 机柜路由
|
||
│ │ └── devices.js # 设备路由
|
||
│ ├── server.js # 服务器主文件
|
||
│ └── package.json # 后端依赖
|
||
├── frontend/ # 前端代码
|
||
│ ├── src/ # 前端源码
|
||
│ │ ├── pages/ # 页面组件
|
||
│ │ │ ├── Dashboard.jsx # 仪表盘
|
||
│ │ │ ├── DeviceManagement.jsx # 设备管理
|
||
│ │ │ ├── RackManagement.jsx # 机柜管理
|
||
│ │ │ └── RoomManagement.jsx # 机房管理
|
||
│ │ ├── App.jsx # 应用主组件
|
||
│ │ ├── main.jsx # 应用入口
|
||
│ │ └── index.css # 全局样式
|
||
│ ├── index.html # HTML模板
|
||
│ ├── vite.config.js # Vite配置
|
||
│ └── package.json # 前端依赖
|
||
└── package.json # 项目依赖
|
||
```
|
||
|
||
## 安装与运行
|
||
|
||
### 1. 安装依赖
|
||
|
||
```bash
|
||
# 安装所有依赖
|
||
npm run install:all
|
||
```
|
||
|
||
### 2. 配置数据库
|
||
|
||
1. 创建MySQL数据库:
|
||
```sql
|
||
CREATE DATABASE idc_management;
|
||
```
|
||
|
||
2. 修改后端数据库连接配置(backend/server.js):
|
||
```javascript
|
||
const sequelize = new Sequelize({
|
||
dialect: 'mysql',
|
||
host: 'localhost',
|
||
port: 3306,
|
||
username: 'root', // 修改为你的MySQL用户名
|
||
password: 'password', // 修改为你的MySQL密码
|
||
database: 'idc_management'
|
||
});
|
||
```
|
||
|
||
### 3. 启动服务
|
||
|
||
```bash
|
||
# 同时启动前后端服务
|
||
npm start
|
||
|
||
# 或分别启动
|
||
npm run start:backend # 启动后端服务(端口:3001)
|
||
npm run start:frontend # 启动前端服务(端口:3000)
|
||
```
|
||
|
||
### 4. 访问系统
|
||
|
||
前端地址:http://localhost:3000
|
||
后端API地址:http://localhost:3001
|
||
|
||
## API接口
|
||
|
||
### 机房管理
|
||
- GET /api/rooms - 获取所有机房
|
||
- GET /api/rooms/:roomId - 获取单个机房
|
||
- POST /api/rooms - 创建机房
|
||
- PUT /api/rooms/:roomId - 更新机房
|
||
- DELETE /api/rooms/:roomId - 删除机房
|
||
|
||
### 机柜管理
|
||
- GET /api/racks - 获取所有机柜
|
||
- GET /api/racks/:rackId - 获取单个机柜
|
||
- POST /api/racks - 创建机柜
|
||
- PUT /api/racks/:rackId - 更新机柜
|
||
- DELETE /api/racks/:rackId - 删除机柜
|
||
|
||
### 设备管理
|
||
- GET /api/devices - 获取所有设备
|
||
- GET /api/devices/:deviceId - 获取单个设备
|
||
- POST /api/devices - 创建设备
|
||
- PUT /api/devices/:deviceId - 更新设备
|
||
- DELETE /api/devices/:deviceId - 删除设备
|
||
|
||
## 开发说明
|
||
|
||
### 后端开发
|
||
|
||
1. 进入后端目录:
|
||
```bash
|
||
cd backend
|
||
```
|
||
|
||
2. 安装依赖:
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
3. 启动开发服务器:
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
### 前端开发
|
||
|
||
1. 进入前端目录:
|
||
```bash
|
||
cd frontend
|
||
```
|
||
|
||
2. 安装依赖:
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
3. 启动开发服务器:
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. 确保MySQL服务已经启动
|
||
2. 首次运行需要创建数据库
|
||
3. 设备创建时会自动更新机柜的当前功率
|
||
4. 设备更新或删除时会自动调整机柜的当前功率
|
||
5. 机柜删除前需要确保没有关联的设备
|
||
6. 机房删除前需要确保没有关联的机柜
|
||
|
||
## License
|
||
|
||
MIT |