refactor(frontend): services/api 迁至 src/api,http 迁至 utils/request

对齐 Vue 后台惯例:
- src/api/          域 API(原 services/api)
- src/utils/request.ts  HTTP 封装(原 services/http.ts)
- src/utils/export.ts  客户端导出工具
- src/utils/index.ts   工具统一出口

全局导入改为 @/api 与 @/utils/request,tsc + build 通过。
This commit is contained in:
Logan.Li committed 2026-06-26 00:09:07 +08:00
1 parent 9bf35b369c
commit d19a03d427
145 files changed
+156 -142

No files matched your search

@@ -10,7 +10,7 @@ import {
Table, TableBody, TableCell, TableHead, TableHeader, TableRow,
} from '@/components/ui/table';
import { RefreshCw, ChevronRight, BarChart3, Download, Cpu, HardDrive } from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
export default function CapacityPage() {
const { clusterCode } = useParams<{ clusterCode: string }>();
@@ -28,7 +28,7 @@ import {
TrendingUp,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
const CHART_COLORS = ['#3B82F6', '#207060', '#F59E0B', '#EF4444', '#8B5CF6', '#EC4899', '#14B8A6', '#F97316'];
@@ -20,7 +20,7 @@ import {
Activity,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
const NAMESPACE_ICON: Record<string, React.ComponentType<any>> = {
@@ -33,7 +33,7 @@ import {
FolderOpen,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
import { PodExecTerminal } from './PodExecTerminal';
import { PodLogsViewer } from './PodLogsViewer';
@@ -10,7 +10,7 @@ import {
Save, Loader2, Settings, RefreshCw, Shield, Clock, Network,
} from 'lucide-react';
import { useToast } from '@/hooks/use-toast';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { SchedulingSection, type ScheduleMode } from './deployment-edit-advanced/SchedulingSection';
import { DnsHostSection } from './deployment-edit-advanced/DnsHostSection';
@@ -9,7 +9,7 @@ import { Label } from '@/components/ui/label';
import { Badge } from '@/components/ui/badge';
import { Plus, Trash2, Save, Loader2, Tags, FileText, Hash, Lock } from 'lucide-react';
import { useToast } from '@/hooks/use-toast';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
interface DeploymentEditBasicProps {
clusterCode: string;
@@ -18,7 +18,7 @@ import {
} from 'lucide-react';
import { useToast } from '@/hooks/use-toast';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { ContainerGroupSection } from './deployment-edit/ContainerGroupSection';
import {
@@ -23,7 +23,7 @@ import {
} from 'lucide-react';
import { useToast } from '@/hooks/use-toast';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
interface Props {
clusterCode: string;
@@ -11,7 +11,7 @@ import {
Plus, Trash2, Save, Loader2, HardDrive, Database, Folder, Lock, File, Disc, Server,
} from 'lucide-react';
import { useToast } from '@/hooks/use-toast';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
interface Props {
clusterCode: string;
@@ -30,7 +30,7 @@ import {
Loader2,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
import {
formatK8sTime, formatDuration, elapsedSeconds, statusColor, STATUS_COLORS,
@@ -34,7 +34,7 @@ import {
Database,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
import { useUserStore } from '@/store';
import { YamlViewer } from './YamlViewer';
@@ -14,7 +14,7 @@ import {
Cell,
} from 'recharts';
import { RefreshCw, ChevronRight, Bell, AlertTriangle, Info, Activity, Server, Layers } from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
// Color palette for charts
const CHART_COLORS = ['#EF4444', '#F59E0B', '#3B82F6', '#8B5CF6', '#EC4899', '#14B8A6', '#F97316', '#6366F1', '#84CC16', '#06B6D4'];
@@ -4,7 +4,7 @@ import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Cloud, XCircle } from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import {
AreaChart,
Area,
@@ -12,7 +12,7 @@ import {
DialogHeader,
DialogTitle,
} from '@/components/ui/dialog';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { toast } from 'sonner';
// 名称即 code,只允许英文/数字/连字符
@@ -29,7 +29,7 @@ import {
Container,
Download,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { toast } from 'sonner';
import type { KubernetesCluster } from '@/types';
import { KubernetesClusterDetail } from './KubernetesClusterDetail';
@@ -10,7 +10,7 @@ import {
Table, TableBody, TableCell, TableHead, TableHeader, TableRow,
} from '@/components/ui/table';
import { RefreshCw, Search, Server, Loader2 } from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
export function KubernetesNodes() {
const [clusters, setClusters] = useState<any[]>([]);
@@ -22,7 +22,7 @@ import {
Eye,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
import { DeploymentDetail } from './DeploymentDetail';
@@ -15,7 +15,7 @@ import {
RefreshCw, Loader2, ChevronRight, Plus, Trash2, Boxes, Container, Network,
Shield, Activity, AlertTriangle, CheckCircle2,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
interface NamespaceDetail {
name: string;
@@ -13,7 +13,7 @@ import {
Clock,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
const RESOURCE_LINKS = [
{ type: 'deployments', label: 'Deployments', icon: Boxes, desc: '工作负载副本管理' },
@@ -19,7 +19,7 @@ import { YamlViewer } from './YamlViewer';
import { ResourceVisualEditor } from './ResourceVisualEditor';
import { PodExecTerminal } from './PodExecTerminal';
import { PodFileBrowser } from './PodFileBrowser';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
type ResourceType =
@@ -20,7 +20,7 @@ import {
CheckCircle2,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
export default function NodeDetailPage() {
const { clusterCode, nodeName } = useParams<{ clusterCode: string; nodeName: string }>();
@@ -20,7 +20,7 @@ import {
Terminal, Maximize2, Minimize2, X, Loader2, RotateCw, Box,
} from 'lucide-react';
import { cn } from '@/lib/utils';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
export interface PodExecTerminalProps {
@@ -1,7 +1,7 @@
// PodFileBrowser.tsx — Pod 容器文件浏览器组件
// 作者: Logan <admin@attacker.club>
import { useState, useEffect, useCallback, useRef } from 'react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import {
@@ -19,7 +19,7 @@ import {
RefreshCw, Loader2, Box, History, Clock, Filter, AlertCircle,
} from 'lucide-react';
import { cn } from '@/lib/utils';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
/**
@@ -10,7 +10,7 @@ import {
Table, TableBody, TableCell, TableHead, TableHeader, TableRow,
} from '@/components/ui/table';
import { Cpu, HardDrive, RefreshCw, ChevronRight, Activity } from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
export default function PodMetricsPage() {
const { clusterCode } = useParams<{ clusterCode: string }>();
@@ -10,7 +10,7 @@ import { Label } from '@/components/ui/label';
import { Textarea } from '@/components/ui/textarea';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { useToast } from '@/hooks/use-toast';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import CodeMirror from '@uiw/react-codemirror';
import { yaml } from '@codemirror/lang-yaml';
import { oneDark } from '@codemirror/theme-one-dark';
@@ -15,7 +15,7 @@ import { Textarea } from '@/components/ui/textarea';
import {
Search, RefreshCw, Loader2, Cloud, Save, Plus, Trash2, Link2, Pencil, RotateCcw,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useConfirm } from '@/components/ui/confirm-dialog';
import { toast } from 'sonner';
import type { TopologyNode, TopologyEdge } from '@/types';
@@ -13,7 +13,7 @@ import {
ArrowLeft, RotateCcw, FileCode, Activity, Container, Terminal,
HardDrive, Minus, Plus, Boxes, Tag, Settings, Database,
} from 'lucide-react';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { useToast } from '@/hooks/use-toast';
import { YamlViewer } from './YamlViewer';
import { PodExecTerminal } from './PodExecTerminal';
@@ -5,7 +5,7 @@ import { useState, useEffect, useMemo} from 'react';
import { X, Copy, Check, Save, Loader2, Sparkles} from 'lucide-react';
import { Button } from '@/components/ui/button';
import { useToast } from '@/hooks/use-toast';
import { kubernetesApi } from '@/services/api';
import { kubernetesApi } from '@/api';
import { cleanYAML } from './k8s-yaml-utils';
import CodeMirror from '@uiw/react-codemirror';
import { yaml } from '@codemirror/lang-yaml';