Compare commits

..

2 Commits

Author SHA1 Message Date
xiaoxia 26d026a366 Merge branch 'develop' into refactor/use-edit-plan-clips-split
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 36s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m14s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 52s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m16s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m59s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 44s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 47s
AI Code Review / AI Code Review (pull_request) Successful in 32s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 53s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m9s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m17s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m56s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 16s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 8m2s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m8s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 21s
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1221h6m18s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1221h27m5s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1221h27m7s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1221h27m9s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1221h30m43s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1223h33m42s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1223h39m35s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1223h39m39s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1226h34m20s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1226h34m22s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1226h34m24s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1224h12m23s
2026-07-27 12:34:22 +08:00
xiaoxia 24db76dd04 refactor(editing-planner): 拆分 useEditPlanClips Hook,按职责拆为列表 + CRUD
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 26s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 55s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m8s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m19s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 34s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m14s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m28s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m37s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 53s
AI Code Review / AI Code Review (pull_request) Successful in 2m49s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 6m39s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 16m6s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 41s
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1230h39m9s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1230h55m0s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1230h55m4s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1230h55m6s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 1231h12m36s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1231h12m59s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1231h13m2s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 1231h13m9s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1231h38m7s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1231h38m9s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1231h38m11s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1231h27m46s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1231h45m41s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1231h45m47s
主文件 233→95 行(-59%),拆分为:
- useEditPlanClipList: 列表查询 + 选中状态
- useEditPlanClipMutations: 创建/更新/删除/批量删除/重排序/素材导入
- index: 组合入口 + 本地撤销重做

导入路径保持向后兼容
2026-07-27 07:29:12 +08:00
3 changed files with 45 additions and 66 deletions
@@ -1,6 +1,14 @@
/**
* 任务相关类型定义
* 任务相关 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"
@@ -77,3 +85,39 @@ export interface CreateGenerationTaskResponse {
result_count: number
error_message: string
}
/* ──────────── API 函数 ──────────── */
/** 创建生成任务(智能剪辑) */
export const createGenerationTask = async (
params: CreateGenerationTaskRequest,
): Promise<CreateGenerationTaskResponse> => {
const { data } = await apiClient.post<CreateGenerationTaskResponse>("/generation/tasks", params)
return data
}
/** 获取任务列表(支持分页和筛选) */
export const getTasks = async (params?: TaskListParams): Promise<TaskListResponse> => {
const { data } = await apiClient.get<TaskListResponse>("/tasks", {
params,
})
return data
}
/** 获取当前用户的所有任务(兼容旧接口,跨 project) */
export const getUserTasks = async (): Promise<TaskItem[]> => {
const { data } = await apiClient.get("/tasks")
return data.items || data || []
}
/** 获取单个任务详情(含 error_info) */
export const getTask = async (taskId: string): Promise<TaskItem> => {
const { data } = await apiClient.get(`/tasks/${taskId}`)
return data
}
/** 重试失败的任务 */
export const retryTask = async (taskId: string): Promise<TaskItem> => {
const { data } = await apiClient.post(`/tasks/${taskId}/retry`)
return data
}
-19
View File
@@ -1,19 +0,0 @@
/**
* 任务相关 API — 目录化入口
* 保持与原 tasks.ts 相同导出,向后兼容
*/
// 类型
export type {
TaskStatus,
TaskType,
TaskErrorInfo,
TaskItem,
TaskListParams,
TaskListResponse,
CreateGenerationTaskRequest,
CreateGenerationTaskResponse,
} from "./types"
// API 函数
export { createGenerationTask, getTasks, getUserTasks, getTask, retryTask } from "./tasks"
-46
View File
@@ -1,46 +0,0 @@
/**
* 任务相关 API 函数
* 对接后端任务中心 API
*/
import apiClient from "../client"
import type {
CreateGenerationTaskRequest,
CreateGenerationTaskResponse,
TaskItem,
TaskListParams,
TaskListResponse,
} from "./types"
/** 创建生成任务(智能剪辑) */
export const createGenerationTask = async (
params: CreateGenerationTaskRequest,
): Promise<CreateGenerationTaskResponse> => {
const { data } = await apiClient.post<CreateGenerationTaskResponse>("/generation/tasks", params)
return data
}
/** 获取任务列表(支持分页和筛选) */
export const getTasks = async (params?: TaskListParams): Promise<TaskListResponse> => {
const { data } = await apiClient.get<TaskListResponse>("/tasks", {
params,
})
return data
}
/** 获取当前用户的所有任务(兼容旧接口,跨 project) */
export const getUserTasks = async (): Promise<TaskItem[]> => {
const { data } = await apiClient.get("/tasks")
return data.items || data || []
}
/** 获取单个任务详情(含 error_info) */
export const getTask = async (taskId: string): Promise<TaskItem> => {
const { data } = await apiClient.get(`/tasks/${taskId}`)
return data
}
/** 重试失败的任务 */
export const retryTask = async (taskId: string): Promise<TaskItem> => {
const { data } = await apiClient.post(`/tasks/${taskId}/retry`)
return data
}