feat: 服务器批量导入全栈实现 + SQL审计模型修复 + 审批流程增强
服务器批量导入: - 后端 BatchCreateServers handler: 逐条校验/查重/GB→MB转换/错误明细 - 前端 CSV 解析器 + IP校验 + 模板下载 + 真实API导入 - 删除孤立占位组件 BatchImport.tsx SQL审计: - 修复 TableName 字段与 GORM 接口冲突 → TargetTable - 补全路由注册 + AutoMigrate + 种子数据 审批流程增强 + 告警/菜单微调 // Logan.Li
This commit is contained in:
1 parent
6545597412
commit
77c33a6fee
16 files changed
+863
-573
No files matched your search
@@ -635,3 +635,45 @@ cd ~/devops/aiops
|
||||
- 前端约定:shadcn/ui 导入路径、Token 获取方式、严格模式
|
||||
- 开发流程:编译验证 + 文档更新 + Git 提交
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-15 15:30 自动推进
|
||||
|
||||
### 任务 1: 服务器批量导入功能(全栈真实实现)
|
||||
|
||||
**背景**: 原 `ExcelServerImport.tsx` 仅用 `setTimeout` 模拟文件解析,预览数据和导入按钮均为假功能;`BatchImport.tsx` 为孤立占位组件(含 `toast.info('开发中')`)。违反项目原则"不留占位按钮/假功能"。
|
||||
|
||||
**修改文件**:
|
||||
- `backend/internal/models/server.go` — 新增 `BatchServerItem`/`BatchCreateServerRequest`/`BatchCreateResult` 三个请求/响应结构体
|
||||
- `backend/internal/api/handlers/server.go` — 新增 `BatchCreateServers` 处理器(74行):逐条校验 hostname/IP 非空 → 查重(hostname 或 IP 已存在则跳过)→ GB→MB 转换 → 返回 success/skipped/failed/errors 明细。新增 `fmt`/`strings` import
|
||||
- `backend/internal/api/routes/routes.go` — 注册 `servers.POST("/batch")` 路由
|
||||
- `frontend/src/services/api.ts` — 新增 `serverApi.batchCreate` 方法
|
||||
- `frontend/src/components/server/ExcelServerImport.tsx` — 核心重写:新增 CSV 解析器(`parseCSVLine`/`parseCSV`)、IP 格式校验(`isValidIP`)、CSV 模板下载(`downloadTemplate`)、行级校验(hostname 非空/IP 格式/重复行检测)、真实 API 导入调用、Loader2 loading 动画。删除旧的 setTimeout 模拟逻辑
|
||||
- `frontend/src/components/server/BatchImport.tsx` — **删除**(孤立占位组件,432行)
|
||||
|
||||
**验证结果**:
|
||||
- 后端编译 `go build ./...` ✅
|
||||
- 前端类型检查 `tsc --noEmit` ✅
|
||||
- 前端构建 `npm run build` ✅ (1.88MB)
|
||||
- API 端到端测试 5 项全通过:批量创建→查重→空 hostname/无效 IP→内存转换(8GB=8192MB)
|
||||
- 浏览器 UI 验证:CSV 上传→预览(2有效/2错误)→导入流程正常
|
||||
|
||||
### 任务 2: SQL 审计后端模型修复(先前会话遗留)
|
||||
|
||||
**修改文件**:
|
||||
- `backend/internal/models/sql_audit.go` — `TableName` 字段重命名为 `TargetTable`,修复 GORM 误识别 TableName 方法导致 AutoMigrate 失败
|
||||
- `backend/internal/api/handlers/sql_audit.go` — 同步字段名
|
||||
- `backend/internal/api/routes/routes.go` — SQL 审计路由注册
|
||||
- `backend/pkg/database/database.go` — AutoMigrate 添加 SQL 审计模型
|
||||
- `backend/cmd/seed.go` — 新增 SQL 审计种子数据(55行)
|
||||
|
||||
### 任务 3: 审批流程增强(先前会话遗留)
|
||||
|
||||
**修改文件**:
|
||||
- `backend/internal/models/approval.go` — 审批步骤类型调整
|
||||
- `frontend/src/components/approval/ApprovalFlow.tsx` — 审批流程组件增强(+237行)
|
||||
- `frontend/src/components/layout/Sidebar.tsx` — 菜单项微调
|
||||
- `frontend/src/components/monitor/AlertManager.tsx` — 告警管理微调
|
||||
|
||||
**验证**: `go build ./...` ✅ + `tsc --noEmit` ✅ + `npm run build` ✅
|
||||
|
||||
Reference in new issue
Block a user