# 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