diff --git a/frontend/src/pages/Deploy/JenkinsManager/List/index.tsx b/frontend/src/pages/Deploy/JenkinsManager/List/index.tsx index 050110ce..6ce2e070 100644 --- a/frontend/src/pages/Deploy/JenkinsManager/List/index.tsx +++ b/frontend/src/pages/Deploy/JenkinsManager/List/index.tsx @@ -17,8 +17,7 @@ import { Badge } from "@/components/ui/badge"; import { useToast } from "@/components/ui/use-toast"; import { Separator } from "@/components/ui/separator"; import type { JenkinsInstance, JenkinsView, SyncType } from './types'; -import { getJenkinsInstances, getJenkinsViews, syncJenkinsData } from './service'; -import { SyncStatus } from '@/pages/Deploy/External/types'; +import { getJenkinsInstances, getJenkinsViews, syncViews, syncJobs, syncBuilds } from './service'; const JenkinsManagerList: React.FC = () => { const [jenkinsList, setJenkinsList] = useState([]); @@ -83,11 +82,19 @@ const JenkinsManagerList: React.FC = () => { if (!currentJenkinsId) return; setSyncing(prev => ({ ...prev, [type]: true })); try { - await syncJenkinsData(currentJenkinsId, type); - await loadJenkinsList(); - if (type === 'views') { - await loadViews(); + switch (type) { + case 'views': + await syncViews(currentJenkinsId); + await loadViews(); // 重新加载视图数据 + break; + case 'jobs': + await syncJobs(currentJenkinsId); + break; + case 'builds': + await syncBuilds(currentJenkinsId); + break; } + await loadJenkinsList(); // 重新加载实例��据以更新同步时间 toast({ title: "同步成功", duration: 3000, @@ -134,16 +141,12 @@ const JenkinsManagerList: React.FC = () => { onValueChange={handleJenkinsChange} > - + {jenkinsList.map(jenkins => ( -
- - {jenkins.name} - -
+ {jenkins.name}
))}
diff --git a/frontend/src/pages/Deploy/JenkinsManager/List/service.ts b/frontend/src/pages/Deploy/JenkinsManager/List/service.ts index 860deb41..e4a1636c 100644 --- a/frontend/src/pages/Deploy/JenkinsManager/List/service.ts +++ b/frontend/src/pages/Deploy/JenkinsManager/List/service.ts @@ -1,10 +1,8 @@ import request from '@/utils/request'; -import type { JenkinsInstance, JenkinsView, SyncType } from './types'; +import type { JenkinsInstance, JenkinsView } from './types'; import { getExternalSystems } from '@/pages/Deploy/External/service'; import { SystemType } from '@/pages/Deploy/External/types'; -const BASE_URL = '/api/v1/jenkins-manager'; - // 获取 Jenkins 实例列表 export const getJenkinsInstances = () => getExternalSystems({ @@ -61,6 +59,14 @@ export const getJenkinsViews = (jenkinsId: string) => } ]); -// 同步 Jenkins 数据 -export const syncJenkinsData = (jenkinsId: string, type: SyncType) => - request.post(`${BASE_URL}/${jenkinsId}/sync/${type}`); +// 同步视图 +export const syncViews = (externalSystemId: string) => + request.post(`/api/v1/jenkins-manager/${externalSystemId}/sync-views`); + +// 同步任务 +export const syncJobs = (externalSystemId: string) => + request.post(`/api/v1/jenkins-manager/${externalSystemId}/sync-jobs`); + +// 同步构建 +export const syncBuilds = (externalSystemId: string) => + request.post(`/api/v1/jenkins-manager/${externalSystemId}/sync-builds`);