From 21fc3f3b452fc899e6e46356479b1ea180f322db Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 20 Jul 2026 15:34:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(phase2):=20=E5=89=AA=E8=BE=91=E8=AE=A1?= =?UTF-8?q?=E5=88=92API=E8=B7=AF=E5=BE=84=E4=BB=8E/edit-plans=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E5=88=B0/template-editors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - api/editPlans.ts: 22个API端点路径全部从/edit-plans/*改为/template-editors/* - GeneratePage.tsx: 直接调用apiClient的generation-status改为使用getGenerationStatus函数,删除未用的apiClient import --- apps/web/src/api/editPlans.ts | 54 ++++++++++++-------- apps/web/src/pages/generate/GeneratePage.tsx | 5 +- 2 files changed, 34 insertions(+), 25 deletions(-) mode change 100644 => 100755 apps/web/src/api/editPlans.ts diff --git a/apps/web/src/api/editPlans.ts b/apps/web/src/api/editPlans.ts old mode 100644 new mode 100755 index f47760720..36fde7942 --- a/apps/web/src/api/editPlans.ts +++ b/apps/web/src/api/editPlans.ts @@ -189,6 +189,7 @@ export interface ClipStatusItem { asset_id?: string text_content?: string duration?: number + error_message?: string } /** 生成状态轮询响应 */ @@ -197,6 +198,9 @@ export interface GenerationStatusResponse { plan_status: EditPlanStatus generation_task_id?: string clips: ClipStatusItem[] + error_message?: string + error?: string + message?: string } /** 生成视频详情(对应后端 GeneratedVideoResponse) */ @@ -341,7 +345,7 @@ export interface EditPlanListResponse { /** 获取模板草稿列表(支持分页和筛选) */ export async function getEditPlans(params?: EditPlanListParams): Promise { - const response = await apiClient.get("/edit-plans", { + const response = await apiClient.get("/template-editors", { params, }) return response.data @@ -349,13 +353,13 @@ export async function getEditPlans(params?: EditPlanListParams): Promise { - const response = await apiClient.get(`/edit-plans/${planId}`) + const response = await apiClient.get(`/template-editors/${planId}`) return response.data } /** 创建模板草稿 */ export async function createEditPlan(data: CreateEditPlanRequest): Promise { - const response = await apiClient.post("/edit-plans", data) + const response = await apiClient.post("/template-editors", data) return response.data } @@ -364,24 +368,24 @@ export async function updateEditPlan( planId: string, data: UpdateEditPlanRequest, ): Promise { - const response = await apiClient.put(`/edit-plans/${planId}`, data) + const response = await apiClient.put(`/template-editors/${planId}`, data) return response.data } /** 删除模板草稿 */ export async function deleteEditPlan(planId: string): Promise { - await apiClient.delete(`/edit-plans/${planId}`) + await apiClient.delete(`/template-editors/${planId}`) } /** 触发生成 */ export async function generateEditPlan(planId: string): Promise { - const response = await apiClient.post(`/edit-plans/${planId}/generate`) + const response = await apiClient.post(`/template-editors/${planId}/generate`) return response.data } /** 获取生成状态(轮询用) */ export async function getGenerationStatus(planId: string): Promise { - const response = await apiClient.get(`/edit-plans/${planId}/generation-status`) + const response = await apiClient.get(`/template-editors/${planId}/generation-status`) return response.data } @@ -390,7 +394,7 @@ export async function aiRecommendClips( planId: string, data: AIRecommendRequest, ): Promise { - const response = await apiClient.post(`/edit-plans/${planId}/ai-recommend`, data) + const response = await apiClient.post(`/template-editors/${planId}/ai-recommend`, data) return response.data } @@ -399,13 +403,13 @@ export async function generateCover( planId: string, data: GenerateCoverRequest, ): Promise { - const response = await apiClient.post(`/edit-plans/${planId}/generate-cover`, data) + const response = await apiClient.post(`/template-editors/${planId}/generate-cover`, data) return response.data } /** 获取模板草稿关联的生成记录 */ export async function getEditPlanGenerations(planId: string): Promise { - const response = await apiClient.get(`/edit-plans/${planId}/generations`) + const response = await apiClient.get(`/template-editors/${planId}/generations`) return response.data.items || [] } @@ -417,7 +421,7 @@ export async function getGenerationTaskResults(taskId: string): Promise { - await apiClient.post(`/edit-plans/${planId}/cancel`) + await apiClient.post(`/template-editors/${planId}/cancel`) } /* ============================================================ @@ -492,15 +496,18 @@ export async function getEditPlanClips( planId: string, params?: EditPlanClipListParams, ): Promise { - const response = await apiClient.get(`/edit-plans/${planId}/clips`, { - params, - }) + const response = await apiClient.get( + `/template-editors/${planId}/clips`, + { + params, + }, + ) return response.data } /** 获取单个片段详情 */ export async function getEditPlanClip(planId: string, clipId: string): Promise { - const response = await apiClient.get(`/edit-plans/${planId}/clips/${clipId}`) + const response = await apiClient.get(`/template-editors/${planId}/clips/${clipId}`) return response.data } @@ -509,7 +516,7 @@ export async function createEditPlanClip( planId: string, data: CreateEditPlanClipRequest, ): Promise { - const response = await apiClient.post(`/edit-plans/${planId}/clips`, data) + const response = await apiClient.post(`/template-editors/${planId}/clips`, data) return response.data } @@ -519,13 +526,16 @@ export async function updateEditPlanClip( clipId: string, data: UpdateEditPlanClipRequest, ): Promise { - const response = await apiClient.put(`/edit-plans/${planId}/clips/${clipId}`, data) + const response = await apiClient.put( + `/template-editors/${planId}/clips/${clipId}`, + data, + ) return response.data } /** 删除片段 */ export async function deleteEditPlanClip(planId: string, clipId: string): Promise { - await apiClient.delete(`/edit-plans/${planId}/clips/${clipId}`) + await apiClient.delete(`/template-editors/${planId}/clips/${clipId}`) } /* ============================================================ @@ -566,7 +576,7 @@ export async function reorderEditPlanClips( items: ClipReorderItem[], ): Promise { const response = await apiClient.post( - `/edit-plans/${planId}/clips/reorder`, + `/template-editors/${planId}/clips/reorder`, { items }, ) return response.data @@ -578,7 +588,7 @@ export async function batchDeleteEditPlanClips( clipIds: string[], ): Promise { const response = await apiClient.post( - `/edit-plans/${planId}/clips/batch-delete`, + `/template-editors/${planId}/clips/batch-delete`, { clip_ids: clipIds }, ) return response.data @@ -591,7 +601,7 @@ export async function createClipsFromAssets( clipType = "main", ): Promise { const response = await apiClient.post( - `/edit-plans/${planId}/clips/from-assets`, + `/template-editors/${planId}/clips/from-assets`, { asset_ids: assetIds, clip_type: clipType }, ) return response.data @@ -609,7 +619,7 @@ export interface CopyEditPlanRequest { /** 复制模板草稿(含所有片段配置) */ export async function copyEditPlan(planId: string, data?: CopyEditPlanRequest): Promise { - const response = await apiClient.post(`/edit-plans/${planId}/copy`, data || {}) + const response = await apiClient.post(`/template-editors/${planId}/copy`, data || {}) return response.data } diff --git a/apps/web/src/pages/generate/GeneratePage.tsx b/apps/web/src/pages/generate/GeneratePage.tsx index 176141dae..d51d58a88 100644 --- a/apps/web/src/pages/generate/GeneratePage.tsx +++ b/apps/web/src/pages/generate/GeneratePage.tsx @@ -29,12 +29,12 @@ import { generateEditPlan, updateEditPlan, getGenerationTaskResults, + getGenerationStatus, } from "@/api/editPlans" import type { GeneratedVideo, EditPlanConfig, TitleConfig } from "@/api/editPlans" import type { CoverConfig } from "../editing-planner/types" import { getEditingTemplates } from "@/api/editingPlanner" import { getTitles } from "@/api/titles" -import apiClient from "@/api/client" import { fetchPresetVoices } from "@/api/voices" import type { PresetVoiceItem } from "@/api/voices" import { formatDuration } from "@/api/voiceClone" @@ -1028,8 +1028,7 @@ const GeneratePage: React.FC = () => { const poll = async () => { try { - const status = await apiClient.get(`/edit-plans/${plan.id}/generation-status`) - const data = status.data + const data = await getGenerationStatus(plan.id) if (data.plan_status === "completed") { setProgress(100) -- 2.54.0