Skip to content
14 changes: 14 additions & 0 deletions client/src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,20 @@ export const apiService = {
if (start) params.start = start
if (limit) params.limit = limit
return api.get('/v1/changelog/deployment', { params })
},

// 获取告警列表
getAlerts: (start?: string, limit?: number, state?: string) => {
const params: any = {}
if (start) params.start = start
if (limit) params.limit = limit
if (state) params.state = state
return api.get('/v1/issues', { params })
},

// 获取告警详情
getAlertDetail: (issueID: string) => {
return api.get(`/v1/issues/${issueID}`)
}
}

Expand Down
38 changes: 37 additions & 1 deletion client/src/mock/api.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Mock API服务
import { mockServicesData, mockServiceDetails, mockVersionOptions, mockScheduledReleases, mockServiceActiveVersions, mockServiceMetrics, mockAvailableVersions, mockDeploymentPlans, mockMetricsData, mockDeploymentChangelog, type ServicesResponse, type ServiceDetail, type ServiceActiveVersionsResponse, type ServiceMetricsResponse, type AvailableVersionsResponse, type DeploymentPlansResponse, type MetricsResponse, type DeploymentChangelogResponse } from './services'
import { mockServicesData, mockServiceDetails, mockVersionOptions, mockScheduledReleases, mockServiceActiveVersions, mockServiceMetrics, mockAvailableVersions, mockDeploymentPlans, mockMetricsData, mockDeploymentChangelog, mockAlertsData, mockAlertDetails, type ServicesResponse, type ServiceDetail, type ServiceActiveVersionsResponse, type ServiceMetricsResponse, type AvailableVersionsResponse, type DeploymentPlansResponse, type MetricsResponse, type DeploymentChangelogResponse, type AlertsResponse, type AlertDetail } from './services'

// 模拟网络延迟
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))
Expand Down Expand Up @@ -151,6 +151,42 @@ export class MockApiService {
next: items.length > 0 ? items[items.length - 1].startTime : undefined
}
}

// 获取告警列表
static async getAlerts(start?: string, limit: number = 10, state?: string): Promise<AlertsResponse> {
await delay(400) // 模拟网络延迟
console.log(`Mock API: 获取告警列表 - start: ${start}, limit: ${limit}, state: ${state}`)

let items = [...mockAlertsData.items]

// 根据state参数过滤数据
if (state) {
items = items.filter(alert => alert.state === state)
}

// 根据limit限制返回数量
if (limit && limit > 0) {
items = items.slice(0, limit)
}

return {
items,
next: items.length > 0 ? items[items.length - 1].alertSince : ''
}
}

// 获取告警详情
static async getAlertDetail(issueID: string): Promise<AlertDetail> {
await delay(300) // 模拟网络延迟
console.log(`Mock API: 获取告警详情 - issueID: ${issueID}`)

const alertDetail = mockAlertDetails[issueID]
if (!alertDetail) {
throw new Error(`告警详情不存在: ${issueID}`)
}

return alertDetail
}
}

// 导出Mock API实例
Expand Down
Loading