diff --git a/web/app/components/workflow/nodes/if-else/node.tsx b/web/app/components/workflow/nodes/if-else/node.tsx
index 6a59e8496e..39738e2903 100644
--- a/web/app/components/workflow/nodes/if-else/node.tsx
+++ b/web/app/components/workflow/nodes/if-else/node.tsx
@@ -1,8 +1,40 @@
import type { FC } from 'react'
+import { useTranslation } from 'react-i18next'
+import { mockData } from './mock'
+import { ComparisonOperator } from './types'
+import { isEmptyRelatedOperator } from './utils'
+import { Variable02 } from '@/app/components/base/icons/src/vender/solid/development'
+const i18nPrefix = 'workflow.nodes.ifElse'
+
+const notTranslateKey = [
+ ComparisonOperator.equal, ComparisonOperator.notEqual,
+ ComparisonOperator.largerThan, ComparisonOperator.largerThanOrEqual,
+ ComparisonOperator.lessThan, ComparisonOperator.lessThanOrEqual,
+]
const Node: FC = () => {
+ const { t } = useTranslation()
+ const { conditions, logical_operator } = mockData
+
return (
-
if else
+
+
{t(`${i18nPrefix}.conditions`)}
+
+ {conditions.map((condition, i) => (
+
+
+
+ {condition.variable_selector.slice(-1)[0]}
+ {notTranslateKey.includes(condition.comparison_operator) ? condition.comparison_operator : t(`${i18nPrefix}.comparisonOperator.${condition.comparison_operator}`)}
+ {!isEmptyRelatedOperator(condition.comparison_operator) && {condition.value}}
+
+ {i !== conditions.length - 1 && (
+
{t(`${i18nPrefix}.${logical_operator}`)}
+ )}
+
+ ))}
+
+
)
}
diff --git a/web/app/components/workflow/nodes/if-else/utils.ts b/web/app/components/workflow/nodes/if-else/utils.ts
new file mode 100644
index 0000000000..850c0168cd
--- /dev/null
+++ b/web/app/components/workflow/nodes/if-else/utils.ts
@@ -0,0 +1,5 @@
+import { ComparisonOperator } from './types'
+
+export const isEmptyRelatedOperator = (operator: ComparisonOperator) => {
+ return [ComparisonOperator.empty, ComparisonOperator.notEmpty, ComparisonOperator.isNull, ComparisonOperator.isNotNull].includes(operator)
+}
diff --git a/web/i18n/lang/workflow.en.ts b/web/i18n/lang/workflow.en.ts
index f8cb2b9701..4b8d779c99 100644
--- a/web/i18n/lang/workflow.en.ts
+++ b/web/i18n/lang/workflow.en.ts
@@ -43,6 +43,23 @@ const translation = {
output: 'Transformed content',
},
},
+ ifElse: {
+ conditions: 'Conditions',
+ and: 'and',
+ or: 'or',
+ comparisonOperator: {
+ 'contains': 'contains',
+ 'not contains': 'not contains',
+ 'start with': 'start with',
+ 'end with': 'end with',
+ 'is': 'is',
+ 'is not': 'is not',
+ 'empty': 'empty',
+ 'not empty': 'not empty',
+ 'null': 'is null',
+ 'not null': 'is not null',
+ },
+ },
},
}
diff --git a/web/i18n/lang/workflow.zh.ts b/web/i18n/lang/workflow.zh.ts
index 4fd1f1ef7a..9384c18bac 100644
--- a/web/i18n/lang/workflow.zh.ts
+++ b/web/i18n/lang/workflow.zh.ts
@@ -43,6 +43,23 @@ const translation = {
output: '转换后内容',
},
},
+ ifElse: {
+ conditions: '条件',
+ and: '且',
+ or: '或',
+ comparisonOperator: {
+ 'contains': '包含',
+ 'not contains': '不包含',
+ 'start with': '开始是',
+ 'end with': '结束是',
+ 'is': '是',
+ 'is not': '不是',
+ 'empty': '为空',
+ 'not empty': '不为空',
+ 'null': '空',
+ 'not null': '不为空',
+ },
+ },
},
}