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 @@ + +