Commit Graph
50 Commits
Author SHA1 Message Date
zhang1106 979c28fdcd feat(floorplan): 新增机房平面图功能模块
refactor(models): 为Room和Rack模型添加布局相关字段
feat(routes): 实现机房平面图相关API接口
feat(components): 添加平面图编辑器、画布渲染及交互组件
feat(hooks): 实现平面图数据管理和状态管理
feat(pages): 新增机房平面图页面入口
style(components): 优化平面图组件样式和交互体验
2026-04-30 16:26:39 +08:00
zhang1106 bf2cd221b9 feat: 实现统一日志系统和维护模式功能 2026-04-28 10:57:17 +08:00
zhang1106 1d297fc81a fix(devices): 修复不同数据库类型下设备ID和机架ID的数值转换问题
修改设备ID和机架ID的数值转换逻辑,针对MySQL数据库使用SIGNED类型,其他数据库使用INTEGER类型,确保在不同数据库环境下都能正确获取最大值
2026-04-10 14:34:33 +08:00
zhang1106 dd0ce03369 fix(设备管理): 修复U位位置检查的数值类型问题
确保位置和高度参数被正确转换为整数类型,避免字符串比较问题
添加调试日志帮助追踪U位检查流程
2026-04-10 14:25:35 +08:00
zhang96110 dc20bdba1f fix: 修复14个中等问题(安全+稳定性)
后端安全修复:
- devices.js: page/pageSize parseInt+范围限制、CSV导入path.basename防路径遍历
- tickets.js: CSV导出收集所有metadata key、评价限制completed状态
- users.js: 重置密码加权限检查(仅管理员或本人)
- systemSettings.js: Boolean改显式判断(修复false存储为true)
- inventory.js: 空数组Array.isArray检查(修复无法清空目标机房)
- statistics.js: 在线率改用runningDevices计算
- operationLogs.js: DATE()改strftime兼容SQLite
- devicePorts.js: 端口更新白名单过滤(防修改portId/deviceId)
- server.js: 生产环境禁用sync alter

前端修复:
- api/index.js: 401优先React Router导航(保留SPA状态)
- Scene.jsx: useFrame仅target变化时更新(减少不必要矩阵计算)
- vite.config.mjs: 移除Vue插件残留(unplugin-vue-components)
2026-04-02 03:10:06 +00:00
zhang1106 7f1df28858 feat: 实现ID生成器并重构模型ID生成逻辑
refactor: 统一ID生成方式,使用新的idGenerator模块
refactor: 重构模型ID生成逻辑,允许空ID并在创建前自动生成
fix(roomSchema): 使机房ID字段变为可选并更新前端表单验证
style: 格式化代码并优化导入语句
test: 添加操作日志集成测试文件
docs: 添加错误处理模块文档
2026-04-02 10:34:13 +08:00
zhang96110 de7da77c11 fix: 修复后端12个+前端5个高优先级问题
后端:
- devices.js: 修复 newRackId 重复声明、批量移动加事务、ID生成改MAX聚合
- tickets.js: 添加工单状态机校验、req.body白名单过滤
- roles.js: init-roles 添加 authMiddleware
- backup.js: 备份列表只读4KB头部,压缩文件超1MB跳过
- consumables.js: SN查询改用数据库LIKE替代全表扫描
- consumableRecords.js: 出入库加 SELECT FOR UPDATE 行级锁
- inventory.js: not_found 状态判断从 abnormal if 内移到 else if
- idleDevices.js: 删除重复的 batch-restore 路由定义(182行)
- cables.js: 接线冲突检测增加反向端口检查

前端:
- AuthContext.jsx: 初始化时调用 fetchProfile 验证token、Error提取message
- api/index.js: backupAPI.download 返回Promise、checkAdmin改POST
- Login.jsx: checkIsFirstUser 静默处理错误
- DeviceManagement.jsx: 导出 currentPage scope 使用 currentPageDevices
2026-04-01 07:27:19 +00:00
zhang96110 6eda3ae1f2 fix(security): 修复多个严重安全漏洞和运行时崩溃
- devices.js: 修复 hasRoomField 重复 const 声明导致模块加载失败
- devices.js: 修复 batch-status 路由 affectedCount 未定义导致崩溃
- devices.js: 修复 sequelize.literal SQL 注入,转义 LIKE 通配符和字段名
- server.js: 修复 initializeApp() 未 await 导致服务器在初始化前接收请求
- backup.js: 添加 resolveBackupPath() 防止路径遍历攻击(6处)
- inventory.js: 用 bulkCreate 替代原始 SQL 拼接,消除 SQL 注入
- systemSettings.js: 添加全局 authMiddleware,修复敏感操作无认证
- dangerousOperations.js: 添加全局认证,修复日志清理功能完全不可用
- background.js: 添加文件名安全检查、扩展名白名单、路径校验
2026-04-01 06:02:55 +00:00
zhang96110 fa65eecf5e fix(devices): 修复 batch-status 路由 affectedCount 未定义导致崩溃
- 添加缺失的 Device.update() 调用,实际执行批量状态更新
- 定义 affectedCount 变量,解决 ReferenceError 崩溃问题
- 修复前 PUT /batch-status 必定抛出 500 错误
2026-04-01 03:31:42 +00:00
zhangbing 5d972799f2 feat: 优化设备位置冲突检测和前端虚拟滚动
为设备表添加复合索引优化位置冲突检测性能
在设备位置检查中添加悲观锁防止竞态条件
添加 react-window 和 react-virtualized-auto-sizer 支持虚拟滚动
2026-03-29 10:40:33 +08:00
zhang1106 63f0cb570e refactor: 统一代码风格并迁移至 ESLint 新配置
style(backend): 格式化模型文件代码
style(frontend): 调整组件代码格式
chore: 删除旧 ESLint 配置并添加新配置
refactor(backend): 重构模型定义语法
style: 统一箭头函数和对象属性简写
2026-03-27 19:12:16 +08:00
zhang1106 d9c46245df feat: 添加设备位置冲突检查功能并优化操作日志
feat(api): 在设备API中添加checkPosition接口用于检查U位冲突
feat(frontend): 在设备表单和空闲设备管理中实现U位冲突检查
refactor(backend): 重构操作日志功能,添加设备描述生成和元数据构建工具
fix(backend): 修复批量导入机柜时的ID验证规则
feat(backend): 为机柜导入添加创建和跳过机柜的详细返回信息
fix(backend): 修复设备删除时未检查关联接线的问题
feat(backend): 添加机柜导入模板生成脚本
perf(frontend): 优化机柜管理页面的导入结果展示
fix(frontend): 修复设备端口删除时的关联接线检查
2026-03-26 14:35:08 +08:00
zhang1106 4e8d9be864 feat: 添加工单统计自动刷新功能并优化设备选择逻辑
refactor(工单管理): 重构设备选择表单并优化UI体验

fix(工单统计): 修复每日完成工单统计不准确的问题

perf(后端): 添加批量导出接口优化大数据量查询性能

chore: 添加react-transition-group依赖支持动画效果

feat(设备管理): 添加设备全量查询接口支持导出功能

style(工单管理): 优化表单布局和样式提升用户体验

refactor(工单字段): 优化字段管理组件处理空值情况

fix(机柜管理): 修复机柜列表查询接口参数问题

docs: 移除不再使用的工单字段管理页面
2026-03-24 17:10:38 +08:00
zhang1106 1b898814ed feat: 添加空闲设备状态支持并优化耗材导入功能
refactor(设备管理): 重构状态筛选和高级搜索界面

perf(机柜管理): 优化U位计算方式为基于设备高度

fix(耗材管理): 修复导入时库存计算不准确的问题

style(耗材统计): 调整表格样式和实时刷新功能

docs: 更新设备状态映射包含空闲状态
2026-03-24 14:54:39 +08:00
zhang1106 f82b8202fe feat(设备管理): 重构设备导出功能,支持导出所有字段
refactor(字段管理): 优化字段选项编辑界面,使用可视化编辑器

refactor(工单字段管理): 重构选项编辑组件,提升用户体验

chore: 移除不再使用的设备字段选项迁移脚本
2026-03-23 14:07:40 +08:00
zhang1106 73cbe4ac1b feat: 添加操作日志、危险操作确认和业务关联功能
1. 新增操作日志记录功能,记录关键操作
2. 实现危险操作确认对话框,防止误删
3. 添加业务和库房管理模块
4. 支持设备标记为空闲状态
5. 完善API文档和健康检查
6. 优化前端删除操作的确认流程
7. 添加Swagger API文档支持
8. 实现设备与业务的关联功能
9. 改进设备模型,添加空闲相关字段
10. 优化用户、角色管理操作日志
2026-03-20 17:15:14 +08:00
zhang1106 c392df9ce3 feat(设备管理): 添加U位冲突检测功能并优化服务重启逻辑 2026-03-20 09:34:41 +08:00
zhang1106 b98e8ad9af feat(设备导入): 实现CSV导入预览功能并优化导入流程 2026-03-19 16:15:20 +08:00
zhang1106 a620575d92 feat(设备管理): 添加机房筛选功能并优化UI样式
refactor(耗材统计): 重构筛选卡片布局和统计卡片样式

style(3D可视化): 优化机柜信息卡片样式和交互体验
2026-03-19 14:38:50 +08:00
zhang1106 d06b191c80 feat(backup): 实现自动备份功能及错误边界处理 2026-03-13 15:13:58 +08:00
zhang1106 668ea073e6 refactor(模型关系): 重构模型关联关系定义位置,从模型文件移至路由文件 2026-03-12 11:19:56 +08:00
zhang1106 0b00bf6f3d feat(设备管理): 添加设备工单关联功能
实现设备与工单的关联功能,包括:
1. 后端添加设备工单列表接口
2. 前端API添加设备工单相关方法
3. 设备详情页增加工单标签页
4. 设备管理页添加查看/创建工单按钮
5. 工单管理页支持从设备跳转查看/创建工单
2026-02-12 13:27:32 +08:00
zhang1106 b9d89bee11 perf(数据库): 优化数据库查询性能
- 在设备、机柜路由中强制使用 JOIN 避免 N+1 查询问题
- 添加连接池配置提升并发处理能力
- 设置 distinct 和 subQuery 参数确保查询准确性
2026-02-10 14:35:36 +08:00
zhang1106 f82d82e57e feat(安全): 增强JWT安全配置并移除重复路由
添加JWT安全配置到.env.example并实现严格的环境检查
移除devices.js中重复的批量操作路由
2026-02-10 10:56:50 +08:00
zhang1106 693b6a71f3 feat(设备管理): 重构设备管理页面并优化初始化逻辑 2026-02-10 09:32:16 +08:00
zhang1106 18745694fa perf(导入): 优化机柜和设备数据导入性能
重构机柜和设备导入功能,采用事务+批量操作提升性能:
1. 使用事务确保数据一致性
2. 批量查询减少数据库交互
3. 批量插入提高写入效率
4. 优化ID生成逻辑
5. 统一错误处理机制
2026-02-09 22:24:48 +08:00
zhang1106 93a5de2106 feat(设备管理): 添加一键删除所有设备功能
- 前端添加删除所有设备按钮及确认对话框
- 后端实现删除所有设备及相关数据的接口
- 更新.gitignore忽略backend/temp目录
2026-02-09 16:22:00 +08:00
zhang1106 aca229ea91 fix(devices): 导入模板包含所有字段以确保数据完整性
移除对字段visible状态的过滤,确保导入模板包含所有字段(不论visible状态)。这样可以在导入时保证数据完整性,避免因字段过滤导致的数据丢失。
2026-02-09 14:21:57 +08:00
zhang1106 2d7d53283f refactor(devices): 简化导入导出模板的CSV字段处理逻辑
移除字段类型提示和必填标记,统一使用displayName作为列名
重构导出逻辑使其与导入模板保持一致,使用动态生成的字段配置
2026-02-09 14:16:01 +08:00
zhang1106 e525fa4f11 feat(机柜管理): 添加机柜数据导出功能并优化设备删除逻辑
添加机柜数据导出功能,支持Excel格式下载
在设备删除逻辑中增加网卡删除处理
调整设备ID字段为非必填且隐藏
2026-02-06 16:23:56 +08:00
zhang1106 aa5ab5fc17 refactor(设备导入): 动态构建必填字段列表以保持与数据库配置同步 2026-02-06 16:09:57 +08:00
zhang1106 b5b9ea3e03 fix(devices): 改进CSV导入时的字段名提取逻辑并移除调试日志
移除不必要的调试日志输出
优化字段名提取正则表达式以更好处理带格式说明的字段
2026-02-06 16:03:28 +08:00
zhang1106 0d9f14b3e8 fix(设备导入): 调整必填字段验证逻辑并添加调试日志
移除型号作为必填字段,并在验证过程中添加调试日志输出
2026-02-06 16:00:08 +08:00
zhang1106 920a52e5ae refactor(设备字段): 移除冗余字段并更新必填字段验证逻辑
移除设备模型中的owner、department和assetId字段,这些字段不再使用
更新设备导入接口的必填字段验证逻辑,使用硬编码的必填字段列表以保持前后端一致
2026-02-06 15:53:57 +08:00
zhang1106 760e719c9a feat(设备导入): 改进机柜字段处理为机房+机柜名称组合
将设备导入模板中的机柜ID字段拆分为机房名称和机柜名称两列,以便更直观地定位设备位置
在导入处理时,根据机房名称和机柜名称自动查找或创建对应机柜
移除默认机房创建逻辑,改为严格验证机房是否存在
2026-02-06 15:39:07 +08:00
zhang1106 cabb5ab13c fix(设备导入): 从导入模板中排除设备ID字段
设备ID应由系统自动生成而非用户填写,因此从CSV模板的标题和示例数据中移除了该字段
2026-02-06 15:09:18 +08:00
zhang1106 d5277ce15c feat(设备管理): 实现设备ID自动生成功能
- 修改后端验证逻辑,允许设备ID为空或null
- 添加自动生成设备ID功能,格式为DEV+三位数字
- 前端移除设备ID必填校验并隐藏该字段
- 更新设备导入逻辑,支持自动生成设备ID
2026-02-06 15:04:42 +08:00
zhang1106 8ac528356e feat(设备字段): 添加系统字段保护机制
为设备字段添加isSystem属性标记系统字段,防止误删核心字段
后端添加字段删除前的系统字段检查
前端在管理界面标记并禁用系统字段的删除操作
更新导入模板生成逻辑以适配动态字段配置
优化设备导入功能,支持字段名称变更
2026-02-04 17:10:58 +08:00
zhang1106 9e6a3da888 feat: 添加请求参数验证中间件和设计令牌Hook
feat(validation): 为机房、机柜和设备路由添加Joi验证中间件

feat(hooks): 创建useDesignTokens Hook集中管理主题配置

feat(models): 为耗材模型添加乐观锁version字段和updatedAt索引

feat(3d): 增强3D场景和设备模型视觉效果与交互

refactor: 移除数据备份相关功能并优化代码结构

fix: 修复前端安全日志和密码加密工具

chore: 更新依赖并添加axios和joi库

docs: 更新注释和文档说明

style: 改进代码格式和命名一致性
2026-01-29 16:53:29 +08:00
zhang1106 a0ad9ad604 feat: 优化3D可视化性能并更新文档
- 实现3D可视化性能优化(降低DPR、阴影贴图、简化光源)
- 实现LOD多级细节系统,根据相机距离自动切换
- 添加设备弹出动画开关,默认关闭
- 修复设备缩放时位置偏移问题
- 更新README添加项目截图占位符
- 精简DEPLOYMENT.md文档,添加Gitee仓库支持
- 更新CHANGELOG.md记录v1.1.0版本
2026-01-26 17:21:20 +08:00
zhang1106 8099edc5e5 feat: 新增网卡、端口和接线管理功能
- 添加网卡(NetworkCard)模型及相关路由
- 实现端口(DevicePort)管理功能
- 新增接线(Cable)管理功能
- 添加前端网卡和端口管理界面
- 更新机柜可视化页面显示接线
- 添加设备详情抽屉展示端口和接线信息
- 更新部署文档包含数据库迁移指南
- 添加批量创建端口功能
- 设备删除时自动清理相关接线
2026-01-23 08:55:16 +08:00
zhang1106 25c1f5f905 fix(设备管理): 改进设备导入的错误处理和验证逻辑
- 前端优化错误消息展示,区分500错误和其他错误情况
- 后端增加设备类型验证、设备ID唯一性检查和机柜ID非空验证
- 改进Sequelize错误处理,提供更友好的错误消息
- 统一前后端错误响应格式
2025-12-30 14:01:16 +08:00
zhang1106 9b72289a2f refactor(devices): 动态验证必填字段配置
将硬编码的必填字段验证改为从数据库配置动态获取,提高灵活性和可维护性
2025-12-30 11:18:55 +08:00
zhang1106 b2a5a30174 refactor(设备管理): 移除批量移动和批量下线功能
前端移除批量移动和批量下线相关UI组件和逻辑
后端优化批量移动和批量状态变更接口实现
2025-12-30 10:46:21 +08:00
zhang1106 a7499de748 feat(系统设置): 新增系统设置模块
- 添加SystemSetting模型用于存储系统配置
- 实现系统设置API路由,支持CRUD操作
- 新增系统设置前端页面,包含全局配置、外观设置、数据备份和关于页面
- 设备批量操作增强,支持批量移动、状态变更和导出
- 工单模型允许deviceId为空
2025-12-29 16:10:42 +08:00
zhang1106 ad5cb31569 完成了机柜可视化功能,鼠标悬停显示设备信息 2025-12-20 08:20:51 +08:00
zhang1106 e363553e90 更新了设备管理的功能,一键删除,修复了编辑字段的bug,修复了导入设备的功能等 2025-12-19 13:21:39 +08:00
zhang1106 072b3d593e 已完成设备管理页面的基本功能,包括设备导入导出,字段自定义,字段是否显示等功能,目前处于资产管理已基本完善 2025-12-18 19:11:56 +08:00
zhang1106 2ec02fb057 设备的搜索,自定义等基础内容 2025-12-18 13:04:32 +08:00
zhang1106 80d9c42726 初始化IDC设备管理系统项目 2025-12-18 10:45:13 +08:00