增加团队管理页面

This commit is contained in:
dengqichen 2025-10-29 20:57:32 +08:00
parent a265275b97
commit e5f0f3bba4
3 changed files with 588 additions and 515 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
import request from '@/utils/request';
import type { JenkinsInstance, JenkinsInstanceDTO } from './types';
import type { JenkinsViewDTO, JenkinsJobDTO, JenkinsBuildDTO } from './types';
import { getExternalSystems } from '@/pages/Deploy/External/service';
import { SystemType } from '@/pages/Deploy/External/types';
@ -10,18 +10,36 @@ export const getJenkinsInstances = () =>
enabled: true
}).then(response => response.content);
// 获取 Jenkins 实例详情
export const getJenkinsInstance = (externalSystemId: string) =>
request.get<JenkinsInstanceDTO>(`/api/v1/jenkins-manager/${externalSystemId}/instance`);
// ==================== Jenkins 视图 ====================
// 获取视图列表
export const getJenkinsViews = (externalSystemId: number) =>
request.get<JenkinsViewDTO[]>(`/api/v1/jenkins-view`, {
params: { externalSystemId }
});
// 同步视图
export const syncViews = (externalSystemId: string) =>
request.post<void>(`/api/v1/jenkins-manager/${externalSystemId}/sync-views`);
export const syncJenkinsViews = (externalSystemId: number) =>
request.post<void>(`/api/v1/jenkins-view/sync`, null, {
params: { externalSystemId }
});
// ==================== Jenkins 任务 ====================
// 获取任务列表
export const getJenkinsJobs = (params: { externalSystemId: number; viewId?: number }) =>
request.get<JenkinsJobDTO[]>(`/api/v1/jenkins-job`, { params });
// 同步任务
export const syncJobs = (externalSystemId: string) =>
request.post<void>(`/api/v1/jenkins-manager/${externalSystemId}/sync-jobs`);
export const syncJenkinsJobs = (params: { externalSystemId: number; viewId?: number }) =>
request.post<void>(`/api/v1/jenkins-job/sync`, null, { params });
// 同步构建
export const syncBuilds = (externalSystemId: string) =>
request.post<void>(`/api/v1/jenkins-manager/${externalSystemId}/sync-builds`);
// ==================== Jenkins 构建 ====================
// 获取构建列表
export const getJenkinsBuilds = (params: { externalSystemId: number; jobId?: number }) =>
request.get<JenkinsBuildDTO[]>(`/api/v1/jenkins-build`, { params });
// 同步构建根据jobId
export const syncJenkinsBuilds = (params: { externalSystemId: number; jobId?: number }) =>
request.post<void>(`/api/v1/jenkins-build/sync`, null, { params });

View File

@ -18,25 +18,39 @@ export interface JenkinsInstanceDTO extends BaseResponse {
// Jenkins 视图
export interface JenkinsViewDTO extends BaseResponse {
description: string;
description?: string;
externalSystemId: number;
viewName: string;
viewUrl: string;
jobCount?: number; // 关联的任务数量
}
// Jenkins 任务
export interface JenkinsJobDTO extends BaseResponse {
buildable: boolean;
description: string;
buildable?: boolean;
description?: string;
jobName: string;
jobUrl: string;
nextBuildNumber: number;
lastBuildNumber: number;
lastBuildStatus: string;
healthReportScore: number;
lastBuildTime: string;
nextBuildNumber?: number;
lastBuildNumber?: number;
lastBuildStatus?: string;
healthReportScore?: number;
lastBuildTime?: string;
externalSystemId: number;
viewId: number;
viewId?: number;
buildCount?: number; // 关联的构建数量
}
// Jenkins 构建
export interface JenkinsBuildDTO extends BaseResponse {
buildNumber: number;
buildStatus: string;
buildUrl: string;
duration?: number;
starttime?: string;
actions?: string;
externalSystemId: number;
jobId: number;
}
// 同步类型