Skip to content

Commit 304a376

Browse files
committed
修改新建发布任务api
1 parent f089e4a commit 304a376

File tree

1 file changed

+32
-86
lines changed

1 file changed

+32
-86
lines changed

client/src/views/HomeView.vue

Lines changed: 32 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ import * as echarts from 'echarts'
410410
import { apiService } from '@/api'
411411
import { mockApi } from '@/mock/api'
412412
import type { ServicesResponse, ServiceDetail, ServiceActiveVersionsResponse, ServiceMetricsResponse, AvailableVersionsResponse, DeploymentPlansResponse, MetricsResponse } from '@/mock/services'
413-
import { createReleaseTask, rollbackVersion as rollbackVersionInMock, updateServiceAlertStatus, getServiceAlertStatus, type ServiceAlertStatus, getServiceDeploymentStatus, type DeploymentStatus, getServiceVersionAlertStatus } from '@/mock/services'
413+
import { updateServiceAlertStatus, getServiceAlertStatus, type ServiceAlertStatus, getServiceDeploymentStatus, type DeploymentStatus, getServiceVersionAlertStatus } from '@/mock/services'
414414
415415
const router = useRouter()
416416
@@ -1135,72 +1135,40 @@ const createRelease = async () => {
11351135
}
11361136
11371137
try {
1138-
// 1. 调用mock数据操作函数,修改底层数据
1139-
createReleaseTask(selectedNode.value.name, selectedVersion.value)
1138+
// 调用后端API创建部署计划
1139+
const response = await apiService.createDeployment({
1140+
service: selectedNode.value.name,
1141+
version: selectedVersion.value,
1142+
scheduleTime: scheduledStart.value || undefined
1143+
})
1144+
1145+
console.log('部署计划创建成功:', response.data)
11401146
1141-
// 2. 重新加载服务详情数据(这样饼状图会自动更新
1147+
// 重新加载服务详情数据(饼状图会自动更新
11421148
const serviceDetailResult = await loadServiceDetail(selectedNode.value.name)
1143-
console.log('重新加载的服务详情数据:', serviceDetailResult)
11441149
if (serviceDetailResult) {
11451150
selectedNode.value = { ...serviceDetailResult, status: getNodeStatus(serviceDetailResult) }
1146-
console.log('更新后的selectedNode.value:', selectedNode.value)
11471151
}
11481152
1149-
// 3. 重新加载可发布版本数据(这样下拉框会自动更新
1153+
// 重新加载可发布版本数据(下拉框会自动更新
11501154
const availableVersionsResult = await loadServiceAvailableVersions(selectedNode.value.name)
11511155
if (availableVersionsResult) {
11521156
currentServiceAvailableVersions.value = availableVersionsResult
11531157
}
11541158
1155-
// 4. 生成合理的黄金指标数值并更新表格
1156-
const generateMetrics = () => {
1157-
return {
1158-
latency: (Math.random() * 50 + 10).toFixed(1), // 10-60ms
1159-
traffic: (Math.random() * 1000 + 100).toFixed(0), // 100-1100 req/s
1160-
errorRatio: (Math.random() * 2).toFixed(1), // 0-2%
1161-
saturation: (Math.random() * 20 + 60).toFixed(0) // 60-80%
1162-
}
1159+
// 重新加载服务指标数据
1160+
const metricsDataResult = await loadServiceMetrics(selectedNode.value.name)
1161+
if (metricsDataResult) {
1162+
currentServiceMetrics.value = metricsDataResult
11631163
}
11641164
1165-
const newMetrics = generateMetrics()
1166-
1167-
// 直接更新当前服务的指标数据
1168-
if (currentServiceMetrics.value) {
1169-
// 添加新版本的指标数据
1170-
const newVersionMetrics = {
1171-
version: selectedVersion.value,
1172-
metrics: [
1173-
{ name: 'latency', value: parseFloat(newMetrics.latency) },
1174-
{ name: 'traffic', value: parseFloat(newMetrics.traffic) },
1175-
{ name: 'errorRatio', value: parseFloat(newMetrics.errorRatio) },
1176-
{ name: 'saturation', value: parseFloat(newMetrics.saturation) }
1177-
]
1178-
}
1179-
1180-
// 检查是否已存在该版本,如果存在则更新,否则添加
1181-
const existingIndex = currentServiceMetrics.value.items.findIndex(item => item.version === selectedVersion.value)
1182-
if (existingIndex >= 0) {
1183-
currentServiceMetrics.value.items[existingIndex] = newVersionMetrics
1184-
} else {
1185-
currentServiceMetrics.value.items.push(newVersionMetrics)
1186-
}
1187-
1188-
// 更新summary数据(使用所有版本的平均值)
1189-
const allVersions = currentServiceMetrics.value.items
1190-
const avgLatency = allVersions.reduce((sum, v) => sum + (v.metrics.find(m => m.name === 'latency')?.value || 0), 0) / allVersions.length
1191-
const avgTraffic = allVersions.reduce((sum, v) => sum + (v.metrics.find(m => m.name === 'traffic')?.value || 0), 0) / allVersions.length
1192-
const avgErrorRatio = allVersions.reduce((sum, v) => sum + (v.metrics.find(m => m.name === 'errorRatio')?.value || 0), 0) / allVersions.length
1193-
const avgSaturation = allVersions.reduce((sum, v) => sum + (v.metrics.find(m => m.name === 'saturation')?.value || 0), 0) / allVersions.length
1194-
1195-
currentServiceMetrics.value.summary.metrics = [
1196-
{ name: 'latency', value: avgLatency },
1197-
{ name: 'traffic', value: avgTraffic },
1198-
{ name: 'errorRatio', value: avgErrorRatio },
1199-
{ name: 'saturation', value: avgSaturation }
1200-
]
1165+
// 重新加载发布计划列表
1166+
const deploymentPlansDataResult = await loadServiceDeploymentPlans(selectedNode.value.name)
1167+
if (deploymentPlansDataResult) {
1168+
currentServiceDeploymentPlans.value = deploymentPlansDataResult
12011169
}
12021170
1203-
// 5. 重新加载服务数据以更新拓扑图
1171+
// 重新加载服务数据以更新拓扑图
12041172
await loadServicesData()
12051173
12061174
ElMessage.success('发布任务创建成功')
@@ -1372,58 +1340,36 @@ const togglePauseResumeForVersion = async (version: any) => {
13721340
13731341
const rollbackVersion = async (version: any) => {
13741342
try {
1375-
// 1. 调用mock数据操作函数,修改底层数据
1376-
rollbackVersionInMock(selectedNode.value?.name || '', version.version)
1343+
// 调用后端API执行回滚操作
1344+
const response = await apiService.rollbackDeployment(version.deployId)
13771345
1378-
// 2. 重新加载服务详情数据(这样饼状图会自动更新)
1346+
console.log('版本回滚成功:', response.data)
1347+
1348+
// 重新加载服务详情数据(饼状图会自动更新)
13791349
if (selectedNode.value) {
13801350
const serviceDetailResult = await loadServiceDetail(selectedNode.value.name)
13811351
if (serviceDetailResult) {
13821352
selectedNode.value = { ...serviceDetailResult, status: getNodeStatus(serviceDetailResult) }
13831353
}
13841354
}
13851355
1386-
// 3. 重新加载可发布版本数据(这样下拉框会自动更新
1356+
// 重新加载可发布版本数据(下拉框会自动更新
13871357
if (selectedNode.value) {
13881358
const availableVersionsResult = await loadServiceAvailableVersions(selectedNode.value.name)
13891359
if (availableVersionsResult) {
13901360
currentServiceAvailableVersions.value = availableVersionsResult
13911361
}
13921362
}
13931363
1394-
// 4. 从指标数据中移除该版本
1395-
if (currentServiceMetrics.value) {
1396-
const versionIndex = currentServiceMetrics.value.items.findIndex(item => item.version === version.version)
1397-
if (versionIndex >= 0) {
1398-
currentServiceMetrics.value.items.splice(versionIndex, 1)
1399-
1400-
// 更新summary数据(使用剩余版本的平均值)
1401-
const remainingVersions = currentServiceMetrics.value.items
1402-
if (remainingVersions.length > 0) {
1403-
const avgLatency = remainingVersions.reduce((sum, v) => sum + (v.metrics.find(m => m.name === 'latency')?.value || 0), 0) / remainingVersions.length
1404-
const avgTraffic = remainingVersions.reduce((sum, v) => sum + (v.metrics.find(m => m.name === 'traffic')?.value || 0), 0) / remainingVersions.length
1405-
const avgErrorRatio = remainingVersions.reduce((sum, v) => sum + (v.metrics.find(m => m.name === 'errorRatio')?.value || 0), 0) / remainingVersions.length
1406-
const avgSaturation = remainingVersions.reduce((sum, v) => sum + (v.metrics.find(m => m.name === 'saturation')?.value || 0), 0) / remainingVersions.length
1407-
1408-
currentServiceMetrics.value.summary.metrics = [
1409-
{ name: 'latency', value: avgLatency },
1410-
{ name: 'traffic', value: avgTraffic },
1411-
{ name: 'errorRatio', value: avgErrorRatio },
1412-
{ name: 'saturation', value: avgSaturation }
1413-
]
1414-
} else {
1415-
// 如果没有剩余版本,清空summary数据
1416-
currentServiceMetrics.value.summary.metrics = [
1417-
{ name: 'latency', value: 0 },
1418-
{ name: 'traffic', value: 0 },
1419-
{ name: 'errorRatio', value: 0 },
1420-
{ name: 'saturation', value: 0 }
1421-
]
1422-
}
1364+
// 重新加载服务指标数据
1365+
if (selectedNode.value) {
1366+
const metricsDataResult = await loadServiceMetrics(selectedNode.value.name)
1367+
if (metricsDataResult) {
1368+
currentServiceMetrics.value = metricsDataResult
14231369
}
14241370
}
14251371
1426-
// 5. 重新加载服务数据以更新拓扑图
1372+
// 重新加载服务数据以更新拓扑图
14271373
await loadServicesData()
14281374
14291375
ElMessage.success('版本回滚成功')

0 commit comments

Comments
 (0)