feat: add flatten_output configuration to iteration node (#27502)
This commit is contained in:
@@ -22,6 +22,7 @@ const nodeDefault: NodeDefault<IterationNodeType> = {
|
||||
is_parallel: false,
|
||||
parallel_nums: 10,
|
||||
error_handle_mode: ErrorHandleMode.Terminated,
|
||||
flatten_output: true,
|
||||
},
|
||||
checkValid(payload: IterationNodeType, t: any) {
|
||||
let errorMessages = ''
|
||||
|
||||
@@ -46,6 +46,7 @@ const Panel: FC<NodePanelProps<IterationNodeType>> = ({
|
||||
changeParallel,
|
||||
changeErrorResponseMode,
|
||||
changeParallelNums,
|
||||
changeFlattenOutput,
|
||||
} = useConfig(id, data)
|
||||
|
||||
return (
|
||||
@@ -117,6 +118,18 @@ const Panel: FC<NodePanelProps<IterationNodeType>> = ({
|
||||
<Select items={responseMethod} defaultValue={inputs.error_handle_mode} onSelect={changeErrorResponseMode} allowSearch={false} />
|
||||
</Field>
|
||||
</div>
|
||||
|
||||
<Split />
|
||||
|
||||
<div className='px-4 py-2'>
|
||||
<Field
|
||||
title={t(`${i18nPrefix}.flattenOutput`)}
|
||||
tooltip={<div className='w-[230px]'>{t(`${i18nPrefix}.flattenOutputDesc`)}</div>}
|
||||
inline
|
||||
>
|
||||
<Switch defaultValue={inputs.flatten_output} onChange={changeFlattenOutput} />
|
||||
</Field>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -17,5 +17,6 @@ export type IterationNodeType = CommonNodeType & {
|
||||
is_parallel: boolean // open the parallel mode or not
|
||||
parallel_nums: number // the numbers of parallel
|
||||
error_handle_mode: ErrorHandleMode // how to handle error in the iteration
|
||||
flatten_output: boolean // whether to flatten the output array if all elements are lists
|
||||
_isShowTips: boolean // when answer node in parallel mode iteration show tips
|
||||
}
|
||||
|
||||
@@ -98,6 +98,14 @@ const useConfig = (id: string, payload: IterationNodeType) => {
|
||||
})
|
||||
setInputs(newInputs)
|
||||
}, [inputs, setInputs])
|
||||
|
||||
const changeFlattenOutput = useCallback((value: boolean) => {
|
||||
const newInputs = produce(inputs, (draft) => {
|
||||
draft.flatten_output = value
|
||||
})
|
||||
setInputs(newInputs)
|
||||
}, [inputs, setInputs])
|
||||
|
||||
return {
|
||||
readOnly,
|
||||
inputs,
|
||||
@@ -109,6 +117,7 @@ const useConfig = (id: string, payload: IterationNodeType) => {
|
||||
changeParallel,
|
||||
changeErrorResponseMode,
|
||||
changeParallelNums,
|
||||
changeFlattenOutput,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user