refactor: 删除历史遗留的 selectedHumanId/selectedElementId 字段

这两个字段是早期数字人方案的遗留,当前业务已完全不使用:
- types/project.ts: 删除字段定义
- store/projectStore.ts: 删除 setSelectedHumanId/setSelectedAvatarInfo action
- api/modules/localStorage.ts: 删除序列化
- VideoCreation/index.tsx: 删除加载恢复逻辑
- utils/projectMeta.ts: 删除默认值

当前素材选择实际只有:
- 人物素材: avatarMaterialPath/Name/Duration(对口型用)
- 空镜素材: userUploadedMaterials + emptyShotMaterial
This commit is contained in:
小鱼开发
2026-05-06 14:25:12 +08:00
parent bd2f7b9afe
commit ea9720394d
5 changed files with 1 additions and 26 deletions
@@ -99,8 +99,6 @@ export const localProjectApi = {
coverPath: meta.coverPath,
finalVideoPath: meta.finalVideoPath,
exportedAt: meta.exportedAt,
selectedHumanId: meta.selectedHumanId,
selectedElementId: meta.selectedElementId,
selectedVoiceId: meta.selectedVoiceId,
composedVideoUrl: meta.composedVideoUrl,
composedVideoPath: meta.composedVideoPath,
@@ -64,8 +64,6 @@ function VideoCreationContent() {
if (meta.subtitleAlignment !== undefined) updates.subtitleAlignment = meta.subtitleAlignment;
// Step 3 视频生成
if (meta.selectedElementId !== undefined) updates.selectedElementId = meta.selectedElementId;
if (meta.selectedHumanId !== undefined) updates.selectedHumanId = meta.selectedHumanId;
if (meta.avatarMaterialPath !== undefined) updates.avatarMaterialPath = meta.avatarMaterialPath;
if (meta.avatarMaterialName !== undefined) updates.avatarMaterialName = meta.avatarMaterialName;
if (meta.avatarMaterialDuration !== undefined) updates.avatarMaterialDuration = meta.avatarMaterialDuration;
+1 -18
View File
@@ -21,8 +21,6 @@ interface ProjectActions {
setTopic: (topic: string) => void;
setTitle: (title: string) => void;
setCurrentStep: (step: number) => void;
setSelectedHumanId: (id: string | undefined) => void;
setSelectedAvatarInfo: (humanId?: string, elementId?: number, voiceId?: string) => void;
setAvatarMaterial: (path?: string, name?: string, duration?: number) => void;
setSelectedVoiceId: (voiceId: string) => void;
setFinalVideoPath: (path: string | undefined) => void;
@@ -173,21 +171,6 @@ export const useProjectStore = create<ProjectStore>()(
state.currentStep = step;
}),
setSelectedHumanId: id => {
set(state => {
state.selectedHumanId = id;
state.updatedAt = Date.now();
});
// 不再即时落盘,统一在视频生成完成回调中保存到 meta.json
},
setSelectedAvatarInfo: (humanId, elementId, voiceId) => {
set(state => {
state.selectedHumanId = humanId;
state.selectedElementId = elementId;
state.selectedVoiceId = voiceId;
state.updatedAt = Date.now();
});
},
setAvatarMaterial: (path, name, duration) => {
set(state => {
state.avatarMaterialPath = path;
@@ -254,7 +237,7 @@ export const useProjectStore = create<ProjectStore>()(
partialize: (state) => ({
// 只保存 UI 状态,不保存项目业务数据
_isLoading: state._isLoading,
// 不保存: segments, selectedHumanId, finalVideoPath, coverPath 等
// 不保存: segments, finalVideoPath, coverPath 等
}),
onRehydrateStorage: () => state => {
if (state) {
-2
View File
@@ -83,8 +83,6 @@ export interface ProjectMeta {
topic?: string;
// === 素材选择 ===
selectedHumanId?: string;
selectedElementId?: number;
selectedVoiceId?: string;
avatarMaterialPath?: string;
avatarMaterialName?: string;
-2
View File
@@ -148,8 +148,6 @@ export function migrateMeta(raw: Record<string, any>): Partial<ProjectMeta> {
*/
export const BLANK_META_OVERRIDES: MetaOverrides = {
topic: undefined,
selectedHumanId: undefined,
selectedElementId: undefined,
selectedVoiceId: undefined,
finalVideoPath: undefined,
coverPath: undefined,