(
- {t('flowNum')}
+ {t('flow.flowNum')}
-
+
)}
/>
)}
- {[ListOperations.Sort].includes(operations as ListOperations) && (
+ {showSortMethod && (
)}
- {[ListOperations.Filter].includes(operations as ListOperations) && (
+ {showFilter && (
diff --git a/web/src/pages/agent/form/variable-assigner-form/dynamic-variables.tsx b/web/src/pages/agent/form/variable-assigner-form/dynamic-variables.tsx
index 8a01a7c07..4e6810a96 100644
--- a/web/src/pages/agent/form/variable-assigner-form/dynamic-variables.tsx
+++ b/web/src/pages/agent/form/variable-assigner-form/dynamic-variables.tsx
@@ -19,6 +19,7 @@ import {
VariableAssignerLogicalOperator,
} from '../../constant';
import { useGetVariableLabelOrTypeByValue } from '../../hooks/use-get-begin-query';
+import { getArrayElementType } from '../../utils';
import { DynamicFormHeader } from '../components/dynamic-fom-header';
import { QueryVariable } from '../components/query-variable';
import { useBuildLogicalOptions } from './use-build-logical-options';
@@ -152,9 +153,13 @@ export function DynamicVariables({
} else if (
logicalOperator === VariableAssignerLogicalArrayOperator.Append
) {
- const subType = type.match(/<([^>]+)>/).at(1);
+ const subType = getArrayElementType(type);
return (
-
+
);
}
},
diff --git a/web/src/pages/agent/form/variable-assigner-form/use-build-logical-options.ts b/web/src/pages/agent/form/variable-assigner-form/use-build-logical-options.ts
index a27ea20d5..a7f960e98 100644
--- a/web/src/pages/agent/form/variable-assigner-form/use-build-logical-options.ts
+++ b/web/src/pages/agent/form/variable-assigner-form/use-build-logical-options.ts
@@ -1,26 +1,57 @@
import { buildOptions } from '@/utils/form';
+import { camelCase } from 'lodash';
import { useCallback } from 'react';
+import { useTranslation } from 'react-i18next';
import {
JsonSchemaDataType,
VariableAssignerLogicalArrayOperator,
VariableAssignerLogicalNumberOperator,
+ VariableAssignerLogicalNumberOperatorLabelMap,
VariableAssignerLogicalOperator,
} from '../../constant';
export function useBuildLogicalOptions() {
- const buildLogicalOptions = useCallback((type: string) => {
- if (
- type?.toLowerCase().startsWith(JsonSchemaDataType.Array.toLowerCase())
- ) {
- return buildOptions(VariableAssignerLogicalArrayOperator);
- }
+ const { t } = useTranslation();
- if (type === JsonSchemaDataType.Number) {
- return buildOptions(VariableAssignerLogicalNumberOperator);
- }
+ const buildVariableAssignerLogicalOptions = useCallback(
+ (record: Record) => {
+ return buildOptions(
+ record,
+ t,
+ 'flow.variableAssignerLogicalOperatorOptions',
+ true,
+ );
+ },
+ [t],
+ );
- return buildOptions(VariableAssignerLogicalOperator);
- }, []);
+ const buildLogicalOptions = useCallback(
+ (type: string) => {
+ if (
+ type?.toLowerCase().startsWith(JsonSchemaDataType.Array.toLowerCase())
+ ) {
+ return buildVariableAssignerLogicalOptions(
+ VariableAssignerLogicalArrayOperator,
+ );
+ }
+
+ if (type === JsonSchemaDataType.Number) {
+ return Object.values(VariableAssignerLogicalNumberOperator).map(
+ (val) => ({
+ label: t(
+ `flow.variableAssignerLogicalOperatorOptions.${camelCase(VariableAssignerLogicalNumberOperatorLabelMap[val as keyof typeof VariableAssignerLogicalNumberOperatorLabelMap] || val)}`,
+ ),
+ value: val,
+ }),
+ );
+ }
+
+ return buildVariableAssignerLogicalOptions(
+ VariableAssignerLogicalOperator,
+ );
+ },
+ [buildVariableAssignerLogicalOptions, t],
+ );
return {
buildLogicalOptions,
diff --git a/web/src/pages/agent/gobal-variable-sheet/constant.ts b/web/src/pages/agent/gobal-variable-sheet/constant.ts
index fc668e330..72a7d6342 100644
--- a/web/src/pages/agent/gobal-variable-sheet/constant.ts
+++ b/web/src/pages/agent/gobal-variable-sheet/constant.ts
@@ -1,6 +1,8 @@
import { FormFieldConfig, FormFieldType } from '@/components/dynamic-form';
import { buildSelectOptions } from '@/utils/component-util';
import { t } from 'i18next';
+import { TypesWithArray } from '../constant';
+export { TypesWithArray } from '../constant';
// const TypesWithoutArray = Object.values(JsonSchemaDataType).filter(
// (item) => item !== JsonSchemaDataType.Array,
// );
@@ -9,17 +11,6 @@ import { t } from 'i18next';
// ...TypesWithoutArray.map((item) => `array<${item}>`),
// ];
-export enum TypesWithArray {
- String = 'string',
- Number = 'number',
- Boolean = 'boolean',
- Object = 'object',
- ArrayString = 'array',
- ArrayNumber = 'array',
- ArrayBoolean = 'array',
- ArrayObject = 'array