diff --git a/web/app/components/workflow/nodes/if-else/components/condition-files-list-value.tsx b/web/app/components/workflow/nodes/if-else/components/condition-files-list-value.tsx index 35e75dfea1..f21a3fac10 100644 --- a/web/app/components/workflow/nodes/if-else/components/condition-files-list-value.tsx +++ b/web/app/components/workflow/nodes/if-else/components/condition-files-list-value.tsx @@ -59,7 +59,7 @@ const ConditionValue = ({ const selectName = useCallback((c: Condition) => { const isSelect = c.comparison_operator === ComparisonOperator.in || c.comparison_operator === ComparisonOperator.notIn if (isSelect) { - const name = [...FILE_TYPE_OPTIONS, ...TRANSFER_METHOD].filter(item => item.value === c.value)[0] + const name = [...FILE_TYPE_OPTIONS, ...TRANSFER_METHOD].filter(item => item.value === (Array.isArray(c.value) ? c.value[0] : c.value))[0] return name ? t(`workflow.nodes.ifElse.optionName.${name.i18nKey}`).replace(/{{#([^#]*)#}}/g, (a, b) => { const arr: string[] = b.split('.') diff --git a/web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx b/web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx index e73654f974..c56ecf4a1a 100644 --- a/web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx +++ b/web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx @@ -107,16 +107,6 @@ const ConditionItem = ({ doUpdateCondition(newCondition) }, [condition, doUpdateCondition]) - const handleUpdateConditionValue = useCallback((value: string) => { - if (value === condition.value) - return - const newCondition = { - ...condition, - value, - } - doUpdateCondition(newCondition) - }, [condition, doUpdateCondition]) - const handleUpdateConditionNumberVarType = useCallback((numberVarType: NumberVarType) => { const newCondition = { ...condition, @@ -138,6 +128,18 @@ const ConditionItem = ({ return undefined }, [condition.key, file, isSubVariableKey]) + const isTransferMethod = fileAttr?.key === 'transfer_method' + + const handleUpdateConditionValue = useCallback((value: string) => { + if (value === condition.value || (isTransferMethod && value === condition.value?.[0])) + return + const newCondition = { + ...condition, + value: isTransferMethod ? [value] : value, + } + doUpdateCondition(newCondition) + }, [condition, doUpdateCondition, fileAttr]) + const isSelect = condition.comparison_operator && [ComparisonOperator.in, ComparisonOperator.notIn].includes(condition.comparison_operator) const selectOptions = useMemo(() => { if (isSelect) { @@ -242,7 +244,7 @@ const ConditionItem = ({