wujingjing
2024-12-16 ae1afca6065e6cc69174af4151cc3e073d7eb169
src/components/vue-flow/MainCanvas.vue
@@ -1,6 +1,6 @@
<template>
   <div class="relative h-full w-full" id="main-canvas" @drop="handleOnDrop" @dragover="handleOnDragOver">
      <VueFlow v-model="elements" :node-types="nodeTypes" :connection-mode="ConnectionMode.Loose">
      <VueFlow v-model="elements" :node-types="nodeTypes" :connection-mode="ConnectionMode.Strict" >
         <template #edge-custom="customEdgeProps">
            <CustomEdge v-bind="customEdgeProps" />
         </template>
@@ -8,8 +8,16 @@
         <template #node-agent="agentNodeProps">
            <AgentNode v-bind="agentNodeProps" :agentNames="agentNames" />
         </template>
         <template #node-func="funcNodeProps">
            <FuncNode v-bind="funcNodeProps" :funcNames="funcNames" />
         </template>
         <template #node-code="codeNodeProps">
            <CodeNode v-bind="codeNodeProps" />
         </template>
         <Controls />
         <Background />
         <MiniMap pannable zoomable />
      </VueFlow>
   </div>
</template>
@@ -17,6 +25,8 @@
<script setup lang="ts">
import { Background } from '@vue-flow/background';
import { Controls } from '@vue-flow/controls';
import { MiniMap } from '@vue-flow/minimap';
import { Dimensions, Elements, useVueFlow, VueFlow, ConnectionMode, MarkerType } from '@vue-flow/core';
import { markRaw, nextTick, ref, watch } from 'vue';
import { Test_data } from './testData';
@@ -28,11 +38,13 @@
import LLMNode from './ui/nodes/LLMNode.vue';
import OutputNode from './ui/nodes/OutputNode.vue';
import AgentNode from './ui/nodes/AgentNode.vue';
import FuncNode from './ui/nodes/FuncNode.vue';
import CodeNode from './ui/nodes/CodeNode.vue';
import CustomEdge from './ui/edges/CustomEdge.vue';
import { onMounted } from 'vue';
const props = defineProps(['flowJson', 'agentNames']);
const props = defineProps(['flowJson', 'agentNames', 'funcNames']);
const nodeTypes = {
   start: markRaw(StartNode),
@@ -147,14 +159,23 @@
@import '@vue-flow/core/dist/style.css';
@import '@vue-flow/core/dist/theme-default.css';
@import '@vue-flow/controls/dist/style.css';
@import '@vue-flow/minimap/dist/style.css';
@import '@vue-flow/node-resizer/dist/style.css';
#main-canvas {
   --vf-handle: #2563eb;
   --handle-size: 13px;
   --resize-handle-size: 8px;
   .vue-flow__handle {
      width: var(--handle-size);
      height: var(--handle-size);
   }
   .vue-flow__resize-control.handle {
      width: var(--resize-handle-size);
      height: var(--resize-handle-size);
      // visibility: hidden;
   }
}
</style>