Commit Graph
231 Commits
Author SHA1 Message Date
zhang1106 5450d5f05a refactor(ConsumableManagement): 移除多余的导出菜单项
简化导出菜单,删除不常用的筛选结果和预警库存导出选项
2026-04-10 12:33:01 +08:00
zhang1106 618633bc6a feat(耗材): 增强耗材日志名称同步和导入功能 2026-04-10 12:02:06 +08:00
zhang1106 9421e34147 feat(耗材管理): 新增创建耗材同时入库功能并优化库存编辑逻辑
添加创建耗材时同时入库的功能,包含入库数量、操作人和原因等字段
强制初始化新建耗材的库存为0和空SN列表
禁止通过编辑接口直接修改库存和SN列表
前端新增同时入库选项及相关表单字段
优化编辑模式下库存信息的展示方式
2026-04-09 17:11:11 +08:00
zhang1106 6a7e52312e feat(日志): 添加删除日志记录功能
后端添加删除日志的API接口,前端在日志列表中添加删除按钮和确认弹窗
2026-04-09 16:27:20 +08:00
zhang1106 7c27e6e100 feat(耗材管理): 添加耗材操作记录时间线功能
新增耗材操作记录时间线组件,展示耗材的入库、出库、调整等操作历史
包含操作类型、数量变化、操作人等信息,并支持分页加载更多记录
2026-04-09 16:18:36 +08:00
zhang1106 e56bf8c703 feat(数据库迁移): 为MySQL添加外键约束移除功能 2026-04-09 15:48:11 +08:00
zhang1106 585e044649 feat(consumables): 添加手动创建耗材日志功能
后端:
- 新增 POST /logs 接口用于创建耗材操作日志
- 添加操作类型验证和必填字段检查
- 支持自定义创建时间

前端:
- 添加手动创建日志弹窗和表单
- 实现表单提交和验证逻辑
- 提供操作类型选择器和库存信息输入
2026-04-09 15:27:48 +08:00
zhang1106 bfe6ca4744 feat(3d): 优化3D场景性能并添加纹理缓存
refactor(DeviceModel): 使用相机Z坐标阈值减少背板渲染状态更新
refactor(LODManager): 基于距离变化率优化LOD切换逻辑
feat(TextureCache): 新增纹理缓存类用于U位标签纹理管理
refactor(RackModel): 使用纹理缓存重构U位标签生成逻辑

feat(backend): 添加端口兼容性检查功能
feat(cables): 实现端口类型和速率兼容性验证API

feat(frontend): 新增设备筛选组件FilterableDeviceSelect
refactor(PortPanel): 优化端口占用状态显示和交互
feat(CableWizardModal): 集成端口兼容性检查并优化UI
2026-04-07 17:05:19 +08:00
zhang1106 4f8a44f6b5 feat: 添加存储调试页面并优化用户角色查询 2026-04-07 14:15:44 +08:00
zhang96110 1bda91b93e fix: 修复consumableImport.js路由级authMiddleware拦截所有/api请求的问题
consumableImport.js挂载在/api根路径,使用router.use(authMiddleware)
会拦截所有/api/*请求(包括公开路由如/api/auth/login),
导致登录等公开接口返回401。

修复方案:移除router.use(authMiddleware),改为在每个具体路由上
单独添加authMiddleware中间件。
2026-04-02 03:35:23 +00: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 ea67951dd4 fix: 移除扫码入库下拉框的 status=active 过滤,显示全部耗材 2026-04-01 09:34:20 +00:00
zhang96110 f1aa887b6b fix: 修复 fetchAllConsumablesForScan 初始化顺序导致的 ReferenceError 2026-04-01 09:23:05 +00:00
zhang96110 9d29599210 fix: 修复耗材扫码入库下拉框数据不全和搜索报错
- 新增 allConsumablesForScan 获取全部活跃耗材,解决下拉框只显示分页数据
- Select 改用 optionFilterProp=label 替代 option.children.toLowerCase() 修复 TypeError
2026-04-01 09:20:48 +00:00
zhang96110 9c0007a817 fix: 修复创建耗材时手动填写库存被空SN列表覆盖为0的bug
- 空snList不再覆盖currentStock
- 有SN时取手动库存与SN数量的较大值,允许后续补扫
2026-04-01 09:08:19 +00:00
zhang96110 00cdd481d4 fix: 修复设备管理页面前后端分页混合导致的数据闪烁问题
- 移除 append/loadMore 模式,改为纯后端分页
- 删除前端 slice useEffect,翻页时只调用后端请求
- 清理 loadMoreRef/hasMoreRef/deviceLoadingMore 等无用变量
- 删除 currentPageDevices state,allDevices 即当前页数据
2026-04-01 07:44:57 +00: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 1d7a83bbe8 fix: 修复盘盈设备页面 res.data 多取一层导致 TypeError 崩溃 2026-04-01 06:31:56 +00:00
zhang96110 3ce7ea40de fix: 修复加密失效、权限失效、盘点页面崩溃等问题
- secureStorage.js: 移除硬编码密钥,改为运行时动态生成密钥
- AuthContext.jsx: 修复 hasPermission() 始终返回 true 的权限失效问题
- auth.js: 登录接口返回用户角色信息,支持前端权限判断
- InventoryManagement.jsx: 修复 res.data 多取一层导致 TypeError 崩溃
2026-04-01 06:26:03 +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 fa26964cbb fix(frontend): 给全局 axios 实例添加 Token 拦截器修复多页面列表加载失败
- 16 个页面文件 100+ 处直接使用 axios 而非封装的 api 实例
- 导致请求不携带 Token,后端返回 401 列表加载失败
- 给全局 axios 默认实例添加请求/响应拦截器自动附加 Token
2026-04-01 04:51:24 +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
zhang1106 b306c75aae feat(路由): 添加路由加载器和配置实现自动化路由注册
重构服务器路由注册逻辑,将手动路由注册替换为基于配置的自动加载
新增路由加载器工具和路由配置文件,支持动态加载和错误处理
2026-04-01 10:44:57 +08:00
zhang1106 f32684fc5c feat(server): 添加公共路径认证中间件和批量操作功能
refactor(routes): 重新组织路由顺序并添加批量删除功能
- 在server.js中添加公共路径认证中间件
- 为cables、devicePorts等路由添加批量删除功能
- 重新组织路由顺序,将相关操作分组
- 添加工单导出功能
2026-04-01 10:14:46 +08:00
zhang1106 773efdb9a4 feat(工单管理): 添加工单导出功能
实现工单数据的导出功能,支持CSV、JSON和Excel格式。前端添加导出模态框和选择逻辑,后端实现数据处理和文件生成。用户可选择导出选中项、当前页或全部工单。

- 前端添加TicketExportModal组件处理导出选项
- 后端添加/export接口处理不同格式的导出请求
- 支持导出工单基础信息和自定义字段
- 添加导出按钮到工单管理页面
2026-03-31 21:58:09 +08:00
zhang1106 44137bb851 feat(数据库迁移): 为线缆表添加新字段并改进迁移脚本
添加 cableLabel、cableColor 等新字段到 cables 表
重构迁移脚本以支持多种数据库方言
2026-03-31 14:44:25 +08:00
zhang1106 06e3b56469 feat(线缆管理): 新增向导式接线创建功能
- 新增四步向导流程,简化接线创建过程
- 添加线缆标签、颜色、安装信息等新字段
- 实现端口可视化面板和冲突检测功能
- 新增耗材日志设备关联字段
- 添加耗材导入后台任务管理
- 更新线缆管理文档和使用指南
2026-03-31 14:34:34 +08:00
zhangbing 5d972799f2 feat: 优化设备位置冲突检测和前端虚拟滚动
为设备表添加复合索引优化位置冲突检测性能
在设备位置检查中添加悲观锁防止竞态条件
添加 react-window 和 react-virtualized-auto-sizer 支持虚拟滚动
2026-03-29 10:40:33 +08:00
zhangbing 1d815b812e feat: 实现安全存储和批量导入功能增强
refactor(前端): 重构认证和存储逻辑使用secureStorage
feat(前端): 添加安全存储工具和日志工具
feat(前端): 增强批量导入功能支持服务器和交换机设备
fix(后端): 改进设备端口和网卡批量导入接口
docs: 更新导入模板和操作说明
2026-03-29 10:06:32 +08:00
zhang1106 63f0cb570e refactor: 统一代码风格并迁移至 ESLint 新配置
style(backend): 格式化模型文件代码
style(frontend): 调整组件代码格式
chore: 删除旧 ESLint 配置并添加新配置
refactor(backend): 重构模型定义语法
style: 统一箭头函数和对象属性简写
2026-03-27 19:12:16 +08:00
zhang1106 6a8d4144ff docs(UI): 完善网卡和端口批量导入的操作说明 2026-03-27 18:08:26 +08:00
zhang1106 ae315e2775 feat(网卡管理): 新增批量导入网卡功能及关联组件
refactor(端口管理): 优化端口批量导入逻辑,增加服务器端口网卡关联验证

feat(前端组件): 新增批量导入模态框、网卡导入模态框和端口导出模态框

style(设备管理): 优化设备表格加载性能,添加无限滚动功能

docs(.gitignore): 添加数据文件忽略规则
2026-03-27 17:52:35 +08:00
zhang1106 e640377609 feat(端口管理): 重构端口创建模态框并优化UI交互
重构端口创建模态框的UI设计,引入分步表单布局,增强用户体验
优化表单字段的视觉呈现,添加图标和状态提示
新增服务器网卡管理功能,方便查看未添加端口的服务器
统一消息提示样式,使用带图标的自定义样式
2026-03-26 17:05:20 +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 0b7732e427 feat: 添加响应式3D机柜可视化组件和钩子
重构3D机柜可视化页面,添加以下功能:
1. 新增 useResponsiveLayout 钩子处理响应式布局
2. 新增 useSortedRacks 钩子实现机柜排序和筛选
3. 添加 CascadingRackPanel 级联选择面板组件
4. 实现 RackSelectorHeader 响应式头部导航组件
5. 优化页面结构和交互逻辑
2026-03-25 12:14:00 +08:00
zhang1106 6ebcb3f870 feat(设备状态): 添加空闲状态并更新UI样式
- 在设备状态映射中添加空闲状态及其颜色配置
- 移除盘点按钮的图标以简化界面
- 更新设备详情模态框的背景渐变颜色
2026-03-25 09:16:57 +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 f51c39284b fix(remote-backup): 移除调试日志并改进协议类型验证
refactor(migrations): 添加设备字段options配置迁移
2026-03-23 11:09:36 +08:00
zhang1106 66807b1660 feat(远程备份): 添加连接测试功能并优化协议切换逻辑
前端添加连接测试功能,使用 getFieldsValue 获取完整表单值并打印日志
后端实现 /remote/test 接口,支持协议自动推断和连接测试
优化协议切换时的表单重置逻辑,清空相关字段并设置默认路径
2026-03-23 10:40:26 +08:00
zhang1106 a5da9c04c9 fix(nginx配置): 增加全局请求体大小限制并统一为100M
为了支持大文件上传,在nginx配置中增加全局的client_max_body_size设置,并将原有的局部限制从50M提升至100M以保持统一
2026-03-23 10:08:21 +08:00
zhang1106 d3ffa34a13 style(前端): 将错误颜色变量更新为危险颜色变量 2026-03-23 09:59:02 +08:00
zhang1106 df689853bc fix(机柜管理): 处理获取机房列表时可能的数据未定义问题 2026-03-23 09:16:18 +08:00
zhang1106 a9aab04f15 fix(数据库迁移): 将devices表的sourceType字段类型从TEXT改为VARCHAR(255) 2026-03-20 17:21:42 +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