diff --git a/apps/web/src/api/tasks.ts b/apps/web/src/api/tasks.ts old mode 100644 new mode 100755 index 4e80832f5..5853236ca --- a/apps/web/src/api/tasks.ts +++ b/apps/web/src/api/tasks.ts @@ -35,7 +35,7 @@ export interface CreateGenerationTaskRequest { } /** 创建生成任务响应(对齐后端 GenerationTaskResponse) */ -export interface CreateGenerationTaskResponse { +export interface GenerationTaskItem { id: string; project_id: string; asset_library_id: string; @@ -51,13 +51,22 @@ export interface CreateGenerationTaskResponse { error_message: string; } +/** 批量创建响应(对齐后端 BatchGenerationTaskResponse) */ +export interface BatchGenerationTaskResponse { + items: GenerationTaskItem[]; + total: number; +} + +/** @deprecated 请使用 GenerationTaskItem */ +export type CreateGenerationTaskResponse = GenerationTaskItem; + /* ──────────── API 函数 ──────────── */ /** 创建生成任务(一键生成) */ export const createGenerationTask = async ( params: CreateGenerationTaskRequest, -): Promise => { - const { data } = await apiClient.post( +): Promise => { + const { data } = await apiClient.post( "/generation/tasks", params, ); diff --git a/apps/web/src/pages/editing-planner/EditingPlanner.tsx b/apps/web/src/pages/editing-planner/EditingPlanner.tsx index bbe851c79..cdce1e9f3 100755 --- a/apps/web/src/pages/editing-planner/EditingPlanner.tsx +++ b/apps/web/src/pages/editing-planner/EditingPlanner.tsx @@ -506,12 +506,17 @@ const EditingPlanner: React.FC = () => { voice_ids: voiceIds, }); /* - * 后端 Tasks API 使用带前缀的 ID(如 generation:xxx), - * 但 createGenerationTask 返回的是裸 UUID,需补上前缀。 + * createGenerationTask 返回批量响应 {items, total}, + * 取第一个任务的 ID。后端返回裸 UUID, + * 但任务中心 API(getTask)使用带前缀的 ID(generation:xxx), + * 需补前缀后再查询。 */ - const taskId = res.id.includes(":") - ? res.id - : `generation:${res.id}`; + const firstTask = res.items?.[0]; + if (!firstTask) { + throw new Error("创建生成任务失败:无返回任务"); + } + const rawId = firstTask.id; + const taskId = rawId.includes(":") ? rawId : `generation:${rawId}`; /* 创建接口返回的是精简响应,需查询完整 TaskItem 用于轮询 */ const task = await getTask(taskId); setGenTask(task);