<template>
|
<div class="absolute bottom-0 left-0 right-0 top-0">
|
<div class="relative flex h-full w-full flex-col">
|
<Header v-if="flowAgent" :flowAgent="flowAgent" :queryId="queryId" />
|
<main class="relative flex h-full w-full flex-1">
|
<Sidebar @dragstart="handleOnDragStart" />
|
<div class="relative h-full flex-1 overflow-hidden" v-if="flowJson">
|
<MainCanvas :flowJson="flowJson"/>
|
</div>
|
</main>
|
</div>
|
</div>
|
<!-- <Toaster /> -->
|
</template>
|
<script setup lang="ts">
|
// import { PlusIcon, GhostIcon } from 'lucide-vue-next'
|
import { useVueFlow } from '@vue-flow/core';
|
import { useClipboard } from '@vueuse/core';
|
// import MainCanvas from '@/components/vue-flow/MainCanvas.vue';
|
import { computed, onMounted, ref } from 'vue';
|
import Header from './components/Header.vue';
|
import Sidebar from './components/Sidebar.vue';
|
import { get_workflow_agent_list, get_workflow_json_flow } from '/@/api/workflow';
|
import MainCanvas from '/@/components/vue-flow/MainCanvas.vue';
|
import router from '/@/router';
|
|
// import { Button } from '@/components/ui/button';
|
// import { Toaster, useToast } from '@/components/ui/toast';
|
|
function handleOnDragStart(event: DragEvent, nodeType: any) {
|
if (event.dataTransfer) {
|
event.dataTransfer.setData('application/vueflow', nodeType);
|
event.dataTransfer.effectAllowed = 'move';
|
}
|
}
|
|
const queryId = computed(() => router.currentRoute.value.query.id as string);
|
|
const { toObject } = useVueFlow();
|
const { copy } = useClipboard();
|
|
const flowJson = ref(null);
|
|
const flowAgent = ref(null);
|
|
const handleGetJSON = async (id: string) => {
|
const res = await get_workflow_json_flow({
|
agent_id: id,
|
});
|
flowJson.value = res.json_ok ? res.json_flow : {};
|
};
|
|
|
const getFlowAgent =async()=>{
|
const res = await get_workflow_agent_list();
|
const flowAgentList = res.values??[]
|
const currentFlowAgent = flowAgentList.find((item:any)=>item.id===queryId.value)
|
flowAgent.value = currentFlowAgent;
|
}
|
|
onMounted(() => {
|
if (!queryId.value) return;
|
handleGetJSON(queryId.value);
|
getFlowAgent();
|
});
|
</script>
|