创作模式oss文件上传临时数据清理

This commit is contained in:
2026-06-05 09:41:33 +08:00
parent c37710af3d
commit 6ef063ac09

View File

@@ -1424,6 +1424,7 @@ const fetchWorkflowList = async () => {
// }; // };
// 新建工作流 // 新建工作流
const createNewWorkflow = () => { const createNewWorkflow = () => {
resetCreationTempState();
// 切换回画布编辑模式 // 切换回画布编辑模式
isCreationMode.value = false; isCreationMode.value = false;
currentWorkflowForCreation.value = null; currentWorkflowForCreation.value = null;
@@ -1612,9 +1613,7 @@ const useWorkflow = async (workflow: WorkflowItem) => {
// 从工作流进入,不禁用表单 // 从工作流进入,不禁用表单
isFromWorkspace.value = false; isFromWorkspace.value = false;
currentSessionId.value = null; // 清空会话 ID currentSessionId.value = null; // 清空会话 ID
resetCreationTempState();
// 初始化创作表单的值
Object.keys(creationFormValues).forEach((key) => delete creationFormValues[key]);
// 根据 nodeInputParams 初始化表单默认值 // 根据 nodeInputParams 初始化表单默认值
if (res.data.nodeInputParams && Array.isArray(res.data.nodeInputParams)) { if (res.data.nodeInputParams && Array.isArray(res.data.nodeInputParams)) {
@@ -1671,6 +1670,7 @@ const useWorkflow = async (workflow: WorkflowItem) => {
}); });
} }
}); });
hydrateCreationFileFields(res.data.nodeInputParams);
} }
ElMessage.success(`已进入创作模式`); ElMessage.success(`已进入创作模式`);
@@ -1687,6 +1687,7 @@ const editWorkflow = async (workflow: WorkflowItem) => {
// 调用详情接口获取最新的工作流数据 // 调用详情接口获取最新的工作流数据
const res = await getWorkflowDetail(workflow.id); const res = await getWorkflowDetail(workflow.id);
if (res.data?.flowContent) { if (res.data?.flowContent) {
resetCreationTempState();
// 切换回画布编辑模式 // 切换回画布编辑模式
isCreationMode.value = false; isCreationMode.value = false;
currentWorkflowForCreation.value = null; currentWorkflowForCreation.value = null;
@@ -1710,6 +1711,7 @@ const editWorkflow = async (workflow: WorkflowItem) => {
}; };
// 返回画布编辑模式 // 返回画布编辑模式
const backToCanvas = async () => { const backToCanvas = async () => {
resetCreationTempState();
isCreationMode.value = false; isCreationMode.value = false;
currentWorkflowForCreation.value = null; currentWorkflowForCreation.value = null;
currentSessionId.value = null; // 清空会话 ID currentSessionId.value = null; // 清空会话 ID
@@ -1813,6 +1815,29 @@ const getCreationVisibleFields = (node: any) => {
}); });
return result; return result;
}; };
const resetCreationTempState = () => {
selectedFiles.value = [];
selectedCreationSkill.value = null;
userInput.value = '';
Object.keys(creationFormValues).forEach((key) => delete creationFormValues[key]);
Object.keys(creationFieldFiles).forEach((key) => delete creationFieldFiles[key]);
Object.keys(creationFieldUploading).forEach((key) => delete creationFieldUploading[key]);
};
const hydrateCreationFileFields = (nodes: any[] = []) => {
nodes.forEach((node: any) => {
getCreationVisibleFields(node).forEach((field: any) => {
if (!isCreationFileField(field)) return;
const key = getCreationFieldKey(node, field);
const rawValue = creationFormValues[key];
const urls = Array.isArray(rawValue) ? rawValue : rawValue ? [rawValue] : [];
if (urls.length === 0) return;
creationFieldFiles[key] = urls.map((url: string, index: number) => ({
name: String(url || '').split('/').pop() || `file-${index + 1}`,
url,
}));
});
});
};
const creationFieldFiles = reactive<Record<string, Array<{ name: string; url: string }>>>({}); const creationFieldFiles = reactive<Record<string, Array<{ name: string; url: string }>>>({});
const creationFieldUploading = reactive<Record<string, boolean>>({}); const creationFieldUploading = reactive<Record<string, boolean>>({});
const isCreationFieldUploading = (node: any, field: any) => { const isCreationFieldUploading = (node: any, field: any) => {
@@ -2186,6 +2211,7 @@ const handleTreeNodeClick = async (data: TreeNode) => {
currentSessionId.value = data.sessionId || null; currentSessionId.value = data.sessionId || null;
// 标记为从工作空间进入 // 标记为从工作空间进入
isFromWorkspace.value = true; isFromWorkspace.value = true;
resetCreationTempState();
// 处理 fileUrl // 处理 fileUrl
const fileUrls: string[] = []; const fileUrls: string[] = [];
@@ -2209,9 +2235,6 @@ const handleTreeNodeClick = async (data: TreeNode) => {
isCreationMode.value = true; isCreationMode.value = true;
currentWorkflowForCreation.value = res.data; currentWorkflowForCreation.value = res.data;
// 初始化创作表单的值
Object.keys(creationFormValues).forEach((key) => delete creationFormValues[key]);
// 根据 nodeInputParams 初始化表单默认值 // 根据 nodeInputParams 初始化表单默认值
if (res.data.nodeInputParams && Array.isArray(res.data.nodeInputParams)) { if (res.data.nodeInputParams && Array.isArray(res.data.nodeInputParams)) {
res.data.nodeInputParams.forEach((node: any) => { res.data.nodeInputParams.forEach((node: any) => {
@@ -2247,6 +2270,7 @@ const handleTreeNodeClick = async (data: TreeNode) => {
}); });
} }
}); });
hydrateCreationFileFields(res.data.nodeInputParams);
} }
ElMessage.success(`已进入创作模式`); ElMessage.success(`已进入创作模式`);
@@ -2293,9 +2317,6 @@ const handleTreeNodeClick = async (data: TreeNode) => {
isCreationMode.value = true; isCreationMode.value = true;
currentWorkflowForCreation.value = res.data; currentWorkflowForCreation.value = res.data;
// 初始化创作表单的值
Object.keys(creationFormValues).forEach((key) => delete creationFormValues[key]);
// 根据 nodeInputParams 初始化表单默认值 // 根据 nodeInputParams 初始化表单默认值
if (res.data.nodeInputParams && Array.isArray(res.data.nodeInputParams)) { if (res.data.nodeInputParams && Array.isArray(res.data.nodeInputParams)) {
res.data.nodeInputParams.forEach((node: any) => { res.data.nodeInputParams.forEach((node: any) => {
@@ -2331,6 +2352,7 @@ const handleTreeNodeClick = async (data: TreeNode) => {
}); });
} }
}); });
hydrateCreationFileFields(res.data.nodeInputParams);
} }
ElMessage.success(`已进入创作模式`); ElMessage.success(`已进入创作模式`);