diff --git a/ui/src/views/application-workflow/index.vue b/ui/src/views/application-workflow/index.vue index bdaaae9a7..cbbfa765c 100644 --- a/ui/src/views/application-workflow/index.vue +++ b/ui/src/views/application-workflow/index.vue @@ -146,6 +146,13 @@ function publicHandle() { const obj = { work_flow: getGraphData() } + const workflow = new WorkFlowInstance(obj.work_flow) + try { + workflow.is_valid() + } catch (e: any) { + MsgError(e.toString()) + return + } applicationApi.putPublishApplication(id as String, obj, loading).then(() => { getDetail() MsgSuccess('发布成功') diff --git a/ui/src/workflow/common/validate.ts b/ui/src/workflow/common/validate.ts index 113fd0abc..3c8e6a494 100644 --- a/ui/src/workflow/common/validate.ts +++ b/ui/src/workflow/common/validate.ts @@ -1,6 +1,6 @@ import { WorkflowType } from '@/enums/workflow' -const end_nodes = [ +const end_nodes: Array = [ WorkflowType.AiChat, WorkflowType.Reply, WorkflowType.FunctionLib, @@ -119,6 +119,9 @@ export class WorkFlowInstance { * @param node 节点 */ private is_valid_node(node: any) { + if (node.properties.status && node.properties.status === 500) { + throw `${node.properties.stepName} 节点不可用` + } if (node.type === WorkflowType.Condition) { const branch_list = node.properties.node_data.branch for (const branch of branch_list) { diff --git a/ui/src/workflow/nodes/function-lib-node/index.vue b/ui/src/workflow/nodes/function-lib-node/index.vue index f85c4483f..92671483d 100644 --- a/ui/src/workflow/nodes/function-lib-node/index.vue +++ b/ui/src/workflow/nodes/function-lib-node/index.vue @@ -124,7 +124,7 @@ const update_field = () => { return { ...item, value: item.source == 'reference' ? [] : '' } }) set(props.nodeModel.properties.node_data, 'input_field_list', merge_input_field_list) - set(props.nodeModel.properties, 'status', 200) + set(props.nodeModel.properties, 'status', ok.data.is_active ? 200 : 500) }) .catch((err) => { set(props.nodeModel.properties, 'status', 500)