From 065d7aee856305cd7f6392f25d0e0ac578726be3 Mon Sep 17 00:00:00 2001
From: zhangjinyang <409225776@qq.com>
Date: 星期四, 22 五月 2025 14:59:50 +0800
Subject: [PATCH] feat: 新增单节点执行功能。 close #IC7QJU

---
 aiflowy-ui-react/src/pages/ai/workflowDesign/WorkflowDesign.tsx |   47 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 37 insertions(+), 10 deletions(-)

diff --git a/aiflowy-ui-react/src/pages/ai/workflowDesign/WorkflowDesign.tsx b/aiflowy-ui-react/src/pages/ai/workflowDesign/WorkflowDesign.tsx
index 55394bf..7f4e9a6 100644
--- a/aiflowy-ui-react/src/pages/ai/workflowDesign/WorkflowDesign.tsx
+++ b/aiflowy-ui-react/src/pages/ai/workflowDesign/WorkflowDesign.tsx
@@ -10,6 +10,7 @@
 import customNode from './customNode/index.ts'
 import {PluginNode} from './customNode/pluginNode.ts'
 import {PluginTools} from "../botDesign/PluginTools.tsx";
+import {SingleRun} from "./SingleRun.tsx";
 
 export const WorkflowDesign = () => {
 
@@ -132,6 +133,10 @@
     }
 
     const [open, setOpen] = useState(false);
+    const [singleRunOpen, setSingleRunOpen] = useState(false);
+
+    const singleRunRef = useRef<any>(null)
+    const [currentNode,  setCurrentNode] = useState<any>(null)
 
     const showDrawer = () => {
         setOpen(true);
@@ -139,6 +144,11 @@
 
     const onClose = () => {
         setOpen(false);
+    };
+
+    const onSingleRunClose  = () => {
+        setSingleRunOpen(false);
+        singleRunRef.current.resetForm()
     };
 
     const onFinish = (values: any) => {
@@ -306,6 +316,17 @@
 
             </Drawer>
 
+            <Drawer
+                width={640}
+                title="璇疯緭鍏ュ弬鏁�"
+                placement="right"
+                closable={false}
+                onClose={onSingleRunClose}
+                open={singleRunOpen}
+            >
+                <SingleRun ref={singleRunRef} workflowId={params.id} node={currentNode} />
+            </Drawer>
+
             <div style={{height: 'calc(100vh - 50px)', display: "flex"}} className={"agentsflow"}>
                 <div style={{flexGrow: 1}}>
                     <div style={{
@@ -335,16 +356,22 @@
                         <Spin spinning={pageLoading} >
                             <Tinyflow ref={tinyflowRef} data={workflowData}
                                       provider={provider}
-                                // onChange={(data: any) => {
-                                //     console.log(data)
-                                //     setWorkflow({
-                                //         ...workflow,
-                                //         data: {
-                                //             ...workflow?.data,
-                                //             content: JSON.stringify(data)
-                                //         }
-                                //     })
-                                // }}
+                                      onNodeExecute={async (node) => {
+                                          if ("loopNode" === node.type) {
+                                              message.warning("鏆備笉鏀寔")
+                                              return
+                                          }
+                                          setCurrentNode(node)
+                                          setPageLoading(true)
+                                          await doUpdate({
+                                              data: {
+                                                  id: params.id,
+                                                  content: tinyflowRef.current!.getData()
+                                              }
+                                          })
+                                          setPageLoading(false)
+                                          setSingleRunOpen(true)
+                                      }}
                                       style={{height: 'calc(100vh - 10px)'}} customNodes={customNodes}/>
                         </Spin>
                         : <div style={{padding: '20px'}}><Skeleton active /></div>

--
Gitblit v1.8.0