- 新增机柜导入预览功能,支持数据验证和错误提示 - 支持按选中机柜导出,优化导出文件名和提示信息 - 重构导入逻辑,分离Excel解析和验证逻辑 - 修复机柜关联设备查询问题,使用正确的关系别名 - 更新API文档,添加导入预览和选中导出接口说明
523 lines
16 KiB
Markdown
523 lines
16 KiB
Markdown
# CHANGELOG
|
||
|
||
所有版本变更记录按时间倒序排列。
|
||
|
||
---
|
||
|
||
## [2.0.0] - 2026-05-06
|
||
|
||
### 新增功能
|
||
|
||
#### 备份管理模块
|
||
- 新增数据库备份与恢复功能,支持手动创建备份
|
||
- 新增自动备份调度,支持 Cron 表达式配置定时备份
|
||
- 新增远端备份,支持 FTP/SFTP/WebDAV/SMB 多协议上传
|
||
- 新增备份文件上传/下载/删除/验证管理
|
||
- 新增备份恢复进度实时推送(SSE)
|
||
- 新增备份日志管理,支持日志查询/详情/清理
|
||
- 新增 BackupLog 数据模型
|
||
|
||
#### 操作日志审计模块
|
||
- 新增操作日志查询,支持按模块/操作类型/时间范围筛选
|
||
- 新增操作日志统计,提供模块和操作类型维度分析
|
||
- 新增 OperationLog 数据模型
|
||
- 新增操作日志页面,支持日志详情查看
|
||
|
||
#### 空闲设备管理模块
|
||
- 新增空闲设备列表查询与管理
|
||
- 新增设备转入空闲状态功能
|
||
- 新增空闲设备激活(重新上架)功能
|
||
- 新增 IdleDeviceManagement 前端页面
|
||
|
||
#### 仓库管理模块
|
||
- 新增仓库增删改查功能
|
||
- 新增 Warehouse 数据模型
|
||
- 支持仓库与耗材关联管理
|
||
|
||
#### 网络拓扑可视化模块
|
||
- 新增网络拓扑图可视化展示(基于 ReactFlow)
|
||
- 新增交换机拓扑查询,展示设备间连接关系
|
||
- 新增设备拓扑查询,展示单设备网络连接
|
||
- 新增拓扑控制面板(缩放/布局/筛选)
|
||
- 新增拓扑侧边栏(设备详情/连接信息)
|
||
- 新增自定义拓扑节点组件(服务器/交换机/路由器/防火墙/存储/通用)
|
||
- 新增拓扑数据与布局自定义 Hooks
|
||
|
||
#### 机房平面图模块
|
||
- 新增机房平面图可视化展示(Canvas 渲染)
|
||
- 新增机柜位置拖拽编辑功能
|
||
- 新增热力图模式,按机柜使用率着色
|
||
- 新增小地图导航,快速定位机柜
|
||
- 新增平面图工具栏(缩放/搜索/视图切换/机房选择)
|
||
- 新增机柜详情面板,展示机柜容量与设备信息
|
||
- 新增布局编辑器与位置验证器
|
||
- 新增机房布局 API(获取/更新/初始化/批量更新机柜位置)
|
||
|
||
#### 危险操作日志模块
|
||
- 新增危险操作记录功能
|
||
- 新增危险操作日志查询与清理
|
||
- 新增危险操作确认弹窗组件
|
||
|
||
#### 维护模式
|
||
- 新增维护模式状态查询与解除功能
|
||
- 新增维护模式横幅组件
|
||
|
||
#### Swagger API 文档
|
||
- 集成 swagger-jsdoc + swagger-ui-express
|
||
- 新增交互式 API 文档,访问路径 `/api-docs`
|
||
- 支持在线调试 API 接口
|
||
|
||
#### 设备管理增强
|
||
- 新增设备导入预览功能,导入前可预览数据
|
||
- 新增设备 ID 自动生成规则配置
|
||
- 新增设备搜索支持自定义字段
|
||
- 新增设备导入模板字段与字段配置同步
|
||
- 新增设备导入必填验证与机房机柜区分
|
||
- 新增设备批量导入性能优化
|
||
- 新增设备转入空闲状态 API(`PUT /api/devices/:deviceId/to-idle`)
|
||
- 新增设备 U 位可用性检查 API
|
||
|
||
#### 耗材管理增强
|
||
- 新增耗材批量导入功能(支持 Excel/CSV)
|
||
- 新增耗材导入模板下载
|
||
- 新增耗材导入任务状态查询
|
||
- 新增耗材 SN 序列号追踪功能
|
||
- 新增耗材操作日志归档功能
|
||
- 新增耗材日志修改与修改历史查询
|
||
- 新增耗材日志导出与导入
|
||
- 新增耗材出入库记录导出
|
||
- 新增耗材库存调整功能(增加/减少/设置)
|
||
- 新增耗材乐观锁并发安全控制
|
||
- 新增耗材与操作日志解耦
|
||
- 新增 ConsumableLogArchive 数据模型
|
||
- 新增耗材扫码添加功能
|
||
|
||
#### 工单管理增强
|
||
- 新增工单导出功能
|
||
- 新增工单统计页面
|
||
- 新增工单评价功能
|
||
- 新增工单操作记录(操作步骤/配件/耗时/结果)
|
||
- 新增工单分类统计 API
|
||
|
||
#### 端口与网卡管理增强
|
||
- 新增网卡批量导入功能
|
||
- 新增端口批量导出功能
|
||
- 新增端口添加引导弹窗
|
||
- 新增端口命名模板功能
|
||
- 新增端口批量导入重新设计
|
||
- 新增服务器背板面板组件
|
||
- 新增服务器网卡组件
|
||
|
||
#### 线缆管理增强
|
||
- 新增线缆向导弹窗(CableWizardModal)
|
||
- 新增设备选择弹窗性能优化
|
||
- 新新增设备选择弹窗筛选优化
|
||
|
||
#### 系统配置增强
|
||
- 新增系统设置导出/导入功能
|
||
- 新增系统 Logo 上传功能
|
||
- 新增系统信息公开查询 API
|
||
- 新增背景图片上传功能
|
||
- 新增字段管理选项可视化编辑功能
|
||
|
||
#### 业务关联
|
||
- 新增 Business 数据模型
|
||
- 新增 DeviceBusiness 数据模型
|
||
- 支持设备与业务关联管理
|
||
|
||
#### 待确认设备管理
|
||
- 新增 PendingDevice 数据模型
|
||
- 新增待确认设备管理页面
|
||
- 支持盘点暂存设备管理
|
||
|
||
### 优化
|
||
|
||
#### 3D 可视化性能优化
|
||
- 优化 Canvas DPR 配置,提升渲染清晰度
|
||
- 优化背板渲染控制,减少不必要的渲染
|
||
- 重构状态管理,分离 3D 场景状态
|
||
- 优化回调函数引用稳定性
|
||
- 优化几何体和材质复用
|
||
- 优化 LODManager 距离计算性能
|
||
- 优化 DeviceModel useFrame 状态更新
|
||
- 优化悬停状态避免频繁更新
|
||
- 优化 3D 机柜相机控制,支持完整查看
|
||
- 固定旋转中心为机柜中轴线
|
||
- 为机柜添加 U 位标识
|
||
- 优化 3D 设备视觉区分
|
||
- 新增 3D 机柜头部重新设计
|
||
- 新增纹理缓存机制(TextureCache)
|
||
|
||
#### 前端性能优化
|
||
- 优化前端组件渲染性能
|
||
- 新增虚拟列表支持(react-window)
|
||
- 新增 html2canvas 截图支持
|
||
- 优化设备详情抽屉展示
|
||
|
||
#### 安全优化
|
||
- 修复注册权限漏洞
|
||
- 修复 JWT Secret 安全问题
|
||
- 新增全局认证中间件
|
||
- 新增路由自动注册机制
|
||
- 新增路由排序 Bug 修复
|
||
|
||
#### 数据库优化
|
||
- 新增外键约束修复脚本
|
||
- 新增线缆字段迁移脚本
|
||
- 新增日志迁移脚本
|
||
- 优化迁移脚本幂等执行
|
||
|
||
### 修复
|
||
|
||
- 修复设备字段初始化覆盖自定义配置问题
|
||
- 修复设备导入必填验证问题
|
||
- 修复设备导入机房机柜区分问题
|
||
- 修复设备详情功率字段显示问题
|
||
- 修复 3D 设备详情自定义字段 displayName 显示问题
|
||
- 修复机柜已用 U 统计不准确问题
|
||
- 修复空闲设备状态不同步问题
|
||
- 修复空闲设备状态不更新问题
|
||
- 修复耗材乐观锁并发安全问题
|
||
- 修复数据恢复外键约束错误
|
||
- 修复 ID 生成器错误处理
|
||
- 修复路由排序 Bug
|
||
|
||
### 数据库模型
|
||
|
||
| 模型 | 说明 | 状态 |
|
||
|------|------|------|
|
||
| BackupLog | 备份日志 | 新增 |
|
||
| Business | 业务 | 新增 |
|
||
| ConsumableLogArchive | 耗材日志归档 | 新增 |
|
||
| DeviceBusiness | 设备业务关联 | 新增 |
|
||
| OperationLog | 操作日志 | 新增 |
|
||
| PendingDevice | 待确认设备 | 新增 |
|
||
| Warehouse | 仓库 | 新增 |
|
||
|
||
### API 接口概览
|
||
|
||
| 模块 | 接口数 | 主要功能 |
|
||
|------|--------|----------|
|
||
| 备份管理 | 28 | 备份创建/恢复/上传/下载/自动备份/远端备份/日志 |
|
||
| 统计分析 | 1 | 仪表盘统计数据 |
|
||
| 操作日志 | 5 | 日志查询/模块/类型/统计/详情 |
|
||
| 空闲设备 | 4 | 空闲设备管理 |
|
||
| 仓库管理 | 5 | 仓库增删改查 |
|
||
| 危险操作 | 3 | 危险操作日志 |
|
||
| 拓扑管理 | 2 | 网络拓扑查询 |
|
||
| 维护模式 | 2 | 维护模式管理 |
|
||
| 背景设置 | 3 | 背景配置/上传 |
|
||
|
||
### 技术栈更新
|
||
|
||
| 依赖 | 旧版本 | 新版本 | 说明 |
|
||
|------|--------|--------|------|
|
||
| Three.js | 0.160.0 | 0.183.2 | 3D 渲染引擎升级 |
|
||
| basic-ftp | - | 5.0.3 | 新增 FTP 协议支持 |
|
||
| ssh2-sftp-client | - | 9.1.0 | 新增 SFTP 协议支持 |
|
||
| webdav | - | 5.3.1 | 新增 WebDAV 协议支持 |
|
||
| smb2 | - | 0.2.2 | 新增 SMB 协议支持 |
|
||
| node-cron | - | 4.2.1 | 新增定时任务调度 |
|
||
| swagger-jsdoc | - | 新增 | API 文档生成 |
|
||
| swagger-ui-express | - | 新增 | API 文档展示 |
|
||
| framer-motion | - | 12.34.0 | 新增动画库 |
|
||
| reactflow | - | 新增 | 新增拓扑图组件 |
|
||
| dagre | - | 新增 | 新增图布局算法 |
|
||
| styled-components | - | 6.3.9 | 新增 CSS-in-JS |
|
||
| swr | - | 2.4.0 | 新增数据请求缓存 |
|
||
| html2canvas | - | 新增 | 新增截图功能 |
|
||
| react-window | - | 新增 | 新增虚拟列表 |
|
||
|
||
### 升级注意事项
|
||
|
||
- 本版本为重大更新,新增多个功能模块,建议在升级前完整备份数据库
|
||
- 新增了备份管理、操作日志、空闲设备、仓库、拓扑等数据表,首次启动时会自动创建
|
||
- 如使用 MySQL 数据库,务必运行 `node scripts/migrate-all.js` 进行数据迁移
|
||
- 3D 渲染引擎已升级到 Three.js 0.183.2,请确认浏览器兼容性
|
||
- 新增了 Swagger API 文档,可通过 `/api-docs` 访问
|
||
- JWT Secret 安全性已增强,建议更新生产环境的 JWT_SECRET 配置
|
||
|
||
---
|
||
|
||
## [1.2.0] - 2026-02-05
|
||
|
||
### 新增功能
|
||
|
||
#### 端口与线缆管理
|
||
- 新增设备端口管理模块,支持端口类型(网口、光口)、速率、状态配置
|
||
- 新增网卡(NetworkCard)管理功能,支持网卡与端口绑定
|
||
- 新增线缆(Cable)管理模块,支持机柜间线缆连接追踪
|
||
- 端口面板可视化展示,直观管理设备端口
|
||
|
||
#### 系统功能增强
|
||
- 新增系统设置管理,支持站点名称、Logo等配置
|
||
- 新增背景配置管理,支持自定义系统背景图
|
||
- 完善用户权限管理,支持角色权限分配
|
||
|
||
### 优化
|
||
|
||
#### 3D可视化性能优化
|
||
- 优化 Scene.jsx 渲染配置,降低设备像素比至 [1, 1.2]
|
||
- 减小阴影贴图尺寸至 [1024, 1024]
|
||
- 移除 ContactShadows 组件以减少阴影计算
|
||
- 简化光源配置,移除冗余 pointLight
|
||
- 优化环境光分辨率配置
|
||
|
||
#### 设备模型优化
|
||
- 实现性能模式(PERFORMANCE_MODE)以简化设备细节
|
||
- 添加设备滑轨动画控制开关
|
||
- 设备弹出动画默认关闭,可通过界面开关启用
|
||
- 优化设备状态指示灯渲染性能
|
||
|
||
#### LOD(多级细节)系统
|
||
- 实现 LOD 管理器,根据相机距离自动切换设备细节级别
|
||
- 高细节模式:完整设备模型,包含所有端口和细节
|
||
- 中等细节模式:简化设备模型,使用 InstancedMesh 渲染端口
|
||
- 低细节模式:极简设备模型,仅保留基本轮廓和状态灯
|
||
|
||
### 修复
|
||
|
||
- 修复 AnimationManager 导入错误,移除对不存在文件的引用
|
||
- 修复设备在缩放时位置偏移的问题
|
||
- 修复 LOD 模型中状态灯位置计算错误
|
||
- 修复 LODManager 中的几何体参数错误
|
||
|
||
### 升级注意事项
|
||
|
||
- 本版本对 3D 渲染进行了优化,建议在性能较低的设备上测试后再升级生产环境
|
||
- 新增的端口管理功能需要在管理员后台配置相关字段
|
||
|
||
---
|
||
|
||
## [1.1.0] - 2026-01-26
|
||
|
||
### 新增功能
|
||
|
||
#### 盘点管理模块
|
||
- 新增盘点计划(InventoryPlan)管理,支持制定定期盘点计划
|
||
- 新增盘点任务(InventoryTask)分配,支持按机房/机柜分配盘点任务
|
||
- 新增盘点记录(InventoryRecord),记录实际盘点结果
|
||
- 支持盘点任务状态跟踪:待执行 → 执行中 → 已完成
|
||
|
||
#### 故障分类管理
|
||
- 新增故障分类(FaultCategory)管理
|
||
- 支持故障类型自定义
|
||
|
||
### 优化
|
||
|
||
#### 用户体验改进
|
||
- 优化页面加载速度,减少首屏渲染时间
|
||
- 改进数据表格分页机制,支持大数据量展示
|
||
- 优化表单验证提示,提供更友好的错误反馈
|
||
|
||
#### API性能优化
|
||
- 优化数据库查询,使用索引提升查询效率
|
||
- 增加API响应缓存,减少重复查询
|
||
|
||
### 修复
|
||
|
||
- 修复设备批量导入时字段映射错误的问题
|
||
- 修复工单分配给不存在用户时的错误处理
|
||
- 修复报表导出时日期格式不正确的问题
|
||
- 修复部分页面在移动端显示错位的问题
|
||
|
||
### 升级注意事项
|
||
|
||
- 本版本新增了盘点管理相关数据表,首次启动时会自动创建
|
||
- 如使用 MySQL 数据库,建议运行 `node scripts/migrate-v2.js` 进行数据迁移
|
||
|
||
---
|
||
|
||
## [1.0.0] - 2026-01-21
|
||
|
||
### 新增功能
|
||
|
||
#### 机房管理模块
|
||
- 机房列表查询与展示,支持分页和搜索
|
||
- 机房创建、编辑、删除功能
|
||
- 机房位置、面积、负责人等详细信息管理
|
||
|
||
#### 机柜管理模块
|
||
- 机柜增删改查操作
|
||
- 按机房分类管理机柜
|
||
- 机柜容量统计与状态展示(已用U数、剩余U数)
|
||
- 3D机柜可视化展示
|
||
|
||
#### 设备管理模块
|
||
- 设备全生命周期管理(采购 → 上线 → 运行 → 维护 → 报废)
|
||
- 设备批量导入/导出功能(支持 Excel/CSV)
|
||
- 自定义设备字段配置,满足不同业务需求
|
||
- 设备状态跟踪与筛选
|
||
- 设备详情面板,展示完整设备信息
|
||
|
||
#### 工单管理模块
|
||
- 工单创建与处理流程
|
||
- 工单分类(TicketCategory)管理
|
||
- 工单自定义字段(TicketField),灵活扩展工单属性
|
||
- 工单操作记录(TicketOperationRecord)审计
|
||
- 工单状态:待处理 → 处理中 → 已完成 → 已关闭
|
||
|
||
#### 耗材管理模块
|
||
- 耗材(Consumable)分类管理
|
||
- 耗材库存管理,支持库存预警
|
||
- 耗材领用记录(ConsumableRecord)
|
||
- 耗材使用日志(ConsumableLog)追踪
|
||
- 耗材使用统计报表
|
||
|
||
#### 用户权限模块
|
||
- 用户(User)管理,支持CRUD操作
|
||
- 角色(Role)管理
|
||
- 权限(Permission)控制
|
||
- 认证授权(JWT)机制
|
||
|
||
#### 系统配置模块
|
||
- 系统设置(SystemSetting)管理
|
||
- 背景配置管理
|
||
- 设备字段初始化配置
|
||
- 工单字段初始化配置
|
||
|
||
### 技术架构
|
||
|
||
#### 前端技术栈
|
||
- React 18.2.0 - UI框架
|
||
- 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 5.1.6 / MySQL 8.0+ - 数据库支持
|
||
- JWT 9.0.3 - 身份认证
|
||
- bcryptjs 3.0.3 - 密码加密
|
||
- Winston 3.19.0 - 日志管理
|
||
- Jest 30.2.0 - 测试框架
|
||
- Joi 18.0.2 - 数据验证
|
||
|
||
### 数据库模型
|
||
|
||
| 模型 | 说明 |
|
||
|------|------|
|
||
| Room | 机房 |
|
||
| Rack | 机柜 |
|
||
| Device | 设备 |
|
||
| DeviceField | 设备自定义字段 |
|
||
| DevicePort | 设备端口 |
|
||
| NetworkCard | 网卡 |
|
||
| Cable | 线缆 |
|
||
| Ticket | 工单 |
|
||
| TicketField | 工单自定义字段 |
|
||
| TicketCategory | 工单分类 |
|
||
| TicketOperationRecord | 工单操作记录 |
|
||
| Consumable | 耗材 |
|
||
| ConsumableCategory | 耗材分类 |
|
||
| ConsumableRecord | 耗材领用记录 |
|
||
| ConsumableLog | 耗材日志 |
|
||
| InventoryPlan | 盘点计划 |
|
||
| InventoryTask | 盘点任务 |
|
||
| InventoryRecord | 盘点记录 |
|
||
| User | 用户 |
|
||
| Role | 角色 |
|
||
| Permission | 权限 |
|
||
| UserRole | 用户角色关联 |
|
||
| SystemSetting | 系统设置 |
|
||
|
||
### API接口概览
|
||
|
||
| 模块 | 接口数 | 主要功能 |
|
||
|------|--------|----------|
|
||
| 认证 | 2 | 登录、注册 |
|
||
| 机房 | 4 | 增删改查 |
|
||
| 机柜 | 4 | 增删改查 |
|
||
| 设备 | 5 | 增删改查、批量导入 |
|
||
| 设备字段 | 4 | 字段管理 |
|
||
| 工单 | 4 | 工单流程管理 |
|
||
| 工单分类 | 4 | 分类管理 |
|
||
| 工单字段 | 4 | 字段管理 |
|
||
| 耗材 | 4 | 库存管理 |
|
||
| 耗材分类 | 4 | 分类管理 |
|
||
| 耗材记录 | 4 | 领用管理 |
|
||
| 用户 | 4 | 用户管理 |
|
||
| 角色 | 4 | 角色管理 |
|
||
| 系统设置 | 2 | 配置管理 |
|
||
|
||
### 升级注意事项
|
||
|
||
- 这是初始正式版本,从 Beta/Alpha 版本升级时需注意数据迁移
|
||
- 建议在升级前备份数据库
|
||
- 首次部署需要运行 `node scripts/init-database.js` 初始化数据库
|
||
|
||
---
|
||
|
||
## 版本号规范
|
||
|
||
本项目使用语义化版本号(Semantic Versioning):
|
||
|
||
```
|
||
主版本号.次版本号.修订号
|
||
MAJOR.MINOR.PATCH
|
||
```
|
||
|
||
| 版本类型 | 变更规则 |
|
||
|----------|----------|
|
||
| **主版本 (MAJOR)** | 不兼容的API变更 |
|
||
| **次版本 (MINOR)** | 向后兼容的新功能 |
|
||
| **修订号 (PATCH)** | 向后兼容的bug修复 |
|
||
|
||
### 版本号示例
|
||
|
||
- `1.0.0` - 初始正式版本
|
||
- `1.1.0` - 新增功能,向后兼容
|
||
- `1.1.1` - Bug修复,向后兼容
|
||
- `2.0.0` - 重大变更,不兼容
|
||
|
||
---
|
||
|
||
## 格式说明
|
||
|
||
本 CHANGELOG 遵循 [Keep a Changelog](https://keepachangelog.com/) 规范:
|
||
|
||
| 类型 | 说明 |
|
||
|------|------|
|
||
| **新增 (Added)** | 新功能添加 |
|
||
| **优化 (Changed)** | 功能改进和性能优化 |
|
||
| **修复 (Fixed)** | Bug修复 |
|
||
| **废弃 (Deprecated)** | 即将移除的功能 |
|
||
| **移除 (Removed)** | 已移除的功能 |
|
||
| **安全 (Security)** | 安全相关的修复 |
|
||
|
||
---
|
||
|
||
## 更新日志格式
|
||
|
||
每个版本更新应包含:
|
||
|
||
```
|
||
## [版本号] - 发布日期
|
||
|
||
### 新增功能
|
||
- 功能描述
|
||
|
||
### 优化
|
||
- 改进内容
|
||
|
||
### 修复
|
||
- 修复的问题
|
||
|
||
### 升级注意事项
|
||
- 升级时需要注意的事项
|
||
```
|
||
|
||
---
|
||
|
||
**文档维护建议**:
|
||
- 每次发布新版本时及时更新本文件
|
||
- 在 `### 升级注意事项` 中详细说明可能导致不兼容的变更
|
||
- 使用清晰的描述,避免过于技术化的术语
|