mirror of
https://github.com/langgenius/dify.git
synced 2026-05-13 08:57:28 +08:00
feat: file arrary sub variable select
This commit is contained in:
parent
91c0657cf6
commit
b50e94d681
@ -461,7 +461,7 @@ export const FILE_STRUCT: Var[] = [
|
|||||||
type: VarType.string,
|
type: VarType.string,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
variable: 'mimetype',
|
variable: 'mime_type',
|
||||||
type: VarType.string,
|
type: VarType.string,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -93,6 +93,8 @@ const ConditionItem = ({
|
|||||||
}, [condition, doUpdateCondition])
|
}, [condition, doUpdateCondition])
|
||||||
|
|
||||||
const handleUpdateConditionValue = useCallback((value: string) => {
|
const handleUpdateConditionValue = useCallback((value: string) => {
|
||||||
|
if (value === condition.value)
|
||||||
|
return
|
||||||
const newCondition = {
|
const newCondition = {
|
||||||
...condition,
|
...condition,
|
||||||
value,
|
value,
|
||||||
@ -109,16 +111,28 @@ const ConditionItem = ({
|
|||||||
doUpdateCondition(newCondition)
|
doUpdateCondition(newCondition)
|
||||||
}, [condition, doUpdateCondition])
|
}, [condition, doUpdateCondition])
|
||||||
|
|
||||||
|
const isSubVariable = condition.varType === VarType.arrayFile && [ComparisonOperator.contains, ComparisonOperator.notContains].includes(condition.comparison_operator!)
|
||||||
|
const fileAttr = useMemo(() => {
|
||||||
|
if (file)
|
||||||
|
return file
|
||||||
|
if (isSubVariableKey) {
|
||||||
|
return {
|
||||||
|
key: condition.key!,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined
|
||||||
|
}, [condition.key, file, isSubVariableKey])
|
||||||
|
|
||||||
const isSelect = condition.comparison_operator && [ComparisonOperator.in, ComparisonOperator.notIn, ComparisonOperator.allOf].includes(condition.comparison_operator)
|
const isSelect = condition.comparison_operator && [ComparisonOperator.in, ComparisonOperator.notIn, ComparisonOperator.allOf].includes(condition.comparison_operator)
|
||||||
const selectOptions = useMemo(() => {
|
const selectOptions = useMemo(() => {
|
||||||
if (isSelect) {
|
if (isSelect) {
|
||||||
if (file?.key === 'type' || condition.comparison_operator === ComparisonOperator.allOf) {
|
if (fileAttr?.key === 'type' || condition.comparison_operator === ComparisonOperator.allOf) {
|
||||||
return FILE_TYPE_OPTIONS.map(item => ({
|
return FILE_TYPE_OPTIONS.map(item => ({
|
||||||
name: t(`${optionNameI18NPrefix}.${item.i18nKey}`),
|
name: t(`${optionNameI18NPrefix}.${item.i18nKey}`),
|
||||||
value: item.value,
|
value: item.value,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
if (file?.key === 'transfer_method') {
|
if (fileAttr?.key === 'transfer_method') {
|
||||||
return TRANSFER_METHOD.map(item => ({
|
return TRANSFER_METHOD.map(item => ({
|
||||||
name: t(`${optionNameI18NPrefix}.${item.i18nKey}`),
|
name: t(`${optionNameI18NPrefix}.${item.i18nKey}`),
|
||||||
value: item.value,
|
value: item.value,
|
||||||
@ -127,9 +141,8 @@ const ConditionItem = ({
|
|||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
return []
|
return []
|
||||||
}, [condition.comparison_operator, file?.key, isSelect, t])
|
}, [condition.comparison_operator, fileAttr?.key, isSelect, t])
|
||||||
|
|
||||||
const isSubVariable = condition.varType === VarType.arrayFile && [ComparisonOperator.contains, ComparisonOperator.notContains].includes(condition.comparison_operator!)
|
|
||||||
const isNotInput = isSelect || isSubVariable
|
const isNotInput = isSelect || isSubVariable
|
||||||
|
|
||||||
const isSubVarSelect = isSubVariableKey
|
const isSubVarSelect = isSubVariableKey
|
||||||
@ -145,6 +158,8 @@ const ConditionItem = ({
|
|||||||
draft.varType = VarType.number
|
draft.varType = VarType.number
|
||||||
else
|
else
|
||||||
draft.varType = VarType.string
|
draft.varType = VarType.string
|
||||||
|
|
||||||
|
draft.value = ''
|
||||||
draft.comparison_operator = getOperators(undefined, { key })[0]
|
draft.comparison_operator = getOperators(undefined, { key })[0]
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -202,7 +217,7 @@ const ConditionItem = ({
|
|||||||
varType={condition.varType}
|
varType={condition.varType}
|
||||||
value={condition.comparison_operator}
|
value={condition.comparison_operator}
|
||||||
onSelect={handleUpdateConditionOperator}
|
onSelect={handleUpdateConditionOperator}
|
||||||
file={isSubVariableKey ? { key: condition.key! } : file}
|
file={fileAttr}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{
|
{
|
||||||
|
|||||||
@ -54,7 +54,7 @@ export const getOperators = (type?: VarType, file?: { key: string }) => {
|
|||||||
ComparisonOperator.contains,
|
ComparisonOperator.contains,
|
||||||
ComparisonOperator.notContains,
|
ComparisonOperator.notContains,
|
||||||
]
|
]
|
||||||
case 'mimetype':
|
case 'mime_type':
|
||||||
return [
|
return [
|
||||||
ComparisonOperator.contains,
|
ComparisonOperator.contains,
|
||||||
ComparisonOperator.notContains,
|
ComparisonOperator.notContains,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user