添加会话模型和API Key配置功能
- 在模型模块中新增会话开关状态字段,支持会话模型的管理。 - 更新模型选择器,增加系统模型的API Key配置弹窗,提升用户体验。 - 优化错误处理逻辑,确保接口错误由全局拦截器处理,减少冗余提示。 - 更新相关样式以增强界面可读性和美观性。
This commit is contained in:
@@ -790,10 +790,11 @@ const buildTreeNodes = (tree: ExecutionTreeItem[]): TreeNode[] =>
|
||||
const getList = async () => {
|
||||
treeLoading.value = true;
|
||||
try {
|
||||
const res = await getExecutionList({ errorMode: 'page' });
|
||||
const res = await getExecutionList();
|
||||
imgAddressPrefix.value = res.data?.imgAddressPrefix || '';
|
||||
treeNodes.value = buildTreeNodes(res.data?.tree || []);
|
||||
} catch {
|
||||
// 错误已由全局拦截器处理
|
||||
treeNodes.value = [];
|
||||
imgAddressPrefix.value = '';
|
||||
} finally {
|
||||
@@ -802,9 +803,10 @@ const getList = async () => {
|
||||
};
|
||||
const getNodeLibrary = async () => {
|
||||
try {
|
||||
const res = await getNodeLibraryList({ errorMode: 'page' });
|
||||
const res = await getNodeLibraryList();
|
||||
nodeLibraryGroups.value = res.data?.groups || [];
|
||||
} catch {
|
||||
// 错误已由全局拦截器处理
|
||||
nodeLibraryGroups.value = [];
|
||||
}
|
||||
};
|
||||
@@ -812,7 +814,7 @@ const getNodeLibrary = async () => {
|
||||
const fetchWorkflowList = async () => {
|
||||
workflowListLoading.value = true;
|
||||
try {
|
||||
const res = await getWorkflowList({ errorMode: 'page' });
|
||||
const res = await getWorkflowList();
|
||||
|
||||
// 分别处理用户工作流和模板工作流
|
||||
const userWorkflows = res.data?.listFlowUserRes?.list || [];
|
||||
@@ -833,6 +835,7 @@ const fetchWorkflowList = async () => {
|
||||
const templateEnd = templateStart + templateWorkflowPagination.pageSize;
|
||||
templateWorkflowList.value = templateWorkflows.slice(templateStart, templateEnd);
|
||||
} catch {
|
||||
// 错误已由全局拦截器处理
|
||||
userWorkflowList.value = [];
|
||||
templateWorkflowList.value = [];
|
||||
userWorkflowPagination.total = 0;
|
||||
@@ -892,7 +895,7 @@ const handleRemoveModel = () => {
|
||||
const useWorkflow = async (workflow: WorkflowItem) => {
|
||||
try {
|
||||
// 调用详情接口获取最新的工作流数据
|
||||
const res = await getWorkflowDetail(workflow.id, { errorMode: 'page' });
|
||||
const res = await getWorkflowDetail(workflow.id);
|
||||
if (res.data) {
|
||||
// 切换到创作模式
|
||||
isCreationMode.value = true;
|
||||
@@ -946,7 +949,7 @@ const useWorkflow = async (workflow: WorkflowItem) => {
|
||||
const editWorkflow = async (workflow: WorkflowItem) => {
|
||||
try {
|
||||
// 调用详情接口获取最新的工作流数据
|
||||
const res = await getWorkflowDetail(workflow.id, { errorMode: 'page' });
|
||||
const res = await getWorkflowDetail(workflow.id);
|
||||
if (res.data?.flowContent) {
|
||||
// 切换回画布编辑模式
|
||||
isCreationMode.value = false;
|
||||
@@ -994,7 +997,7 @@ const deleteWorkflowAction = async (workflow: WorkflowItem) => {
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
await deleteWorkflow(workflow.id, { errorMode: 'page' });
|
||||
await deleteWorkflow(workflow.id);
|
||||
ElMessage.success('工作流删除成功');
|
||||
|
||||
// 如果删除的是当前正在编辑的工作流,清空编辑状态
|
||||
@@ -1038,15 +1041,10 @@ const sendMessage = async () => {
|
||||
const fileUrls: string[] = [];
|
||||
if (selectedFiles.value.length > 0) {
|
||||
for (const file of selectedFiles.value) {
|
||||
try {
|
||||
const uploadRes = await uploadFile(file, { errorMode: 'page' });
|
||||
// 拼接完整的文件地址
|
||||
const fullUrl = uploadRes.data.fileAddressPrefix ? `${uploadRes.data.fileAddressPrefix}${uploadRes.data.fileURL}` : uploadRes.data.fileURL;
|
||||
fileUrls.push(fullUrl);
|
||||
} catch (error) {
|
||||
ElMessage.error(`文件 ${file.name} 上传失败`);
|
||||
throw error;
|
||||
}
|
||||
const uploadRes = await uploadFile(file);
|
||||
// 拼接完整的文件地址
|
||||
const fullUrl = uploadRes.data.fileAddressPrefix ? `${uploadRes.data.fileAddressPrefix}${uploadRes.data.fileURL}` : uploadRes.data.fileURL;
|
||||
fileUrls.push(fullUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1109,7 +1107,7 @@ const sendMessage = async () => {
|
||||
};
|
||||
|
||||
// 5. 调用执行接口(不再使用 FormData,直接传 JSON)
|
||||
await executeFlow(params, { errorMode: 'page' });
|
||||
await executeFlow(params);
|
||||
|
||||
ElMessage.success('创作完成!');
|
||||
|
||||
@@ -1117,8 +1115,8 @@ const sendMessage = async () => {
|
||||
userInput.value = '';
|
||||
selectedFiles.value = [];
|
||||
selectedCreationSkill.value = null;
|
||||
} catch (error) {
|
||||
ElMessage.error('创作失败,请重试');
|
||||
} catch {
|
||||
// 接口错误由 request 全局提示后端 message
|
||||
} finally {
|
||||
isCreating.value = false;
|
||||
}
|
||||
@@ -1149,7 +1147,7 @@ const downloadNode = async (d: TreeNode) => {
|
||||
if (!d.fileUrl) return ElMessage.warning('当前节点没有可下载地址');
|
||||
try {
|
||||
// 下载失败时希望展示更贴近页面语义的提示,因此改为 page 模式。
|
||||
const r = await downloadToFile({ fileURL: d.fileUrl }, { errorMode: 'page' });
|
||||
const r = await downloadToFile({ fileURL: d.fileUrl });
|
||||
const blob = r instanceof Blob ? r : r?.data;
|
||||
if (!(blob instanceof Blob)) throw new Error('invalid blob');
|
||||
const name = decodeURIComponent(d.fileUrl.split('/').pop() || `${d.label}.${d.nodeType === 'html' ? 'html' : 'png'}`);
|
||||
@@ -1163,7 +1161,7 @@ const downloadNode = async (d: TreeNode) => {
|
||||
URL.revokeObjectURL(u);
|
||||
ElMessage.success('下载成功');
|
||||
} catch {
|
||||
// 下载接口使用 errorMode: 'page',后端错误会自动显示
|
||||
// 下载失败由 request 全局提示后端 message
|
||||
}
|
||||
};
|
||||
const syncDsl = () => {
|
||||
@@ -1847,26 +1845,20 @@ const confirmSaveWorkflow = async () => {
|
||||
// 判断是新建还是更新
|
||||
if (currentEditingWorkflowId.value) {
|
||||
// 更新现有工作流
|
||||
await updateWorkflow(
|
||||
{
|
||||
id: currentEditingWorkflowId.value,
|
||||
flowName: saveForm.flowName,
|
||||
description: saveForm.description,
|
||||
flowContent: workflowDsl.value,
|
||||
},
|
||||
{ errorMode: 'page' }
|
||||
);
|
||||
await updateWorkflow({
|
||||
id: currentEditingWorkflowId.value,
|
||||
flowName: saveForm.flowName,
|
||||
description: saveForm.description,
|
||||
flowContent: workflowDsl.value,
|
||||
});
|
||||
ElMessage.success('工作流更新成功');
|
||||
} else {
|
||||
// 创建新工作流
|
||||
await saveWorkflow(
|
||||
{
|
||||
flowName: saveForm.flowName,
|
||||
description: saveForm.description,
|
||||
flowContent: workflowDsl.value,
|
||||
},
|
||||
{ errorMode: 'page' }
|
||||
);
|
||||
await saveWorkflow({
|
||||
flowName: saveForm.flowName,
|
||||
description: saveForm.description,
|
||||
flowContent: workflowDsl.value,
|
||||
});
|
||||
ElMessage.success('工作流保存成功');
|
||||
}
|
||||
saveDialogVisible.value = false;
|
||||
|
||||
Reference in New Issue
Block a user