diff --git a/apps/web/src/api/tasks.ts b/apps/web/src/api/tasks.ts index cb6519cde..536b859ba 100644 --- a/apps/web/src/api/tasks.ts +++ b/apps/web/src/api/tasks.ts @@ -30,3 +30,40 @@ export const retryTask = async (taskId: string): Promise => { const response = await apiClient.post(`/tasks/${taskId}/retry`); return response.data; }; + +/** 创建生成任务请求参数 */ +export interface CreateGenerationTaskRequest { + template_id: string; + asset_ids: string[]; + title_ids: string[]; + voice_ids: string[]; +} + +/** 创建生成任务响应 */ +export interface CreateGenerationTaskResponse { + task_id: string; + status: string; + message: string; +} + +// TODO: 后端生成接口适配扁平化架构后切换为 false +const USE_MOCK = true; + +/** 创建生成任务(一键生成) */ +export const createGenerationTask = async ( + params: CreateGenerationTaskRequest, +): Promise => { + if (USE_MOCK) { + await new Promise((r) => setTimeout(r, 800)); + return { + task_id: `task_${Date.now()}`, + status: 'pending', + message: '生成任务已创建', + }; + } + const response = await apiClient.post( + '/generation/tasks', + params, + ); + return response.data; +}; diff --git a/apps/web/src/pages/generate/GeneratePage.tsx b/apps/web/src/pages/generate/GeneratePage.tsx index 725d1d3b4..beb92de75 100644 --- a/apps/web/src/pages/generate/GeneratePage.tsx +++ b/apps/web/src/pages/generate/GeneratePage.tsx @@ -3,6 +3,7 @@ * 流程:选择模板 → 选择素材 → 选择标题 → 选择配音 → 批量生成 */ import React, { useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import { useQuery, useMutation } from '@tanstack/react-query'; import { Card, @@ -30,11 +31,12 @@ import { getTemplates } from '@/api/templates'; import { getAssetLibraries, getAssets, type AssetItem } from '@/api/assets'; import { getTitles } from '@/api/titles'; import { getVoices } from '@/api/voices'; -import { autoGenerateEditPlan } from '@/api/editPlans'; +import { createGenerationTask } from '@/api/tasks'; const { Title, Text } = Typography; const GeneratePage: React.FC = () => { + const navigate = useNavigate(); const [currentStep, setCurrentStep] = useState(0); const [selectedTemplate, setSelectedTemplate] = useState(''); const [selectedAssets, setSelectedAssets] = useState([]); @@ -81,9 +83,9 @@ const GeneratePage: React.FC = () => { enabled: libraries.length > 0, }); - // 创建生成计划 + // 创建生成任务 const generateMutation = useMutation({ - mutationFn: autoGenerateEditPlan, + mutationFn: createGenerationTask, onSuccess: () => { message.success('生成任务已提交'); setGenerated(true); @@ -242,7 +244,7 @@ const GeneratePage: React.FC = () => { title="生成任务已提交" subTitle="您可以在任务历史中查看生成进度" extra={ - }