mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 13:03:50 +00:00
fix: global variable key repeat & value type (#2540)
This commit is contained in:
7
packages/global/core/app/type.d.ts
vendored
7
packages/global/core/app/type.d.ts
vendored
@@ -1,7 +1,11 @@
|
|||||||
import type { FlowNodeTemplateType, StoreNodeItemType } from '../workflow/type/node';
|
import type { FlowNodeTemplateType, StoreNodeItemType } from '../workflow/type/node';
|
||||||
import { AppTypeEnum } from './constants';
|
import { AppTypeEnum } from './constants';
|
||||||
import { PermissionTypeEnum } from '../../support/permission/constant';
|
import { PermissionTypeEnum } from '../../support/permission/constant';
|
||||||
import { NodeInputKeyEnum, VariableInputEnum } from '../workflow/constants';
|
import {
|
||||||
|
NodeInputKeyEnum,
|
||||||
|
VariableInputEnum,
|
||||||
|
WorkflowIOValueTypeEnum
|
||||||
|
} from '../workflow/constants';
|
||||||
import { SelectedDatasetType } from '../workflow/api';
|
import { SelectedDatasetType } from '../workflow/api';
|
||||||
import { DatasetSearchModeEnum } from '../dataset/constants';
|
import { DatasetSearchModeEnum } from '../dataset/constants';
|
||||||
import { TeamTagSchema as TeamTagsSchemaType } from '@fastgpt/global/support/user/team/type.d';
|
import { TeamTagSchema as TeamTagsSchemaType } from '@fastgpt/global/support/user/team/type.d';
|
||||||
@@ -111,6 +115,7 @@ export type VariableItemType = {
|
|||||||
required: boolean;
|
required: boolean;
|
||||||
maxLen: number;
|
maxLen: number;
|
||||||
enums: { value: string }[];
|
enums: { value: string }[];
|
||||||
|
valueType: WorkflowIOValueTypeEnum;
|
||||||
};
|
};
|
||||||
// tts
|
// tts
|
||||||
export type AppTTSConfigType = {
|
export type AppTTSConfigType = {
|
||||||
|
@@ -914,6 +914,7 @@
|
|||||||
"add option": "Add option",
|
"add option": "Add option",
|
||||||
"input type": "Text",
|
"input type": "Text",
|
||||||
"key": "Variable key",
|
"key": "Variable key",
|
||||||
|
"key already exists": "Key already exist",
|
||||||
"key is required": "Variable key is required",
|
"key is required": "Variable key is required",
|
||||||
"select type": "Dropdown single select",
|
"select type": "Dropdown single select",
|
||||||
"text max length": "Maximum length",
|
"text max length": "Maximum length",
|
||||||
|
@@ -914,6 +914,7 @@
|
|||||||
"add option": "添加选项",
|
"add option": "添加选项",
|
||||||
"input type": "文本",
|
"input type": "文本",
|
||||||
"key": "变量 key",
|
"key": "变量 key",
|
||||||
|
"key already exists": "Key 已经存在",
|
||||||
"key is required": "变量 key 是必须的",
|
"key is required": "变量 key 是必须的",
|
||||||
"select type": "下拉单选",
|
"select type": "下拉单选",
|
||||||
"text max length": "最大长度",
|
"text max length": "最大长度",
|
||||||
|
@@ -23,7 +23,11 @@ import {
|
|||||||
useDisclosure
|
useDisclosure
|
||||||
} from '@chakra-ui/react';
|
} from '@chakra-ui/react';
|
||||||
import { SmallAddIcon } from '@chakra-ui/icons';
|
import { SmallAddIcon } from '@chakra-ui/icons';
|
||||||
import { VariableInputEnum, variableMap } from '@fastgpt/global/core/workflow/constants';
|
import {
|
||||||
|
VariableInputEnum,
|
||||||
|
variableMap,
|
||||||
|
WorkflowIOValueTypeEnum
|
||||||
|
} from '@fastgpt/global/core/workflow/constants';
|
||||||
import type { VariableItemType } from '@fastgpt/global/core/app/type.d';
|
import type { VariableItemType } from '@fastgpt/global/core/app/type.d';
|
||||||
import MyIcon from '@fastgpt/web/components/common/Icon';
|
import MyIcon from '@fastgpt/web/components/common/Icon';
|
||||||
import { useForm } from 'react-hook-form';
|
import { useForm } from 'react-hook-form';
|
||||||
@@ -310,6 +314,27 @@ const VariableEdit = ({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check repeat key
|
||||||
|
const existingVariable = variables.find(
|
||||||
|
(item) => item.key === variable.key && item.id !== variable.id
|
||||||
|
);
|
||||||
|
if (existingVariable) {
|
||||||
|
toast({
|
||||||
|
status: 'warning',
|
||||||
|
title: t('common:core.module.variable.key already exists')
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// set valuetype based on variable.type
|
||||||
|
variable.valueType = valueTypeMap[variable.type];
|
||||||
|
|
||||||
|
// set default required value based on variableType
|
||||||
|
if (variable.type === VariableInputEnum.custom) {
|
||||||
|
variable.required = false;
|
||||||
|
}
|
||||||
|
|
||||||
const onChangeVariable = [...variables];
|
const onChangeVariable = [...variables];
|
||||||
// update
|
// update
|
||||||
if (variable.id) {
|
if (variable.id) {
|
||||||
@@ -344,9 +369,16 @@ export const defaultVariable: VariableItemType = {
|
|||||||
type: VariableInputEnum.input,
|
type: VariableInputEnum.input,
|
||||||
required: true,
|
required: true,
|
||||||
maxLen: 50,
|
maxLen: 50,
|
||||||
enums: [{ value: '' }]
|
enums: [{ value: '' }],
|
||||||
|
valueType: WorkflowIOValueTypeEnum.string
|
||||||
};
|
};
|
||||||
export const addVariable = () => {
|
export const addVariable = () => {
|
||||||
const newVariable = { ...defaultVariable, key: '', id: '' };
|
const newVariable = { ...defaultVariable, key: '', id: '' };
|
||||||
return newVariable;
|
return newVariable;
|
||||||
};
|
};
|
||||||
|
const valueTypeMap = {
|
||||||
|
[VariableInputEnum.input]: WorkflowIOValueTypeEnum.string,
|
||||||
|
[VariableInputEnum.select]: WorkflowIOValueTypeEnum.string,
|
||||||
|
[VariableInputEnum.textarea]: WorkflowIOValueTypeEnum.string,
|
||||||
|
[VariableInputEnum.custom]: WorkflowIOValueTypeEnum.any
|
||||||
|
};
|
||||||
|
@@ -374,10 +374,7 @@ export const getWorkflowGlobalVariables = ({
|
|||||||
systemConfigNode: getGuideModule(nodes),
|
systemConfigNode: getGuideModule(nodes),
|
||||||
isPublicFetch: true
|
isPublicFetch: true
|
||||||
})?.variables || []
|
})?.variables || []
|
||||||
).map((item) => ({
|
);
|
||||||
...item,
|
|
||||||
valueType: WorkflowIOValueTypeEnum.any
|
|
||||||
}));
|
|
||||||
|
|
||||||
const systemVariables = getSystemVariables(t);
|
const systemVariables = getSystemVariables(t);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user