fix(frontend): 深度健康检查 - 清理死代码和修复合并冲突
Tests / test (pull_request) Failing after 0s
Tests / lint (pull_request) Failing after 0s
CI/CD Pipeline / Validate Code Quality And Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
Deploy / Deploy Staging (push) Has been cancelled
Deploy / Build Production Runtime Images (push) Has been cancelled
Deploy / Deploy Production (push) Has been cancelled
Deploy / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled

- 删除未使用的API模块: projects.ts, generation.ts, subscription.ts, projectTitles.ts
- 删除未使用的业务组件: InviteMemberModal.tsx, MemberList.tsx, PermissionMatrix.tsx
- 删除未引用的布局组件: Sidebar.tsx
- 删除未引用的状态管理: uiStore.ts
- 修复 business.css 中残留的git合并冲突标记
- 移除 business.css 中重复的注释行

所有删除的文件均经过引用检查,确认无任何页面/组件/hook引用
This commit is contained in:
CI Test
2026-06-28 10:34:00 +08:00
parent 9c287145a1
commit 5c46fe648d
10 changed files with 0 additions and 654 deletions
-77
View File
@@ -1,77 +0,0 @@
/**
* 视频生成 API
*/
import apiClient from "./client";
import type { EditingMode } from "./editPlans";
export interface GenerationTaskItem {
id: string;
project_id: string;
asset_library_id: string;
strategy_id?: string | null;
voice_library_id?: string | null;
edit_plan_id?: string | null;
editing_mode?: EditingMode;
status: "pending" | "running" | "completed" | "failed" | "cancelled";
progress: number;
result_count: number;
error_message?: string | null;
created_at?: string;
updated_at?: string;
}
export interface GeneratedVideoItem {
id: string;
project_id: string;
generation_task_id: string;
name: string;
file_url: string;
file_size: number;
duration: number;
thumbnail_url?: string | null;
width: number;
height: number;
fps: number;
status?: string;
review_status?: "pending_review" | "approved" | "rejected";
generation_params?: Record<string, unknown>;
editing_mode?: EditingMode;
}
export const createGenerationTask = async (data: {
project_id: string;
asset_library_id: string;
strategy_id?: string;
voice_library_id?: string;
edit_plan_id?: string;
editing_mode?: EditingMode;
created_by_user_id?: string;
}): Promise<GenerationTaskItem> => {
const response = await apiClient.post("/generation/tasks", data);
return response.data;
};
export const getGenerationTask = async (taskId: string): Promise<GenerationTaskItem> => {
const response = await apiClient.get(`/generation/tasks/${taskId}`);
return response.data;
};
export const getGenerationResults = async (taskId: string): Promise<GeneratedVideoItem[]> => {
const response = await apiClient.get(`/generation/tasks/${taskId}/results`);
return response.data.items;
};
export const getGeneratedVideos = async (projectId: string): Promise<GeneratedVideoItem[]> => {
const response = await apiClient.get("/generated-videos", { params: { project_id: projectId } });
return response.data.items;
};
export const updateGeneratedVideoReviewStatus = async (videoId: string, reviewStatus: "pending_review" | "approved" | "rejected"): Promise<GeneratedVideoItem> => {
const response = await apiClient.patch(`/generated-videos/${videoId}/review`, { review_status: reviewStatus });
return response.data;
};
export const getGeneratedVideoDownloadUrl = async (videoId: string): Promise<string> => {
const response = await apiClient.get(`/generated-videos/${videoId}/download-url`);
return response.data.download_url;
};
-28
View File
@@ -1,28 +0,0 @@
import apiClient from './client';
export interface ProjectTitleItem {
id: string;
project_id: string;
text: string;
category: 'default' | 'marketing' | 'tutorial' | 'story' | 'promo';
favorite: boolean;
usage_count: number;
is_active: boolean;
created_at: string;
updated_at: string;
}
export const getProjectTitles = async (projectId: string, activeOnly = false): Promise<ProjectTitleItem[]> => {
const response = await apiClient.get(`/projects/${projectId}/titles`, { params: { active_only: activeOnly } });
return response.data.items;
};
export const createProjectTitle = async (projectId: string, data: { text: string; category?: ProjectTitleItem['category']; favorite?: boolean }): Promise<ProjectTitleItem> => {
const response = await apiClient.post(`/projects/${projectId}/titles`, data);
return response.data;
};
export const updateProjectTitle = async (titleId: string, data: { text?: string; category?: ProjectTitleItem['category']; favorite?: boolean; is_active?: boolean }): Promise<ProjectTitleItem> => {
const response = await apiClient.patch(`/project-titles/${titleId}`, data);
return response.data;
};
-27
View File
@@ -1,27 +0,0 @@
import apiClient from './client';
export interface ProjectItem {
id: string;
name: string;
description: string;
}
export interface CreateProjectRequest {
name: string;
description?: string;
}
export const getProject = async (projectId: string): Promise<ProjectItem> => {
const response = await apiClient.get(`/projects/${projectId}`);
return response.data;
};
export const getProjects = async (): Promise<ProjectItem[]> => {
const response = await apiClient.get('/projects');
return response.data.items;
};
export const createProject = async (data: CreateProjectRequest): Promise<ProjectItem> => {
const response = await apiClient.post('/projects', data);
return response.data;
};
-64
View File
@@ -1,64 +0,0 @@
/**
* 订阅相关 API
*/
import apiClient from './client';
// 类型定义
export interface SubscriptionPlan {
name: 'free' | 'pro' | 'enterprise';
display_name: string;
price: number;
currency: string;
max_projects: number;
max_storage_gb: number;
features: string[];
}
export interface QuotaStatus {
projects: {
used: number;
limit: number;
status: 'normal' | 'warning' | 'critical' | 'exceeded';
};
storage: {
used_gb: number;
limit_gb: number;
status: 'normal' | 'warning' | 'critical' | 'exceeded';
};
}
// 获取所有订阅计划
export const getPlans = async (): Promise<SubscriptionPlan[]> => {
const response = await apiClient.get('/subscriptions/plans');
return response.data;
};
// 获取当前订阅
export const getCurrentSubscription = async (
): Promise<SubscriptionPlan> => {
const response = await apiClient.get('/subscription');
return response.data;
};
// 升级订阅
export const upgradeSubscription = async (
plan: 'pro' | 'enterprise'
): Promise<{ message: string }> => {
const response = await apiClient.post('/subscription/upgrade', {
plan,
});
return response.data;
};
// 取消订阅
export const cancelSubscription = async (
): Promise<{ message: string }> => {
const response = await apiClient.post('/subscription/cancel');
return response.data;
};
// 获取配额状态
export const getQuotaStatus = async (): Promise<QuotaStatus> => {
const response = await apiClient.get('/quota');
return response.data;
};