feat: file array variable choose vars

This commit is contained in:
Joel 2024-08-21 17:28:41 +08:00
parent 1bcb30647f
commit 8fbdaa604c
3 changed files with 22 additions and 4 deletions

View File

@ -29,6 +29,7 @@ import VariableTag from '@/app/components/workflow/nodes/_base/components/variab
import type { import type {
Node, Node,
NodeOutPutVar, NodeOutPutVar,
Var,
} from '@/app/components/workflow/types' } from '@/app/components/workflow/types'
import { VarType } from '@/app/components/workflow/types' import { VarType } from '@/app/components/workflow/types'
import cn from '@/utils/classnames' import cn from '@/utils/classnames'
@ -51,9 +52,11 @@ type ConditionItemProps = {
onRemoveSubVariableCondition?: handleRemoveSubVariableCondition onRemoveSubVariableCondition?: handleRemoveSubVariableCondition
onUpdateSubVariableCondition?: HandleUpdateSubVariableCondition onUpdateSubVariableCondition?: HandleUpdateSubVariableCondition
onToggleSubVariableConditionLogicalOperator?: HandleToggleSubVariableConditionLogicalOperator onToggleSubVariableConditionLogicalOperator?: HandleToggleSubVariableConditionLogicalOperator
nodeId: string
nodesOutputVars: NodeOutPutVar[] nodesOutputVars: NodeOutPutVar[]
availableNodes: Node[] availableNodes: Node[]
numberVariables: NodeOutPutVar[] numberVariables: NodeOutPutVar[]
filterVar: (varPayload: Var) => boolean
} }
const ConditionItem = ({ const ConditionItem = ({
className, className,
@ -69,9 +72,11 @@ const ConditionItem = ({
onRemoveSubVariableCondition, onRemoveSubVariableCondition,
onUpdateSubVariableCondition, onUpdateSubVariableCondition,
onToggleSubVariableConditionLogicalOperator, onToggleSubVariableConditionLogicalOperator,
nodeId,
nodesOutputVars, nodesOutputVars,
availableNodes, availableNodes,
numberVariables, numberVariables,
filterVar,
}: ConditionItemProps) => { }: ConditionItemProps) => {
const { t } = useTranslation() const { t } = useTranslation()
@ -274,6 +279,10 @@ const ConditionItem = ({
handleRemoveSubVariableCondition={onRemoveSubVariableCondition} handleRemoveSubVariableCondition={onRemoveSubVariableCondition}
handleUpdateSubVariableCondition={onUpdateSubVariableCondition} handleUpdateSubVariableCondition={onUpdateSubVariableCondition}
handleToggleSubVariableConditionLogicalOperator={onToggleSubVariableConditionLogicalOperator} handleToggleSubVariableConditionLogicalOperator={onToggleSubVariableConditionLogicalOperator}
nodeId={nodeId}
nodesOutputVars={nodesOutputVars}
availableNodes={availableNodes}
filterVar={filterVar}
/> />
</div> </div>
) )

View File

@ -15,6 +15,7 @@ import ConditionItem from './condition-item'
import type { import type {
Node, Node,
NodeOutPutVar, NodeOutPutVar,
Var,
} from '@/app/components/workflow/types' } from '@/app/components/workflow/types'
import cn from '@/utils/classnames' import cn from '@/utils/classnames'
@ -27,9 +28,11 @@ type ConditionListProps = {
onRemoveCondition?: HandleRemoveCondition onRemoveCondition?: HandleRemoveCondition
onUpdateCondition?: HandleUpdateCondition onUpdateCondition?: HandleUpdateCondition
onToggleConditionLogicalOperator?: HandleToggleConditionLogicalOperator onToggleConditionLogicalOperator?: HandleToggleConditionLogicalOperator
nodeId: string
nodesOutputVars: NodeOutPutVar[] nodesOutputVars: NodeOutPutVar[]
availableNodes: Node[] availableNodes: Node[]
numberVariables: NodeOutPutVar[] numberVariables: NodeOutPutVar[]
filterVar: (varPayload: Var) => boolean
varsIsVarFileAttribute: Record<string, boolean> varsIsVarFileAttribute: Record<string, boolean>
onAddSubVariableCondition?: HandleAddSubVariableCondition onAddSubVariableCondition?: HandleAddSubVariableCondition
onRemoveSubVariableCondition?: handleRemoveSubVariableCondition onRemoveSubVariableCondition?: handleRemoveSubVariableCondition
@ -49,10 +52,12 @@ const ConditionList = ({
onRemoveSubVariableCondition, onRemoveSubVariableCondition,
onUpdateSubVariableCondition, onUpdateSubVariableCondition,
onToggleSubVariableConditionLogicalOperator, onToggleSubVariableConditionLogicalOperator,
nodeId,
nodesOutputVars, nodesOutputVars,
availableNodes, availableNodes,
numberVariables, numberVariables,
varsIsVarFileAttribute, varsIsVarFileAttribute,
filterVar,
}: ConditionListProps) => { }: ConditionListProps) => {
const { conditions, logical_operator } = caseItem const { conditions, logical_operator } = caseItem
@ -106,8 +111,10 @@ const ConditionList = ({
onRemoveSubVariableCondition={onRemoveSubVariableCondition} onRemoveSubVariableCondition={onRemoveSubVariableCondition}
onUpdateSubVariableCondition={onUpdateSubVariableCondition} onUpdateSubVariableCondition={onUpdateSubVariableCondition}
onToggleSubVariableConditionLogicalOperator={onToggleSubVariableConditionLogicalOperator} onToggleSubVariableConditionLogicalOperator={onToggleSubVariableConditionLogicalOperator}
nodeId={nodeId}
nodesOutputVars={nodesOutputVars} nodesOutputVars={nodesOutputVars}
availableNodes={availableNodes} availableNodes={availableNodes}
filterVar={filterVar}
numberVariables={numberVariables} numberVariables={numberVariables}
file={varsIsVarFileAttribute[condition.id] ? { key: (condition.variable_selector || []).slice(-1)[0] } : undefined} file={varsIsVarFileAttribute[condition.id] ? { key: (condition.variable_selector || []).slice(-1)[0] } : undefined}
isSubVariableKey={isSubVariable} isSubVariableKey={isSubVariable}

View File

@ -33,11 +33,11 @@ type Props = {
handleRemoveSubVariableCondition?: handleRemoveSubVariableCondition handleRemoveSubVariableCondition?: handleRemoveSubVariableCondition
handleUpdateSubVariableCondition?: HandleUpdateSubVariableCondition handleUpdateSubVariableCondition?: HandleUpdateSubVariableCondition
handleToggleSubVariableConditionLogicalOperator?: HandleToggleSubVariableConditionLogicalOperator handleToggleSubVariableConditionLogicalOperator?: HandleToggleSubVariableConditionLogicalOperator
nodeId?: string nodeId: string
nodesOutputVars?: NodeOutPutVar[] nodesOutputVars: NodeOutPutVar[]
availableNodes?: Node[] availableNodes: Node[]
varsIsVarFileAttribute?: Record<string, boolean> varsIsVarFileAttribute?: Record<string, boolean>
filterVar?: (varPayload: Var) => boolean filterVar: (varPayload: Var) => boolean
} }
const ConditionWrap: FC<Props> = ({ const ConditionWrap: FC<Props> = ({
@ -127,8 +127,10 @@ const ConditionWrap: FC<Props> = ({
onUpdateCondition={handleUpdateCondition} onUpdateCondition={handleUpdateCondition}
onRemoveCondition={handleRemoveCondition} onRemoveCondition={handleRemoveCondition}
onToggleConditionLogicalOperator={handleToggleConditionLogicalOperator} onToggleConditionLogicalOperator={handleToggleConditionLogicalOperator}
nodeId={id}
nodesOutputVars={nodesOutputVars} nodesOutputVars={nodesOutputVars}
availableNodes={availableNodes} availableNodes={availableNodes}
filterVar={filterVar}
numberVariables={getAvailableVars(id, '', filterNumberVar)} numberVariables={getAvailableVars(id, '', filterNumberVar)}
varsIsVarFileAttribute={varsIsVarFileAttribute} varsIsVarFileAttribute={varsIsVarFileAttribute}
onAddSubVariableCondition={handleAddSubVariableCondition} onAddSubVariableCondition={handleAddSubVariableCondition}