forked from 77media/video-flow
保存功能
This commit is contained in:
parent
d08140f537
commit
12bb843f13
@ -2,6 +2,7 @@ import { useState, useCallback, useMemo } from 'react';
|
|||||||
import { RoleEntity, VideoSegmentEntity } from '../domain/Entities';
|
import { RoleEntity, VideoSegmentEntity } from '../domain/Entities';
|
||||||
import { RoleEditUseCase } from '../usecase/RoleEditUseCase';
|
import { RoleEditUseCase } from '../usecase/RoleEditUseCase';
|
||||||
import { getCharacterShots, applyRoleToShots, CharacterReplacement } from '@/api/video_flow';
|
import { getCharacterShots, applyRoleToShots, CharacterReplacement } from '@/api/video_flow';
|
||||||
|
import { SaveEditUseCase } from '../usecase/SaveEditUseCase';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 扩展的视频片段实体,包含选择状态
|
* 扩展的视频片段实体,包含选择状态
|
||||||
@ -181,30 +182,35 @@ export const useRoleShotServiceHook = (projectId: string,selectRole?:RoleEntity,
|
|||||||
});
|
});
|
||||||
console.log('newDraftRoleList', newDraftRoleList)
|
console.log('newDraftRoleList', newDraftRoleList)
|
||||||
// 循环调用接口,为每个选中的分镜单独调用
|
// 循环调用接口,为每个选中的分镜单独调用
|
||||||
shotSelectionList.forEach(async (shot) => {
|
const res = await Promise.all( shotSelectionList.map(async (shot) => {
|
||||||
try {
|
// 调用应用角色到分镜接口(不等待完成)
|
||||||
// 调用应用角色到分镜接口(不等待完成)
|
return applyRoleToShots({
|
||||||
applyRoleToShots({
|
project_id: projectId,
|
||||||
project_id: projectId,
|
shot_id: shot.id, // 单个分镜ID
|
||||||
shot_id: shot.id, // 单个分镜ID
|
character_replacements: characterReplacements,
|
||||||
character_replacements: characterReplacements,
|
wait_for_completion: false, // 不等待完成,异步处理
|
||||||
wait_for_completion: false, // 不等待完成,异步处理
|
character_draft: JSON.stringify(newDraftRoleList)
|
||||||
character_draft: JSON.stringify(newDraftRoleList)
|
})
|
||||||
}).then(response => {
|
}))
|
||||||
if (response.successful) {
|
|
||||||
console.log(`分镜 ${shot.id} 角色替换成功:`, response.data);
|
|
||||||
} else {
|
|
||||||
console.error(`分镜 ${shot.id} 角色替换失败:`, response.message);
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
console.error(`分镜 ${shot.id} 角色替换异常:`, error);
|
|
||||||
});
|
|
||||||
} catch (error) {
|
|
||||||
console.error(`分镜 ${shot.id} 角色替换失败:`, error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(`开始为 ${shotSelectionList.length} 个分镜替换角色`);
|
SaveEditUseCase.setVideoTasks([
|
||||||
|
...SaveEditUseCase.videoTasks,
|
||||||
|
...res.map(item=>{
|
||||||
|
return {
|
||||||
|
task_id: item.data.task_id,
|
||||||
|
video_ids: [item.data.shot_id]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
])
|
||||||
|
console.log([
|
||||||
|
...SaveEditUseCase.videoTasks,
|
||||||
|
...res.map(item=>{
|
||||||
|
return {
|
||||||
|
task_id: item.data.task_id,
|
||||||
|
video_ids: [item.data.shot_id]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
]);
|
||||||
|
|
||||||
// 延迟重置替换状态,给用户一些反馈时间
|
// 延迟重置替换状态,给用户一些反馈时间
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|||||||
@ -149,7 +149,6 @@ export class VideoSegmentEditUseCase {
|
|||||||
const response = await updateShotPrompt({
|
const response = await updateShotPrompt({
|
||||||
project_id,
|
project_id,
|
||||||
shot_id,
|
shot_id,
|
||||||
shot_id,
|
|
||||||
shot_descriptions,
|
shot_descriptions,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user