feat: iteration single run

pull/21369/head
Joel 1 year ago
parent a1495554cc
commit 2ec1c34147

@ -170,11 +170,12 @@ const useLastRun = <T>({
const valuesArr = forms.map((form) => {
const values: Record<string, boolean> = {}
form.inputs.forEach(({ variable }) => {
if(!variable.includes('.') && !singleRunParams?.getDependentVar)
form.inputs.forEach(({ variable, getVarValueFromDependent }) => {
const isGetValueFromDependent = getVarValueFromDependent || !variable.includes('.')
if(isGetValueFromDependent && !singleRunParams?.getDependentVar)
return
const selector = !variable.includes('.') ? (singleRunParams?.getDependentVar(variable) || []) : variable.slice(1, -1).split('.')
const selector = isGetValueFromDependent ? (singleRunParams?.getDependentVar(variable) || []) : variable.slice(1, -1).split('.')
if(!selector || selector.length === 0)
return
const [nodeId, varName] = selector.slice(0, 2)

@ -154,8 +154,8 @@ const useOneStepRun = <T>({
runInputDataRef.current = data
setRunInputData(data)
}, [])
const iterationTimes = iteratorInputKey ? runInputData[iteratorInputKey].length : 0
const loopTimes = loopInputKey ? runInputData[loopInputKey].length : 0
const iterationTimes = iteratorInputKey ? runInputData[iteratorInputKey]?.length : 0
const loopTimes = loopInputKey ? runInputData[loopInputKey]?.length : 0
const store = useStoreApi()
const workflowStore = useWorkflowStore()

@ -24,6 +24,7 @@ type Params = {
}
const useSingleRunFormParams = ({
id,
payload,
runInputData,
toVarInputs,
setRunInputData,
@ -121,6 +122,7 @@ const useSingleRunFormParams = ({
variable: iteratorInputKey,
type: InputVarType.iterator,
required: false,
getVarValueFromDependent: true,
}],
values: { [iteratorInputKey]: iterator },
onChange: (keyValue: Record<string, any>) => setIterator(keyValue[iteratorInputKey]),
@ -129,9 +131,20 @@ const useSingleRunFormParams = ({
}, [inputVarValues, iterator, iteratorInputKey, setInputVarValues, setIterator, t, usedOutVars])
const nodeInfo = formatTracing(iterationRunResult, t)[0]
const getDependentVars = () => {
return [payload.iterator_selector]
}
const getDependentVar = (variable: string) => {
if(variable === iteratorInputKey)
return payload.iterator_selector
}
return {
forms,
nodeInfo,
getDependentVars,
getDependentVar,
}
}

@ -197,6 +197,7 @@ export type InputVar = {
hint?: string
options?: string[]
value_selector?: ValueSelector
getVarValueFromDependent?: boolean
} & Partial<UploadFileSetting>
export type ModelConfig = {

Loading…
Cancel
Save