import { TaskObject, SketchItem, VideoItem, MOCK_SKETCH_URLS, MOCK_SKETCH_SCRIPT, MOCK_VIDEO_URLS, MOCK_SKETCH_COUNT } from './constants'; // 模拟接口请求 获取任务详情 export const getTaskDetail = async (taskId: string): Promise => { // const response = await fetch(`/api/task/${taskId}`); // const data = await response.json(); // mock data const data: TaskObject = { projectId: 'projectId-123', projectName: "Project 1", taskId: taskId, taskName: "Task 1", taskDescription: "Task 1 Description", taskStatus: "1", // '1' 绘制分镜、'2' 绘制角色、'3' 生成分镜视频、'4' 视频后期制作、'5' 最终成品 taskProgress: 0, mode: 'auto', // 全自动模式、人工干预模式 resolution: '1080p', // 1080p、2160p }; return data; }; // 模拟接口请求 每次获取一个分镜草图 轮询获取 export const getTaskSketch = async ( taskId: string, onProgress: (sketch: SketchItem, index: number) => void ): Promise => { // 模拟分批获取分镜草图 for (let i = 0; i < MOCK_SKETCH_COUNT; i++) { await new Promise(resolve => setTimeout(resolve, 2000)); // 模拟2秒延迟 const newSketch: SketchItem = { id: `sketch-${i}`, url: MOCK_SKETCH_URLS[i % MOCK_SKETCH_URLS.length], script: MOCK_SKETCH_SCRIPT[i % MOCK_SKETCH_SCRIPT.length], status: 'done' }; onProgress(newSketch, i); } }; // 模拟接口请求 每次获取一个角色 轮询获取 export const getTaskRole = async (taskId: string): Promise => { await new Promise(resolve => setTimeout(resolve, 2000)); // 模拟2秒延迟 }; // 模拟接口请求 获取背景音 export const getTaskBackgroundAudio = async (taskId: string): Promise => { await new Promise(resolve => setTimeout(resolve, 2000)); // 模拟2秒延迟 }; // 模拟接口请求 获取最终成品 export const getTaskFinalProduct = async (taskId: string): Promise => { await new Promise(resolve => setTimeout(resolve, 2000)); // 模拟2秒延迟 }; // 模拟接口请求 每次获取一个分镜视频 轮询获取 export const getTaskVideo = async ( taskId: string, sketchCount: number, onProgress: (video: VideoItem, index: number) => void ): Promise => { // 模拟分批获取分镜视频 for (let i = 0; i < sketchCount; i++) { await new Promise(resolve => setTimeout(resolve, 5000)); // 模拟5秒延迟 const newVideo: VideoItem = { id: `video-${i}`, url: MOCK_VIDEO_URLS[i % MOCK_VIDEO_URLS.length], script: MOCK_SKETCH_SCRIPT[i % MOCK_SKETCH_SCRIPT.length], status: 'done' }; onProgress(newVideo, i); } };