From 6caf6714cdd664def6484d452cb26f68041b5d37 Mon Sep 17 00:00:00 2001 From: Joel Date: Wed, 30 Apr 2025 14:28:33 +0800 Subject: [PATCH] feat: no data running --- .../components/before-run-form/index.tsx | 9 +------ .../_base/components/workflow-panel/index.tsx | 25 +++++++----------- .../workflow-panel/last-run/index.tsx | 8 +++--- .../workflow-panel/last-run/use-last-run.ts | 26 ++++++++++++++++--- 4 files changed, 37 insertions(+), 31 deletions(-) diff --git a/web/app/components/workflow/nodes/_base/components/before-run-form/index.tsx b/web/app/components/workflow/nodes/_base/components/before-run-form/index.tsx index d2b9a519b5..689ab102d8 100644 --- a/web/app/components/workflow/nodes/_base/components/before-run-form/index.tsx +++ b/web/app/components/workflow/nodes/_base/components/before-run-form/index.tsx @@ -127,15 +127,8 @@ const BeforeRunForm: FC = ({ const submitData: Record = {} let parseErrorJsonField = '' - forms.forEach((form, i) => { - const existVarValuesInForm = existVarValuesInForms[i] - + forms.forEach((form) => { form.inputs.forEach((input) => { - if (input.variable in existVarValuesInForm) { - // TODO: wait for api if need to pass exist var values - submitData[input.variable] = existVarValuesInForm[input.variable] - return - } try { const value = formatValue(form.values[input.variable], input.type) submitData[input.variable] = value diff --git a/web/app/components/workflow/nodes/_base/components/workflow-panel/index.tsx b/web/app/components/workflow/nodes/_base/components/workflow-panel/index.tsx index 6b57da3d6d..f540d083aa 100644 --- a/web/app/components/workflow/nodes/_base/components/workflow-panel/index.tsx +++ b/web/app/components/workflow/nodes/_base/components/workflow-panel/index.tsx @@ -152,7 +152,8 @@ const BasePanel: FC = ({ singleRunParams, setRunInputData, hasLastRunData, - handleRun, + handleSingleRun, + handleRunWithParams, getExistVarValuesInForms, getFilteredExistVarForms, } = useLastRun({ @@ -178,7 +179,7 @@ const BasePanel: FC = ({ nodeType={data.type} onHide={hideSingleRun} runningStatus={runningStatus} - onRun={handleRun} + onRun={handleRunWithParams} onStop={handleStop} {...singleRunParams!} existVarValuesInForms={getExistVarValuesInForms(singleRunParams?.forms as any)} @@ -228,18 +229,7 @@ const BasePanel: FC = ({ >
{ - const filteredExistVarForms = getFilteredExistVarForms(singleRunParams.forms) - if (filteredExistVarForms.length > 0) { - showSingleRun() - } - else { - // TODO: check valid - // TODO: all value is setted. wait for api if need to pass exist var values - handleRun({}) - } - handleSyncWorkflowDraft(true) - }} + onClick={handleSingleRun} >
@@ -323,7 +313,12 @@ const BasePanel: FC = ({ )} {tabType === TabType.lastRun && ( - + )} diff --git a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/index.tsx b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/index.tsx index 5093ac69ee..24ed61be2b 100644 --- a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/index.tsx +++ b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/index.tsx @@ -11,20 +11,18 @@ type Props = { appId: string nodeId: string runningStatus?: NodeRunningStatus + onSingleRunClicked: () => void } const LastRun: FC = ({ appId, nodeId, runningStatus, + onSingleRunClicked, }) => { const isRunning = runningStatus === NodeRunningStatus.Running const { data: runResult, isFetching } = useLastRun(appId, nodeId, !isRunning) - const handleSingleRun = () => { - console.log('run') - } - if (isFetching) return @@ -33,7 +31,7 @@ const LastRun: FC = ({ if (!runResult) { return ( - + ) } return ( diff --git a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts index 1c8a7a3d36..86b8817274 100644 --- a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts +++ b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts @@ -6,6 +6,9 @@ import { useWorkflowStore } from '@/app/components/workflow/store' import type { Props as FormProps } from '@/app/components/workflow/nodes/_base/components/before-run-form/form' import useLLMSingleRunFormParams from '@/app/components/workflow/nodes/llm/use-single-run-form-params' import { BlockEnum } from '@/app/components/workflow/types' +import { + useNodesSyncDraft, +} from '@/app/components/workflow/hooks' const singleRunFormParamsHooks: Record = { [BlockEnum.LLM]: useLLMSingleRunFormParams, @@ -43,6 +46,8 @@ type Params = OneStepRunParams const useLastRun = ({ ...oneStepRunParams }: Params) => { + const { handleSyncWorkflowDraft } = useNodesSyncDraft() + const { id, data, @@ -50,12 +55,13 @@ const useLastRun = ({ const oneStepRunRes = useOneStepRun(oneStepRunParams) const { hideSingleRun, - handleRun: callRunApi, + handleRun: doCallRunApi, getInputVars, toVarInputs, runInputData, runInputDataRef, setRunInputData, + showSingleRun, } = oneStepRunRes const singleRunParams = useSingleRunFormParamsHooks(data.type)({ @@ -68,8 +74,13 @@ const useLastRun = ({ toVarInputs, }) + const callRunApi = async (data: Record) => { + await handleSyncWorkflowDraft(true) + doCallRunApi(data) + } + const [tabType, setTabType] = useState(TabType.settings) - const handleRun = async (data: Record) => { + const handleRunWithParams = async (data: Record) => { setTabType(TabType.lastRun) callRunApi(data) hideSingleRun() @@ -141,6 +152,14 @@ const useLastRun = ({ return res } + const handleSingleRun = () => { + const filteredExistVarForms = getFilteredExistVarForms(singleRunParams.forms) + if (filteredExistVarForms.length > 0) + showSingleRun() + else + callRunApi({})// no need to pass params + } + return { ...oneStepRunRes, tabType, @@ -148,7 +167,8 @@ const useLastRun = ({ singleRunParams, setRunInputData, hasLastRunData, - handleRun, + handleSingleRun, + handleRunWithParams, getExistVarValuesInForms, getFilteredExistVarForms, }