From f85ac3475372550e052818a3671cbc303c6a077d Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 10 Apr 2025 21:12:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=BC=BA=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E4=BE=A7=E8=BE=B9=E6=A0=8F=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E6=98=BE=E7=A4=BA=E5=92=8C=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=82=B9=E5=87=BB=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dialog/WorkflowActionsDialog.vue | 212 ++++++---- src/components/workflow/AddDownloadAction.vue | 2 +- .../workflow/AddSubscribeAction.vue | 2 +- src/components/workflow/FetchMediasAction.vue | 2 +- src/components/workflow/ScanFileAction.vue | 2 +- src/layouts/components/WorkflowSidebar.vue | 399 +++++++++++++++++- 6 files changed, 512 insertions(+), 107 deletions(-) diff --git a/src/components/dialog/WorkflowActionsDialog.vue b/src/components/dialog/WorkflowActionsDialog.vue index 837ccda7..adc35dfe 100644 --- a/src/components/dialog/WorkflowActionsDialog.vue +++ b/src/components/dialog/WorkflowActionsDialog.vue @@ -10,7 +10,7 @@ import WorkflowSidebar from '@/layouts/components/WorkflowSidebar.vue' import DropzoneBackground from '@/layouts/components/DropzoneBackground.vue' import ImportCodeDialog from '@/components/dialog/ImportCodeDialog.vue' -const { onConnect, addEdges, nodes, edges } = useVueFlow() +const { onConnect, addEdges, nodes, edges, addNodes, screenToFlowCoordinate } = useVueFlow() const { onDragOver, onDrop, onDragLeave, isDragOver } = useDragAndDrop() @@ -98,6 +98,43 @@ const $toast = useToast() // 导入代码对话框 const importCodeDialog = ref(false) +// 为移动端生成节点ID +function getId() { + return 'act_' + Math.random().toString(36).substr(2, 9) +} + +// 处理移动端组件点击事件 +function handleComponentClick(action: any) { + // 计算当前视图中心点 + const centerX = window.innerWidth / 2 + const centerY = window.innerHeight / 3 + + // 转换为画布坐标 + const position = screenToFlowCoordinate({ + x: centerX, + y: centerY, + }) + + // 生成一个新节点ID + const nodeId = getId() + + // 创建新节点 + const newNode = { + id: nodeId, + type: action.type, + name: action.name, + description: action.desc || '', + position, + data: {}, + } + + // 添加节点到画布 + addNodes(newNode) + + // 显示提示 + $toast.success('已添加组件到画布') +} + // 调用API 编辑任务 async function updateWorkflow() { // 更新节点和流程 @@ -157,32 +194,34 @@ const isMacOS = computed(() => { - diff --git a/src/components/workflow/AddDownloadAction.vue b/src/components/workflow/AddDownloadAction.vue index b03ea20b..ac9a3025 100644 --- a/src/components/workflow/AddDownloadAction.vue +++ b/src/components/workflow/AddDownloadAction.vue @@ -44,7 +44,7 @@ onMounted(() => { 添加下载 diff --git a/src/components/workflow/AddSubscribeAction.vue b/src/components/workflow/AddSubscribeAction.vue index 6a9e328c..d3b4af25 100644 --- a/src/components/workflow/AddSubscribeAction.vue +++ b/src/components/workflow/AddSubscribeAction.vue @@ -19,7 +19,7 @@ defineProps({ 添加订阅 diff --git a/src/components/workflow/FetchMediasAction.vue b/src/components/workflow/FetchMediasAction.vue index 2ede1c61..a97165fc 100644 --- a/src/components/workflow/FetchMediasAction.vue +++ b/src/components/workflow/FetchMediasAction.vue @@ -110,7 +110,7 @@ onMounted(() => { 获取媒体数据 diff --git a/src/components/workflow/ScanFileAction.vue b/src/components/workflow/ScanFileAction.vue index b75f8a0d..f5a273c6 100644 --- a/src/components/workflow/ScanFileAction.vue +++ b/src/components/workflow/ScanFileAction.vue @@ -20,7 +20,7 @@ defineProps({ 扫描目录 diff --git a/src/layouts/components/WorkflowSidebar.vue b/src/layouts/components/WorkflowSidebar.vue index 76ae6ada..06ba1a35 100644 --- a/src/layouts/components/WorkflowSidebar.vue +++ b/src/layouts/components/WorkflowSidebar.vue @@ -1,11 +1,29 @@ + +