feat: no data running

This commit is contained in:
Joel 2025-04-30 14:28:33 +08:00
parent ae0657dd02
commit 6caf6714cd
4 changed files with 37 additions and 31 deletions

View File

@ -127,15 +127,8 @@ const BeforeRunForm: FC<BeforeRunFormProps> = ({
const submitData: Record<string, any> = {}
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

View File

@ -152,7 +152,8 @@ const BasePanel: FC<BasePanelProps> = ({
singleRunParams,
setRunInputData,
hasLastRunData,
handleRun,
handleSingleRun,
handleRunWithParams,
getExistVarValuesInForms,
getFilteredExistVarForms,
} = useLastRun<typeof data>({
@ -178,7 +179,7 @@ const BasePanel: FC<BasePanelProps> = ({
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<BasePanelProps> = ({
>
<div
className='mr-1 flex h-6 w-6 cursor-pointer items-center justify-center rounded-md hover:bg-state-base-hover'
onClick={() => {
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}
>
<RiPlayLargeLine className='h-4 w-4 text-text-tertiary' />
</div>
@ -323,7 +313,12 @@ const BasePanel: FC<BasePanelProps> = ({
)}
{tabType === TabType.lastRun && (
<LastRun appId={appDetail?.id || ''} nodeId={id} runningStatus={runningStatus} />
<LastRun
appId={appDetail?.id || ''}
nodeId={id}
runningStatus={runningStatus}
onSingleRunClicked={handleSingleRun}
/>
)}
</div>
</div>

View File

@ -11,20 +11,18 @@ type Props = {
appId: string
nodeId: string
runningStatus?: NodeRunningStatus
onSingleRunClicked: () => void
}
const LastRun: FC<Props> = ({
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 <Loading />
@ -33,7 +31,7 @@ const LastRun: FC<Props> = ({
if (!runResult) {
return (
<NoData onSingleRun={handleSingleRun} />
<NoData onSingleRun={onSingleRunClicked} />
)
}
return (

View File

@ -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, any> = {
[BlockEnum.LLM]: useLLMSingleRunFormParams,
@ -43,6 +46,8 @@ type Params<T> = OneStepRunParams<T>
const useLastRun = <T>({
...oneStepRunParams
}: Params<T>) => {
const { handleSyncWorkflowDraft } = useNodesSyncDraft()
const {
id,
data,
@ -50,12 +55,13 @@ const useLastRun = <T>({
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 = <T>({
toVarInputs,
})
const callRunApi = async (data: Record<string, any>) => {
await handleSyncWorkflowDraft(true)
doCallRunApi(data)
}
const [tabType, setTabType] = useState<TabType>(TabType.settings)
const handleRun = async (data: Record<string, any>) => {
const handleRunWithParams = async (data: Record<string, any>) => {
setTabType(TabType.lastRun)
callRunApi(data)
hideSingleRun()
@ -141,6 +152,14 @@ const useLastRun = <T>({
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 = <T>({
singleRunParams,
setRunInputData,
hasLastRunData,
handleRun,
handleSingleRun,
handleRunWithParams,
getExistVarValuesInForms,
getFilteredExistVarForms,
}