perf: change tool params type label & enum input conditional rendering (#2835)

This commit is contained in:
heheer
2024-09-28 18:00:22 +08:00
committed by shilin66
parent 942e6c0b08
commit 2dc6b760a3
2 changed files with 26 additions and 16 deletions

View File

@@ -3,7 +3,7 @@ import { Box, Button, Flex, Input, ModalBody, ModalFooter, Textarea } from '@cha
import { FlowNodeInputItemType } from '@fastgpt/global/core/workflow/type/io'; import { FlowNodeInputItemType } from '@fastgpt/global/core/workflow/type/io';
import MyModal from '@fastgpt/web/components/common/MyModal'; import MyModal from '@fastgpt/web/components/common/MyModal';
import MySelect from '@fastgpt/web/components/common/MySelect'; import MySelect from '@fastgpt/web/components/common/MySelect';
import React, { useCallback } from 'react'; import React, { useCallback, useMemo } from 'react';
import { useForm } from 'react-hook-form'; import { useForm } from 'react-hook-form';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { defaultEditFormData } from '../render/RenderToolInput/EditFieldModal'; import { defaultEditFormData } from '../render/RenderToolInput/EditFieldModal';
@@ -14,6 +14,7 @@ import { useToast } from '@fastgpt/web/hooks/useToast';
import { FlowNodeOutputTypeEnum } from '@fastgpt/global/core/workflow/node/constant'; import { FlowNodeOutputTypeEnum } from '@fastgpt/global/core/workflow/node/constant';
import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel';
import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip'; import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip';
import { WorkflowIOValueTypeEnum } from '@fastgpt/global/core/workflow/constants';
const ToolParamsEditModal = ({ const ToolParamsEditModal = ({
defaultValue = defaultEditFormData, defaultValue = defaultEditFormData,
@@ -106,6 +107,13 @@ const ToolParamsEditModal = ({
[toast] [toast]
); );
const showEnumInput = useMemo(() => {
return !(
valueType === WorkflowIOValueTypeEnum.boolean ||
valueType === WorkflowIOValueTypeEnum.arrayBoolean
);
}, [valueType]);
return ( return (
<MyModal isOpen iconSrc="modal/edit" title={t('workflow:tool_field')} onClose={onClose}> <MyModal isOpen iconSrc="modal/edit" title={t('workflow:tool_field')} onClose={onClose}>
<ModalBody> <ModalBody>
@@ -135,7 +143,7 @@ const ToolParamsEditModal = ({
placeholder={t('workflow:tool_params.params_name_placeholder')} placeholder={t('workflow:tool_params.params_name_placeholder')}
/> />
</Flex> </Flex>
<Flex alignItems={'center'} mb={5}> <Flex alignItems={'center'} mb={showEnumInput ? 5 : 0}>
<FormLabel flex={'0 0 80px'}>{t('workflow:tool_params.params_description')}</FormLabel> <FormLabel flex={'0 0 80px'}>{t('workflow:tool_params.params_description')}</FormLabel>
<Input <Input
bg={'myGray.50'} bg={'myGray.50'}
@@ -145,17 +153,19 @@ const ToolParamsEditModal = ({
placeholder={t('workflow:tool_params.params_description_placeholder')} placeholder={t('workflow:tool_params.params_description_placeholder')}
/> />
</Flex> </Flex>
<Box> {showEnumInput && (
<Flex alignItems={'center'} mb={2}> <Box>
<FormLabel>{t('workflow:tool_params.enum_values')}</FormLabel> <Flex alignItems={'center'} mb={2}>
<QuestionTip label={t('workflow:tool_params.enum_values_tip')} /> <FormLabel>{t('workflow:tool_params.enum_values')}</FormLabel>
</Flex> <QuestionTip label={t('workflow:tool_params.enum_values_tip')} />
<Textarea </Flex>
bg={'myGray.50'} <Textarea
{...register('enum')} bg={'myGray.50'}
placeholder={t('workflow:tool_params.enum_placeholder')} {...register('enum')}
/> placeholder={t('workflow:tool_params.enum_placeholder')}
</Box> />
</Box>
)}
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button variant={'whiteBase'} mr={2} onClick={onClose}> <Button variant={'whiteBase'} mr={2} onClick={onClose}>

View File

@@ -14,15 +14,15 @@ export const fnValueTypeSelect = [
value: WorkflowIOValueTypeEnum.boolean value: WorkflowIOValueTypeEnum.boolean
}, },
{ {
label: WorkflowIOValueTypeEnum.arrayString, label: 'array<string>',
value: WorkflowIOValueTypeEnum.arrayString value: WorkflowIOValueTypeEnum.arrayString
}, },
{ {
label: WorkflowIOValueTypeEnum.arrayNumber, label: 'array<number>',
value: WorkflowIOValueTypeEnum.arrayNumber value: WorkflowIOValueTypeEnum.arrayNumber
}, },
{ {
label: WorkflowIOValueTypeEnum.arrayBoolean, label: 'array<boolean>',
value: WorkflowIOValueTypeEnum.arrayBoolean value: WorkflowIOValueTypeEnum.arrayBoolean
} }
]; ];