From 6ddba9aa037439c21530291802d39d75db36a8e3 Mon Sep 17 00:00:00 2001 From: mac Date: Mon, 27 Jul 2026 15:20:03 +0800 Subject: [PATCH] feat(delivery): restore active MySQL tasks --- frontend/src/api/delivery.ts | 35 ++- frontend/src/views/service/Catalog.vue | 368 +++++++++++++++++++++---- 2 files changed, 343 insertions(+), 60 deletions(-) diff --git a/frontend/src/api/delivery.ts b/frontend/src/api/delivery.ts index b799841..0bbac12 100644 --- a/frontend/src/api/delivery.ts +++ b/frontend/src/api/delivery.ts @@ -16,15 +16,32 @@ export interface CreateMySQLDeliveryPayload { namespace: string instance_name: string mysql_version: string - cpu_milli: number - memory_mi: number - storage_gi: number + topology: string + mysql_port?: number + data_disk: string + cpu_cores: number + memory_gb: number + storage_gb: number + param_template: string + timezone: string + lower_case_table_names: number + character_set: string + collation: string + max_connections: string | number + innodb_redo_log_capacity: string + innodb_flush_log_at_trx_commit: number + sync_binlog: number + innodb_io_capacity: number + long_query_time: number + binlog_expire_logs_seconds: number + max_binlog_size: string } export interface DeliveryTask { id: string business_line_id: number requested_by: number + component: string target_type: string target_id: number namespace: string @@ -45,6 +62,8 @@ export interface TaskEvent { task_id: string from_state: string to_state: string + stage?: string + event_status?: string message: string created_at: string } @@ -66,6 +85,16 @@ export const deliveryApi = { return data.task }, + async listTasks(params: { businessLineId?: number; component?: string; active?: boolean } = {}): Promise { + const search = new URLSearchParams() + if (params.businessLineId) search.set('business_line_id', String(params.businessLineId)) + if (params.component) search.set('component', params.component) + if (params.active) search.set('active', 'true') + const query = search.toString() + const data = await authRequest(`/auth/api/v1/delivery/tasks${query ? `?${query}` : ''}`) + return Array.isArray(data.items) ? data.items : [] + }, + async getTask(taskId: string): Promise<{ task: DeliveryTask; events: TaskEvent[] }> { const data = await authRequest(`/auth/api/v1/delivery/tasks/${encodeURIComponent(taskId)}`) return { diff --git a/frontend/src/views/service/Catalog.vue b/frontend/src/views/service/Catalog.vue index f0574b4..71f446b 100644 --- a/frontend/src/views/service/Catalog.vue +++ b/frontend/src/views/service/Catalog.vue @@ -55,10 +55,12 @@
{{ deliveryStateText }} + 新建任务
+
正在检查未完成交付任务...
-
安装路径
+
数据盘
@@ -170,11 +185,11 @@
@@ -229,6 +244,7 @@

{{ deploymentId || '创建任务后生成 task_id' }} · {{ activeService.runner }} · {{ activeService.template }}

+ 刷新状态 取消任务
@@ -316,11 +332,11 @@