diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderDebug/NodeDebugResponse.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderDebug/NodeDebugResponse.tsx index 6d43164d3..11d151805 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderDebug/NodeDebugResponse.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderDebug/NodeDebugResponse.tsx @@ -26,58 +26,15 @@ interface NodeDebugResponseProps { const NodeDebugResponse = ({ nodeId, debugResult }: NodeDebugResponseProps) => { const { t } = useTranslation(); - const nodeList = useContextSelector(WorkflowContext, (v) => v.nodeList); - const node = useMemo(() => nodeList.find((node) => node.nodeId === nodeId), [nodeList, nodeId]); - const firstInteractive = useMemo(() => { - if ( - node && - node.flowNodeType === FlowNodeTypeEnum.userSelect && - !node.debugResult?.response?.userSelectResult - ) { - return true; - } - if ( - node && - node.flowNodeType === FlowNodeTypeEnum.formInput && - !node.debugResult?.response?.formInputResult - ) { - return true; - } - return false; - }, [node]); + const firstInteractive = debugResult?.workflowInteractiveResponse; const { onChangeNode, onStopNodeDebug, onNextNodeDebug, workflowDebugData } = useContextSelector( WorkflowContext, (v) => v ); - const interactive: UserSelectInteractive | UserInputInteractive | undefined = useMemo(() => { - const description = node?.inputs?.find((input) => input.key === 'description')?.value; - const userSelectOptions = node?.inputs?.find( - (input) => input.key === 'userSelectOptions' - )?.value; - const formInputForms = node?.inputs?.find((input) => input.key === 'userInputForms')?.value; - if (node?.flowNodeType === FlowNodeTypeEnum.userSelect) { - return { - type: 'userSelect', - params: { - description, - userSelectOptions - } - }; - } - if (node?.flowNodeType === FlowNodeTypeEnum.formInput) { - return { - type: 'userInput', - params: { - description, - inputForm: formInputForms - } - }; - } - return undefined; - }, [node]); + const interactive = debugResult?.workflowInteractiveResponse; const { openConfirm, ConfirmModal } = useConfirm({ content: t('common:core.workflow.Confirm stop debug') diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/context/index.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/context/index.tsx index 9201921b2..f5f969813 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/context/index.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/context/index.tsx @@ -638,19 +638,25 @@ const WorkflowContextProvider = ({ try { // 4. Run one step - const { finishedEdges, finishedNodes, nextStepRunNodes, flowResponses, newVariables } = - await postWorkflowDebug({ - nodes: runtimeNodes, - edges: debugData.runtimeEdges, - variables: { - appId, - cTime: formatTime2YMDHMW(), - ...debugData.variables - }, - query, // 添加 query 参数 - history, - appId - }); + const { + finishedEdges, + finishedNodes, + nextStepRunNodes, + flowResponses, + newVariables, + workflowInteractiveResponse + } = await postWorkflowDebug({ + nodes: runtimeNodes, + edges: debugData.runtimeEdges, + variables: { + appId, + cTime: formatTime2YMDHMW(), + ...debugData.variables + }, + query, // 添加 query 参数 + history, + appId + }); // 5. Store debug result const newStoreDebugData = { runtimeNodes: finishedNodes, @@ -659,10 +665,13 @@ const WorkflowContextProvider = ({ nextRunNodes: nextStepRunNodes, variables: newVariables, query, - history + history, + workflowInteractiveResponse: workflowInteractiveResponse }; setWorkflowDebugData(newStoreDebugData); - + if (workflowInteractiveResponse) { + console.log('workflowInteractiveResponse', workflowInteractiveResponse); + } // 6. selected entry node and Update entry node debug result setNodes((state) => state.map((node) => { @@ -695,7 +704,8 @@ const WorkflowContextProvider = ({ status: 'success', response: result, showResult: true, - isExpired: false + isExpired: false, + workflowInteractiveResponse: workflowInteractiveResponse } } };