| | |
| | | <div class="relative h-full w-full" id="main-canvas" @drop="handleOnDrop" @dragover="handleOnDragOver"> |
| | | <VueFlow v-model="elements" :node-types="nodeTypes" :connection-mode="ConnectionMode.Strict"> |
| | | <template #node-start="startNodeProps"> |
| | | <StartNode ref="nodeRef" v-bind="startNodeProps" :isViewMode="isViewMode" @register="(ref) => registerNodeRef(startNodeProps.id, ref)" /> |
| | | <StartNode |
| | | ref="nodeRef" |
| | | v-bind="startNodeProps" |
| | | :isViewMode="isViewMode" |
| | | @register="(ref) => registerNodeRef(startNodeProps.id, ref)" |
| | | /> |
| | | </template> |
| | | <template #node-condition="conditionNodeProps"> |
| | | <ConditionNode ref="nodeRef" v-bind="conditionNodeProps" :isViewMode="isViewMode" @register="(ref) => registerNodeRef(conditionNodeProps.id, ref)" /> |
| | | <ConditionNode |
| | | ref="nodeRef" |
| | | v-bind="conditionNodeProps" |
| | | :isViewMode="isViewMode" |
| | | @register="(ref) => registerNodeRef(conditionNodeProps.id, ref)" |
| | | /> |
| | | </template> |
| | | <template #node-output_msg="outputNodeProps"> |
| | | <OutputNode ref="nodeRef" v-bind="outputNodeProps" :isViewMode="isViewMode" @register="(ref) => registerNodeRef(outputNodeProps.id, ref)" /> |
| | | <OutputNode |
| | | ref="nodeRef" |
| | | v-bind="outputNodeProps" |
| | | :isViewMode="isViewMode" |
| | | @register="(ref) => registerNodeRef(outputNodeProps.id, ref)" |
| | | /> |
| | | </template> |
| | | |
| | | <template #node-end="endNodeProps"> |
| | |
| | | </template> |
| | | |
| | | <template #node-agent="agentNodeProps"> |
| | | <AgentNode ref="nodeRef" v-bind="agentNodeProps" :agentNames="agentNames" :isViewMode="isViewMode" @register="(ref) => registerNodeRef(agentNodeProps.id, ref)" /> |
| | | <AgentNode |
| | | ref="nodeRef" |
| | | v-bind="agentNodeProps" |
| | | :agentNames="agentNames" |
| | | :isViewMode="isViewMode" |
| | | @register="(ref) => registerNodeRef(agentNodeProps.id, ref)" |
| | | /> |
| | | </template> |
| | | <template #node-func="funcNodeProps"> |
| | | <FuncNode ref="nodeRef" v-bind="funcNodeProps" :funcNames="funcNames" :isViewMode="isViewMode" /> |
| | | </template> |
| | | |
| | | <template #node-code="codeNodeProps"> |
| | | <CodeNode ref="nodeRef" v-bind="codeNodeProps" :isViewMode="isViewMode" @register="(ref) => registerNodeRef(codeNodeProps.id, ref)" /> |
| | | <CodeNode |
| | | ref="nodeRef" |
| | | v-bind="codeNodeProps" |
| | | :isViewMode="isViewMode" |
| | | @register="(ref) => registerNodeRef(codeNodeProps.id, ref)" |
| | | /> |
| | | </template> |
| | | <template #node-python_code="pythonCodeNodeProps"> |
| | | <PythonCodeNode ref="nodeRef" v-bind="pythonCodeNodeProps" :isViewMode="isViewMode" @register="(ref) => registerNodeRef(pythonCodeNodeProps.id, ref)" /> |
| | | <PythonCodeNode |
| | | ref="nodeRef" |
| | | v-bind="pythonCodeNodeProps" |
| | | :isViewMode="isViewMode" |
| | | @register="(ref) => registerNodeRef(pythonCodeNodeProps.id, ref)" |
| | | /> |
| | | </template> |
| | | <template #node-n8n="n8nNodeProps"> |
| | | <N8nNode |
| | | :workflowList="n8nWorkflowList" |
| | | ref="nodeRef" |
| | | v-bind="n8nNodeProps" |
| | | :isViewMode="isViewMode" |
| | | @register="(ref) => registerNodeRef(n8nNodeProps.id, ref)" |
| | | /> |
| | | </template> |
| | | <template #node-text_resource="textResourceNodeProps"> |
| | | <TextResourceNode ref="nodeRef" v-bind="textResourceNodeProps" :isViewMode="isViewMode" @register="(ref) => registerNodeRef(textResourceNodeProps.id, ref)" /> |
| | | <TextResourceNode |
| | | ref="nodeRef" |
| | | v-bind="textResourceNodeProps" |
| | | :isViewMode="isViewMode" |
| | | @register="(ref) => registerNodeRef(textResourceNodeProps.id, ref)" |
| | | /> |
| | | </template> |
| | | |
| | | <template #node-analysis="analysisNodeProps"> |
| | |
| | | import TextResourceNode from './ui/nodes/TextResourceNode.vue'; |
| | | import { NodeType, nodeTypeMap } from './vueFlowEnum'; |
| | | import { VueFlowHelper } from './VueFlowHelper'; |
| | | |
| | | import N8nNode from './ui/nodes/N8nNode.vue'; |
| | | import { GetN8nWorkflowList } from '/@/api/n8n'; |
| | | const props = defineProps(['flowJson', 'agentNames', 'funcNames', 'llmInfoList', 'isViewMode']); |
| | | |
| | | const n8nWorkflowList = ref([]); |
| | | const getN8nWorkflowList = async () => { |
| | | const res = await GetN8nWorkflowList({ |
| | | active: true, |
| | | }); |
| | | n8nWorkflowList.value = res.values?.data ?? []; |
| | | }; |
| | | |
| | | const nodeTypes = {}; |
| | | const elements = ref<Elements>(); |
| | |
| | | |
| | | setInteractive(!props.isViewMode); |
| | | }; |
| | | onMounted(() => { |
| | | onMounted(async () => { |
| | | getN8nWorkflowList(); |
| | | setTimeout(() => { |
| | | initFlowStatus(); |
| | | }, 30); |