diff --git a/frontend/src/components/agent/AgentMonitor.tsx b/frontend/src/components/agent/AgentMonitor.tsx
index 3ceed6e..60e546a 100644
--- a/frontend/src/components/agent/AgentMonitor.tsx
+++ b/frontend/src/components/agent/AgentMonitor.tsx
@@ -1,4 +1,5 @@
import { useState, useEffect, useRef, useCallback } from 'react';
+import type { ComponentType } from 'react';
import { toast } from 'sonner';
import { agentApi } from '@/api';
import { AgentWizard } from './AgentWizard';
@@ -385,7 +386,7 @@ export function AgentMonitor() {
}
// ============ 指标条子组件 ============
-function MetricBar({ icon: Icon, label, value }: { icon: any; label: string; value: number }) {
+function MetricBar({ icon: Icon, label, value }: { icon: ComponentType<{ className?: string }>; label: string; value: number }) {
return (
diff --git a/frontend/src/components/kubernetes/DeploymentEditService.tsx b/frontend/src/components/kubernetes/DeploymentEditService.tsx
index f242fea..05da0de 100644
--- a/frontend/src/components/kubernetes/DeploymentEditService.tsx
+++ b/frontend/src/components/kubernetes/DeploymentEditService.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// DeploymentEditService.tsx — 编辑器「服务/应用路由」Tab (M9)
// 展示与当前 Deployment 关联的 Service / Ingress,并提供创建入口
// 作者: Logan
diff --git a/frontend/src/components/kubernetes/DeploymentWorkload.tsx b/frontend/src/components/kubernetes/DeploymentWorkload.tsx
index dc9ada2..01dbcdf 100644
--- a/frontend/src/components/kubernetes/DeploymentWorkload.tsx
+++ b/frontend/src/components/kubernetes/DeploymentWorkload.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// DeploymentWorkload.tsx — Kuboard 风格 Deployment 详情主组件
// - 顶部操作菜单: 编辑 | 预览/编辑YAML | 调整镜像版本 | 伸缩 | 日志/终端 | 重启 | 暂停/恢复更新 | CI/CD发布 | 删除 | 元数据 | 运行时 | 服务 | 应用路由
// - 三模式: view(只读增强看板)/ edit(可视化编辑器)/ yaml(YAML编辑器)
diff --git a/frontend/src/components/kubernetes/NamespaceResourcePage.tsx b/frontend/src/components/kubernetes/NamespaceResourcePage.tsx
index 55b66b4..fb0f04d 100644
--- a/frontend/src/components/kubernetes/NamespaceResourcePage.tsx
+++ b/frontend/src/components/kubernetes/NamespaceResourcePage.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import { useState, useEffect, useCallback, useMemo } from 'react';
import { useParams, useNavigate, useLocation, Link } from 'react-router-dom';
import { Card, CardContent } from '@/components/ui/card';
diff --git a/frontend/src/components/kubernetes/NodeDetailPage.tsx b/frontend/src/components/kubernetes/NodeDetailPage.tsx
index 67c0567..1f3189a 100644
--- a/frontend/src/components/kubernetes/NodeDetailPage.tsx
+++ b/frontend/src/components/kubernetes/NodeDetailPage.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import { useState, useEffect, useCallback } from 'react';
import { useParams, useNavigate, Link } from 'react-router-dom';
import { Card, CardContent } from '@/components/ui/card';
diff --git a/frontend/src/components/kubernetes/ResourceVisualEditor.tsx b/frontend/src/components/kubernetes/ResourceVisualEditor.tsx
index 6fbe78c..643d797 100644
--- a/frontend/src/components/kubernetes/ResourceVisualEditor.tsx
+++ b/frontend/src/components/kubernetes/ResourceVisualEditor.tsx
@@ -1,5 +1,7 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// ResourceVisualEditor — ConfigMap/Secret/Service/Ingress/PVC 可视化编辑 // Logan.Li
import { useState, useEffect, useCallback } from 'react';
+import type { ComponentType } from 'react';
import { X, Save, Loader2, Plus, Trash2, FileText, Network, Shield, Database, ChevronRight} from 'lucide-react';
import { Button } from '@/components/ui/button';
import { ModalOverlay } from '@/components/ui/modal-overlay';
@@ -67,7 +69,7 @@ export function ResourceVisualEditor({ clusterCode, namespace, resource, name, o
toast({ title: '可视化编辑不可用', description: '无法解析资源结构,已切换到 YAML 编辑模式' });
}
} catch (e) {
- toast({ title: '加载失败', description: (e as Record).message, variant: 'destructive' });
+ toast({ title: '加载失败', description: e instanceof Error ? e.message : String(e), variant: 'destructive' });
} finally { setLoading(false); }
}, [clusterCode, namespace, resource, name, isCreate]);
@@ -92,7 +94,7 @@ export function ResourceVisualEditor({ clusterCode, namespace, resource, name, o
onSaved?.();
onClose();
} catch (e) {
- toast({ title: isCreate ? '创建失败' : '保存失败', description: (e as Record).message, variant: 'destructive' });
+ toast({ title: isCreate ? '创建失败' : '保存失败', description: e instanceof Error ? e.message : String(e), variant: 'destructive' });
} finally { setSaving(false); }
};
@@ -114,7 +116,7 @@ export function ResourceVisualEditor({ clusterCode, namespace, resource, name, o
onSaved?.();
onClose();
} catch (e) {
- toast({ title: '保存失败', description: (e as Record).message, variant: 'destructive' });
+ toast({ title: '保存失败', description: e instanceof Error ? e.message : String(e), variant: 'destructive' });
} finally { setSaving(false); }
};
@@ -155,7 +157,7 @@ export function ResourceVisualEditor({ clusterCode, namespace, resource, name, o
};
const resCfg = getYamlResourceConfig(resource);
- const resourceMeta: Record = {
+ const resourceMeta: Record; color: string }> = {
configmaps: { title: 'ConfigMap', icon: FileText, color: 'text-blue-400' },
secrets: { title: 'Secret', icon: Shield, color: 'text-amber-400' },
services: { title: 'Service', icon: Network, color: 'text-cyan-400' },
diff --git a/frontend/src/components/kubernetes/TopologyView.tsx b/frontend/src/components/kubernetes/TopologyView.tsx
index 0d15685..aeac21d 100644
--- a/frontend/src/components/kubernetes/TopologyView.tsx
+++ b/frontend/src/components/kubernetes/TopologyView.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import { useState, useEffect, useCallback, useRef } from 'react';
import { useParams } from 'react-router-dom';
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
diff --git a/frontend/src/components/kubernetes/deployment-bundle-yaml.ts b/frontend/src/components/kubernetes/deployment-bundle-yaml.ts
index d4e8bcc..bbb6107 100644
--- a/frontend/src/components/kubernetes/deployment-bundle-yaml.ts
+++ b/frontend/src/components/kubernetes/deployment-bundle-yaml.ts
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// Deployment 多文档 YAML(Deployment + 关联 Service)加载与保存 // Logan.Li
import { kubernetesApi } from '@/api';
import {
diff --git a/frontend/src/components/kubernetes/deployment-workload/EditModeContainer.tsx b/frontend/src/components/kubernetes/deployment-workload/EditModeContainer.tsx
index 8769aaf..8ceeb44 100644
--- a/frontend/src/components/kubernetes/deployment-workload/EditModeContainer.tsx
+++ b/frontend/src/components/kubernetes/deployment-workload/EditModeContainer.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// EditModeContainer.tsx — 编辑模式 Tab 容器,共享 manifest 状态 // Logan.Li
import { useState, useEffect } from 'react';
import { Container, Settings, Database, Network } from 'lucide-react';
diff --git a/frontend/src/components/kubernetes/k8s-manifest-utils.ts b/frontend/src/components/kubernetes/k8s-manifest-utils.ts
index 98d8665..6ef16c9 100644
--- a/frontend/src/components/kubernetes/k8s-manifest-utils.ts
+++ b/frontend/src/components/kubernetes/k8s-manifest-utils.ts
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// K8s manifest 解析/序列化/精简共用工具 // Logan.Li
import { cleanYAML } from './k8s-yaml-utils';
diff --git a/frontend/src/components/kubernetes/topology-helpers.tsx b/frontend/src/components/kubernetes/topology-helpers.tsx
index b2ed755..c512fbb 100644
--- a/frontend/src/components/kubernetes/topology-helpers.tsx
+++ b/frontend/src/components/kubernetes/topology-helpers.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import {
Network, Server, Globe, Cloud, Boxes, Database, Zap, Box,
} from 'lucide-react';
diff --git a/frontend/src/components/monitor/dashboard/GrafanaDashboard.tsx b/frontend/src/components/monitor/dashboard/GrafanaDashboard.tsx
index d58edf1..8bbcd5b 100644
--- a/frontend/src/components/monitor/dashboard/GrafanaDashboard.tsx
+++ b/frontend/src/components/monitor/dashboard/GrafanaDashboard.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// 监控大屏 — 标签页切换 Agent / Zabbix / Prometheus + 自定义仪表盘 // Logan.Li
import React, { useState, useEffect, useMemo } from 'react';
import {
diff --git a/frontend/src/components/monitor/log-center/LogAlertsPanel.tsx b/frontend/src/components/monitor/log-center/LogAlertsPanel.tsx
index 9833d92..d8fdb40 100644
--- a/frontend/src/components/monitor/log-center/LogAlertsPanel.tsx
+++ b/frontend/src/components/monitor/log-center/LogAlertsPanel.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// LogAlertsPanel — 日志告警规则列表 // Logan.Li
import { useState, useEffect, useCallback } from 'react';
import { Button } from '@/components/ui/button';
diff --git a/frontend/src/components/server/CloudServerImport.tsx b/frontend/src/components/server/CloudServerImport.tsx
index a45e3d9..3c8c4f9 100644
--- a/frontend/src/components/server/CloudServerImport.tsx
+++ b/frontend/src/components/server/CloudServerImport.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import { useState, useEffect, useCallback } from 'react';
import { Button } from '@/components/ui/button';
import { Card, CardContent } from '@/components/ui/card';
diff --git a/frontend/src/components/system/SystemManager.tsx b/frontend/src/components/system/SystemManager.tsx
index 5267ce1..4036c2d 100644
--- a/frontend/src/components/system/SystemManager.tsx
+++ b/frontend/src/components/system/SystemManager.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import { useState, useEffect } from 'react';
import { useLocation } from 'react-router-dom';
import { useConfirm } from '@/components/ui/confirm-dialog';
diff --git a/frontend/src/components/system/SystemRolesTab.tsx b/frontend/src/components/system/SystemRolesTab.tsx
index 8caee09..5a7d668 100644
--- a/frontend/src/components/system/SystemRolesTab.tsx
+++ b/frontend/src/components/system/SystemRolesTab.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import { useState, useEffect, useCallback } from 'react';
import { toast } from 'sonner';
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
diff --git a/frontend/src/components/system/SystemUserTab.tsx b/frontend/src/components/system/SystemUserTab.tsx
index 471e963..d3d3bfc 100644
--- a/frontend/src/components/system/SystemUserTab.tsx
+++ b/frontend/src/components/system/SystemUserTab.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import { Card, CardContent } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
diff --git a/frontend/src/components/system/UserDetailDialog.tsx b/frontend/src/components/system/UserDetailDialog.tsx
index 660ae7d..88079cd 100644
--- a/frontend/src/components/system/UserDetailDialog.tsx
+++ b/frontend/src/components/system/UserDetailDialog.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// 用户详情弹窗(只读信息 + 角色徽章 + 编辑入口) // Logan.Li
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
diff --git a/frontend/src/types/js-yaml.d.ts b/frontend/src/types/js-yaml.d.ts
index 0d3f20e..7f7a88e 100644
--- a/frontend/src/types/js-yaml.d.ts
+++ b/frontend/src/types/js-yaml.d.ts
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// js-yaml 类型声明兜底
// 项目直接依赖的 js-yaml 包未自带 .d.ts,此处给出最小声明,避免 TS7016。
// 如后续安装 @types/js-yaml,可删除本文件。
diff --git a/frontend/src/types/kubernetes.ts b/frontend/src/types/kubernetes.ts
index 29c8507..1aca507 100644
--- a/frontend/src/types/kubernetes.ts
+++ b/frontend/src/types/kubernetes.ts
@@ -240,6 +240,23 @@ export interface K8sClusterComparison {
}>;
}
+// ===== K8s Manifest(可视化编辑器使用的通用 manifest 类型)=====
+export interface K8sManifest {
+ apiVersion?: string;
+ kind?: string;
+ metadata: {
+ name?: string;
+ namespace?: string;
+ labels?: Record;
+ annotations?: Record;
+ [key: string]: unknown;
+ };
+ spec?: Record;
+ data?: Record;
+ type?: string;
+ [key: string]: unknown;
+}
+
// ===== 通用 YAML 响应 =====
export interface K8sYamlResponse {
yaml: string;