f8cb32db56
Bug A: GeneratePage 引用已删除的 editPlans API(/edit-plans/auto-generate 不存在)
- 新增 createGenerationTask 到 tasks.ts(USE_MOCK 模式,待后端适配扁平化架构后切换)
- GeneratePage 改用 createGenerationTask 替代 autoGenerateEditPlan
- 移除对 @/api/editPlans 的引用
附带修复: window.location.href → useNavigate('/history')
70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
/**
|
|
* 任务相关 API
|
|
* Phase 1 重构:去掉 projectId,任务直接归属用户
|
|
*/
|
|
import apiClient from './client';
|
|
|
|
/** 任务条目 */
|
|
export interface TaskItem {
|
|
id: string;
|
|
task_type: 'ingest' | 'generation' | string;
|
|
status: string;
|
|
progress: number;
|
|
current_step: string;
|
|
error_message: string;
|
|
user_message: string;
|
|
retryable: boolean;
|
|
source_id: string;
|
|
created_at?: string | null;
|
|
updated_at?: string | null;
|
|
}
|
|
|
|
/** 获取当前用户的所有任务(生成记录) */
|
|
export const getUserTasks = async (): Promise<TaskItem[]> => {
|
|
const response = await apiClient.get('/tasks');
|
|
return response.data.items || [];
|
|
};
|
|
|
|
/** 重试失败的任务 */
|
|
export const retryTask = async (taskId: string): Promise<TaskItem> => {
|
|
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<CreateGenerationTaskResponse> => {
|
|
if (USE_MOCK) {
|
|
await new Promise((r) => setTimeout(r, 800));
|
|
return {
|
|
task_id: `task_${Date.now()}`,
|
|
status: 'pending',
|
|
message: '生成任务已创建',
|
|
};
|
|
}
|
|
const response = await apiClient.post<CreateGenerationTaskResponse>(
|
|
'/generation/tasks',
|
|
params,
|
|
);
|
|
return response.data;
|
|
};
|