diff --git a/api/request.ts b/api/request.ts index 8fd0317..fff7482 100644 --- a/api/request.ts +++ b/api/request.ts @@ -3,7 +3,7 @@ import { BASE_URL } from './constants' // 创建 axios 实例 const request: AxiosInstance = axios.create({ baseURL: BASE_URL, // 设置基础URL - timeout: 10000, // 请求超时时间 + timeout: 300000, // 请求超时时间 headers: { 'Content-Type': 'application/json', }, diff --git a/api/video_flow.ts b/api/video_flow.ts index ddde4e8..8f6c9f3 100644 --- a/api/video_flow.ts +++ b/api/video_flow.ts @@ -37,7 +37,7 @@ export type ConvertScenePromptResponse = ApiResponse; export const convertScenePrompt = async ( request: ConvertScenePromptRequest ): Promise => { - return post('/video_flow/convert-scene-prompt', request); + return post('/video_flow/convert-scene-prompts', request); }; /** diff --git a/components/pages/create-to-video.tsx b/components/pages/create-to-video.tsx index 2e3386f..45e53af 100644 --- a/components/pages/create-to-video.tsx +++ b/components/pages/create-to-video.tsx @@ -20,6 +20,7 @@ import { ProjectTypeEnum, ModeEnum, ResolutionEnum } from "@/api/enums"; import { createScriptProject, CreateScriptProjectRequest } from "@/api/script_project"; import { createScriptEpisode, CreateScriptEpisodeRequest } from "@/api/script_episode"; import { getUploadTokenWithDomain, uploadToQiniu } from "@/api/common"; +import { convertScriptToScene, convertVideoToScene } from "@/api/video_flow"; const JoyrideNoSSR = dynamic(() => import('react-joyride'), { ssr: false, @@ -104,38 +105,67 @@ export function CreateToVideo2() { const handleCreateVideo = async () => { if (videoUrl || inputText) { try { - // 确定项目类型 - const projectType = activeTab === 'script' ? ProjectTypeEnum.SCRIPT_TO_VIDEO : ProjectTypeEnum.VIDEO_TO_VIDEO; + let convertResponse; - // 构建项目数据并调用API - const projectData: CreateScriptProjectRequest = { - project_type: projectType, - mode: selectedMode, - resolution: selectedResolution - }; + // 根据选中的选项卡调用相应的API + if (activeTab === 'script') { + // 剧本模式:调用convertScriptToScene (第43-56行) + if (!inputText.trim()) { + alert('请输入剧本内容'); + return; + } + convertResponse = await convertScriptToScene(inputText); + } else { + // 视频模式:调用convertVideoToScene (第56-69行) + if (!videoUrl) { + alert('请先上传视频'); + return; + } + convertResponse = await convertVideoToScene(videoUrl); + } - const projectResponse = await createScriptProject(projectData); - - if (projectResponse.code === 0 && projectResponse.data.id) { - const projectId = projectResponse.data.id; + // 检查转换结果 + if (convertResponse.code === 0) { + console.log('转换成功:', convertResponse.data); + console.log('任务ID:', convertResponse.data.task_id); + console.log('预估时间:', convertResponse.data.estimated_time, '秒'); - // 创建剧集数据 - const episodeData: CreateScriptEpisodeRequest = { + // 确定项目类型 + const projectType = activeTab === 'script' ? ProjectTypeEnum.SCRIPT_TO_VIDEO : ProjectTypeEnum.VIDEO_TO_VIDEO; + + // 构建项目数据并调用API + const projectData: CreateScriptProjectRequest = { + project_type: projectType, + mode: selectedMode, + resolution: selectedResolution }; - // 调用创建剧集API - const episodeResponse = await createScriptEpisode(episodeData); + const projectResponse = await createScriptProject(projectData); - if (episodeResponse.code === 0) { - // 成功创建后跳转到work-flow页面 - router.push('/create/work-flow'); + if (projectResponse.code === 0 && projectResponse.data.id) { + const projectId = projectResponse.data.id; + + // 创建剧集数据 + const episodeData: CreateScriptEpisodeRequest = { + }; + + // 调用创建剧集API + const episodeResponse = await createScriptEpisode(episodeData); + + if (episodeResponse.code === 0) { + // 成功创建后跳转到work-flow页面 + router.push('/create/work-flow'); + } else { + alert(`创建剧集失败: ${episodeResponse.msg}`); + } } else { - alert(`创建剧集失败: ${episodeResponse.msg}`); + alert(`创建项目失败: ${projectResponse.msg}`); } } else { - alert(`创建项目失败: ${projectResponse.msg}`); + alert(`转换失败: ${convertResponse.msg}`); } } catch (error) { + console.error('创建过程出错:', error); alert("创建项目时发生错误,请稍后重试"); } }