From f31408baee978830165d108e5fc06a0e95b77eba Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sun, 26 Jul 2026 17:12:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor(api):=20=E6=8B=86=E5=88=86=20tasks.ts?= =?UTF-8?q?=20=E4=B8=BA=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84=EF=BC=88types/?= =?UTF-8?q?tasks/index=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 123 行的 tasks.ts 拆分为目录化结构: - types.ts: 类型定义(TaskItem/TaskStatus/创建请求响应等) - tasks.ts: 全部 5 个 API 函数 - index.ts: 统一入口 re-export,保持 @/api/tasks 路径向后兼容 --- apps/web/src/api/tasks/index.ts | 19 ++++++++ apps/web/src/api/tasks/tasks.ts | 46 +++++++++++++++++++ apps/web/src/api/{tasks.ts => tasks/types.ts} | 46 +------------------ 3 files changed, 66 insertions(+), 45 deletions(-) create mode 100644 apps/web/src/api/tasks/index.ts create mode 100644 apps/web/src/api/tasks/tasks.ts rename apps/web/src/api/{tasks.ts => tasks/types.ts} (50%) diff --git a/apps/web/src/api/tasks/index.ts b/apps/web/src/api/tasks/index.ts new file mode 100644 index 000000000..e4ec234e4 --- /dev/null +++ b/apps/web/src/api/tasks/index.ts @@ -0,0 +1,19 @@ +/** + * 任务相关 API — 目录化入口 + * 保持与原 tasks.ts 相同导出,向后兼容 + */ + +// 类型 +export type { + TaskStatus, + TaskType, + TaskErrorInfo, + TaskItem, + TaskListParams, + TaskListResponse, + CreateGenerationTaskRequest, + CreateGenerationTaskResponse, +} from "./types" + +// API 函数 +export { createGenerationTask, getTasks, getUserTasks, getTask, retryTask } from "./tasks" diff --git a/apps/web/src/api/tasks/tasks.ts b/apps/web/src/api/tasks/tasks.ts new file mode 100644 index 000000000..6b0ad6cc3 --- /dev/null +++ b/apps/web/src/api/tasks/tasks.ts @@ -0,0 +1,46 @@ +/** + * 任务相关 API 函数 + * 对接后端任务中心 API + */ +import apiClient from "../client" +import type { + CreateGenerationTaskRequest, + CreateGenerationTaskResponse, + TaskItem, + TaskListParams, + TaskListResponse, +} from "./types" + +/** 创建生成任务(智能剪辑) */ +export const createGenerationTask = async ( + params: CreateGenerationTaskRequest, +): Promise => { + const { data } = await apiClient.post("/generation/tasks", params) + return data +} + +/** 获取任务列表(支持分页和筛选) */ +export const getTasks = async (params?: TaskListParams): Promise => { + const { data } = await apiClient.get("/tasks", { + params, + }) + return data +} + +/** 获取当前用户的所有任务(兼容旧接口,跨 project) */ +export const getUserTasks = async (): Promise => { + const { data } = await apiClient.get("/tasks") + return data.items || data || [] +} + +/** 获取单个任务详情(含 error_info) */ +export const getTask = async (taskId: string): Promise => { + const { data } = await apiClient.get(`/tasks/${taskId}`) + return data +} + +/** 重试失败的任务 */ +export const retryTask = async (taskId: string): Promise => { + const { data } = await apiClient.post(`/tasks/${taskId}/retry`) + return data +} diff --git a/apps/web/src/api/tasks.ts b/apps/web/src/api/tasks/types.ts similarity index 50% rename from apps/web/src/api/tasks.ts rename to apps/web/src/api/tasks/types.ts index f3b14a8c0..6be490f96 100644 --- a/apps/web/src/api/tasks.ts +++ b/apps/web/src/api/tasks/types.ts @@ -1,14 +1,6 @@ /** - * 任务相关 API - * 对接后端任务中心 API: - * - POST /api/v1/generation/tasks — 创建生成任务 - * - GET /api/v1/tasks — 用户级任务列表(支持分页/筛选) - * - GET /api/v1/tasks/{task_id} — 任务详情(含 error_info) - * - POST /api/v1/tasks/{task_id}/retry — 重试失败任务 + * 任务相关类型定义 */ -import apiClient from "./client" - -/* ──────────── 类型定义 ──────────── */ /** 任务状态 */ export type TaskStatus = "pending" | "waiting" | "running" | "completed" | "failed" | "cancelled" @@ -85,39 +77,3 @@ export interface CreateGenerationTaskResponse { result_count: number error_message: string } - -/* ──────────── API 函数 ──────────── */ - -/** 创建生成任务(智能剪辑) */ -export const createGenerationTask = async ( - params: CreateGenerationTaskRequest, -): Promise => { - const { data } = await apiClient.post("/generation/tasks", params) - return data -} - -/** 获取任务列表(支持分页和筛选) */ -export const getTasks = async (params?: TaskListParams): Promise => { - const { data } = await apiClient.get("/tasks", { - params, - }) - return data -} - -/** 获取当前用户的所有任务(兼容旧接口,跨 project) */ -export const getUserTasks = async (): Promise => { - const { data } = await apiClient.get("/tasks") - return data.items || data || [] -} - -/** 获取单个任务详情(含 error_info) */ -export const getTask = async (taskId: string): Promise => { - const { data } = await apiClient.get(`/tasks/${taskId}`) - return data -} - -/** 重试失败的任务 */ -export const retryTask = async (taskId: string): Promise => { - const { data } = await apiClient.post(`/tasks/${taskId}/retry`) - return data -} -- 2.54.0