Workflow.vue 623 B

12345678910111213141516171819202122232425262728293031323334
  1. <template>
  2. <div class="w-full h-full">
  3. <Canvas :id="id" :nodes="nodes" :edges="edges" v-bind="$attrs" />
  4. <slot />
  5. </div>
  6. </template>
  7. <script setup lang="ts">
  8. import { computed } from 'vue'
  9. import Canvas from './components/Canvas.vue'
  10. import type { IWorkflow } from './Interface'
  11. defineOptions({
  12. inheritAttrs: false
  13. })
  14. const props = withDefaults(
  15. defineProps<{
  16. id?: string
  17. workflow?: IWorkflow
  18. readOnly?: boolean
  19. }>(),
  20. {
  21. id: 'canvas',
  22. readOnly: false
  23. }
  24. )
  25. // nodes
  26. const nodes = computed(() => props.workflow?.nodes || [])
  27. // edges
  28. const edges = computed(() => props.workflow?.edges || [])
  29. </script>