Files
yunrui_asset/CHANGELOG.md
T
zhang1106 fa39f2855f feat(机柜管理): 优化机柜导入导出功能
- 新增机柜导入预览功能,支持数据验证和错误提示
- 支持按选中机柜导出,优化导出文件名和提示信息
- 重构导入逻辑,分离Excel解析和验证逻辑
- 修复机柜关联设备查询问题,使用正确的关系别名
- 更新API文档,添加导入预览和选中导出接口说明
2026-05-06 15:12:57 +08:00

16 KiB
Raw Blame History

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 自动生成规则配置
  • 新增设备搜索支持自定义字段
  • 新增设备导入模板字段与字段配置同步
  • 新增设备导入必填验证与机房机柜区分
  • 新增设备批量导入性能优化
  • 新增设备转入空闲状态 APIPUT /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 规范:

类型 说明
新增 (Added) 新功能添加
优化 (Changed) 功能改进和性能优化
修复 (Fixed) Bug修复
废弃 (Deprecated) 即将移除的功能
移除 (Removed) 已移除的功能
安全 (Security) 安全相关的修复

更新日志格式

每个版本更新应包含:

## [版本号] - 发布日期

### 新增功能
- 功能描述

### 优化
- 改进内容

### 修复
- 修复的问题

### 升级注意事项
- 升级时需要注意的事项

文档维护建议

  • 每次发布新版本时及时更新本文件
  • ### 升级注意事项 中详细说明可能导致不兼容的变更
  • 使用清晰的描述,避免过于技术化的术语