mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-07-09 22:01:47 +08:00
chatflow/workflow add field required (#18892)
This commit is contained in:
parent
0e0ec4691a
commit
e3daef19e7
@ -17,6 +17,7 @@ type Props = {
|
|||||||
children?: React.JSX.Element | string | null
|
children?: React.JSX.Element | string | null
|
||||||
operations?: React.JSX.Element
|
operations?: React.JSX.Element
|
||||||
inline?: boolean
|
inline?: boolean
|
||||||
|
required?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
const Field: FC<Props> = ({
|
const Field: FC<Props> = ({
|
||||||
@ -28,6 +29,7 @@ const Field: FC<Props> = ({
|
|||||||
operations,
|
operations,
|
||||||
inline,
|
inline,
|
||||||
supportFold,
|
supportFold,
|
||||||
|
required,
|
||||||
}) => {
|
}) => {
|
||||||
const [fold, {
|
const [fold, {
|
||||||
toggle: toggleFold,
|
toggle: toggleFold,
|
||||||
@ -38,7 +40,9 @@ const Field: FC<Props> = ({
|
|||||||
onClick={() => supportFold && toggleFold()}
|
onClick={() => supportFold && toggleFold()}
|
||||||
className={cn('flex items-center justify-between', supportFold && 'cursor-pointer')}>
|
className={cn('flex items-center justify-between', supportFold && 'cursor-pointer')}>
|
||||||
<div className='flex h-6 items-center'>
|
<div className='flex h-6 items-center'>
|
||||||
<div className={cn(isSubTitle ? 'system-xs-medium-uppercase text-text-tertiary' : 'system-sm-semibold-uppercase text-text-secondary')}>{title}</div>
|
<div className={cn(isSubTitle ? 'system-xs-medium-uppercase text-text-tertiary' : 'system-sm-semibold-uppercase text-text-secondary')}>
|
||||||
|
{title} {required && <span className='text-text-destructive'>*</span>}
|
||||||
|
</div>
|
||||||
{tooltip && (
|
{tooltip && (
|
||||||
<Tooltip
|
<Tooltip
|
||||||
popupContent={tooltip}
|
popupContent={tooltip}
|
||||||
|
@ -81,7 +81,11 @@ const AgentPanel: FC<NodePanelProps<AgentNodeType>> = (props) => {
|
|||||||
const resetEditor = useStore(s => s.setControlPromptEditorRerenderKey)
|
const resetEditor = useStore(s => s.setControlPromptEditorRerenderKey)
|
||||||
|
|
||||||
return <div className='my-2'>
|
return <div className='my-2'>
|
||||||
<Field title={t('workflow.nodes.agent.strategy.label')} className='px-4 py-2' tooltip={t('workflow.nodes.agent.strategy.tooltip')} >
|
<Field
|
||||||
|
required
|
||||||
|
title={t('workflow.nodes.agent.strategy.label')}
|
||||||
|
className='px-4 py-2'
|
||||||
|
tooltip={t('workflow.nodes.agent.strategy.tooltip')} >
|
||||||
<AgentStrategy
|
<AgentStrategy
|
||||||
strategy={inputs.agent_strategy_name ? {
|
strategy={inputs.agent_strategy_name ? {
|
||||||
agent_strategy_provider_name: inputs.agent_strategy_provider_name!,
|
agent_strategy_provider_name: inputs.agent_strategy_provider_name!,
|
||||||
|
@ -117,8 +117,8 @@ const Panel: FC<NodePanelProps<CodeNodeType>> = ({
|
|||||||
operations={
|
operations={
|
||||||
<AddButton onClick={handleAddOutputVariable} />
|
<AddButton onClick={handleAddOutputVariable} />
|
||||||
}
|
}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
|
|
||||||
<OutputVarList
|
<OutputVarList
|
||||||
readonly={readOnly}
|
readonly={readOnly}
|
||||||
outputs={inputs.outputs}
|
outputs={inputs.outputs}
|
||||||
|
@ -64,6 +64,7 @@ const Panel: FC<NodePanelProps<DocExtractorNodeType>> = ({
|
|||||||
<div className='space-y-4 px-4 pb-4'>
|
<div className='space-y-4 px-4 pb-4'>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.inputVar`)}
|
title={t(`${i18nPrefix}.inputVar`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<>
|
<>
|
||||||
<VarReferencePicker
|
<VarReferencePicker
|
||||||
|
@ -69,6 +69,7 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({
|
|||||||
<div className='space-y-4 px-4 pb-4'>
|
<div className='space-y-4 px-4 pb-4'>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.api`)}
|
title={t(`${i18nPrefix}.api`)}
|
||||||
|
required
|
||||||
operations={
|
operations={
|
||||||
<div className='flex'>
|
<div className='flex'>
|
||||||
<div
|
<div
|
||||||
@ -126,6 +127,7 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({
|
|||||||
</Field>
|
</Field>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.body`)}
|
title={t(`${i18nPrefix}.body`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<EditBody
|
<EditBody
|
||||||
nodeId={id}
|
nodeId={id}
|
||||||
|
@ -73,6 +73,7 @@ const Panel: FC<NodePanelProps<IterationNodeType>> = ({
|
|||||||
<div className='space-y-4 px-4 pb-4'>
|
<div className='space-y-4 px-4 pb-4'>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.input`)}
|
title={t(`${i18nPrefix}.input`)}
|
||||||
|
required
|
||||||
operations={(
|
operations={(
|
||||||
<div className='system-2xs-medium-uppercase flex h-[18px] items-center rounded-[5px] border border-divider-deep px-1 capitalize text-text-tertiary'>Array</div>
|
<div className='system-2xs-medium-uppercase flex h-[18px] items-center rounded-[5px] border border-divider-deep px-1 capitalize text-text-tertiary'>Array</div>
|
||||||
)}
|
)}
|
||||||
@ -91,6 +92,7 @@ const Panel: FC<NodePanelProps<IterationNodeType>> = ({
|
|||||||
<div className='mt-2 space-y-4 px-4 pb-4'>
|
<div className='mt-2 space-y-4 px-4 pb-4'>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.output`)}
|
title={t(`${i18nPrefix}.output`)}
|
||||||
|
required
|
||||||
operations={(
|
operations={(
|
||||||
<div className='system-2xs-medium-uppercase flex h-[18px] items-center rounded-[5px] border border-divider-deep px-1 capitalize text-text-tertiary'>Array</div>
|
<div className='system-2xs-medium-uppercase flex h-[18px] items-center rounded-[5px] border border-divider-deep px-1 capitalize text-text-tertiary'>Array</div>
|
||||||
)}
|
)}
|
||||||
|
@ -81,6 +81,7 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
|
|||||||
{/* {JSON.stringify(inputs, null, 2)} */}
|
{/* {JSON.stringify(inputs, null, 2)} */}
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.queryVariable`)}
|
title={t(`${i18nPrefix}.queryVariable`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<VarReferencePicker
|
<VarReferencePicker
|
||||||
nodeId={id}
|
nodeId={id}
|
||||||
@ -94,6 +95,7 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
|
|||||||
|
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.knowledge`)}
|
title={t(`${i18nPrefix}.knowledge`)}
|
||||||
|
required
|
||||||
operations={
|
operations={
|
||||||
<div className='flex items-center space-x-1'>
|
<div className='flex items-center space-x-1'>
|
||||||
<RetrievalConfig
|
<RetrievalConfig
|
||||||
|
@ -46,6 +46,7 @@ const Panel: FC<NodePanelProps<ListFilterNodeType>> = ({
|
|||||||
<div className='space-y-4 px-4'>
|
<div className='space-y-4 px-4'>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.inputVar`)}
|
title={t(`${i18nPrefix}.inputVar`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<VarReferencePicker
|
<VarReferencePicker
|
||||||
readonly={readOnly}
|
readonly={readOnly}
|
||||||
|
@ -147,6 +147,7 @@ const Panel: FC<NodePanelProps<LLMNodeType>> = ({
|
|||||||
<div className='space-y-4 px-4 pb-4'>
|
<div className='space-y-4 px-4 pb-4'>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.model`)}
|
title={t(`${i18nPrefix}.model`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<ModelParameterModal
|
<ModelParameterModal
|
||||||
popupClassName='!w-[387px]'
|
popupClassName='!w-[387px]'
|
||||||
|
@ -115,6 +115,7 @@ const Panel: FC<NodePanelProps<ParameterExtractorNodeType>> = ({
|
|||||||
<div className='space-y-4 px-4'>
|
<div className='space-y-4 px-4'>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nCommonPrefix}.model`)}
|
title={t(`${i18nCommonPrefix}.model`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<ModelParameterModal
|
<ModelParameterModal
|
||||||
popupClassName='!w-[387px]'
|
popupClassName='!w-[387px]'
|
||||||
@ -133,6 +134,7 @@ const Panel: FC<NodePanelProps<ParameterExtractorNodeType>> = ({
|
|||||||
</Field>
|
</Field>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.inputVar`)}
|
title={t(`${i18nPrefix}.inputVar`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<>
|
<>
|
||||||
<VarReferencePicker
|
<VarReferencePicker
|
||||||
@ -157,6 +159,7 @@ const Panel: FC<NodePanelProps<ParameterExtractorNodeType>> = ({
|
|||||||
/>
|
/>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.extractParameters`)}
|
title={t(`${i18nPrefix}.extractParameters`)}
|
||||||
|
required
|
||||||
operations={
|
operations={
|
||||||
!readOnly
|
!readOnly
|
||||||
? (
|
? (
|
||||||
|
@ -103,6 +103,7 @@ const Panel: FC<NodePanelProps<QuestionClassifierNodeType>> = ({
|
|||||||
<div className='space-y-4 px-4'>
|
<div className='space-y-4 px-4'>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.model`)}
|
title={t(`${i18nPrefix}.model`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<ModelParameterModal
|
<ModelParameterModal
|
||||||
popupClassName='!w-[387px]'
|
popupClassName='!w-[387px]'
|
||||||
@ -121,6 +122,7 @@ const Panel: FC<NodePanelProps<QuestionClassifierNodeType>> = ({
|
|||||||
</Field>
|
</Field>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.inputVars`)}
|
title={t(`${i18nPrefix}.inputVars`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<VarReferencePicker
|
<VarReferencePicker
|
||||||
readonly={readOnly}
|
readonly={readOnly}
|
||||||
@ -143,6 +145,7 @@ const Panel: FC<NodePanelProps<QuestionClassifierNodeType>> = ({
|
|||||||
/>
|
/>
|
||||||
<Field
|
<Field
|
||||||
title={t(`${i18nPrefix}.class`)}
|
title={t(`${i18nPrefix}.class`)}
|
||||||
|
required
|
||||||
>
|
>
|
||||||
<ClassList
|
<ClassList
|
||||||
nodeId={id}
|
nodeId={id}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user