feat(web): 入参增加类型
This commit is contained in:
@@ -3,8 +3,9 @@ import type {Option} from 'amis/lib/Schema'
|
||||
import {find, has, isEqual, max, min, unique} from 'licia'
|
||||
import {type DependencyList, type MouseEvent as ReactMouseEvent, useCallback, useRef} from 'react'
|
||||
import Queue from 'yocto-queue'
|
||||
import {originTypeMap} from '../../pages/ai/task/InputSchema.tsx'
|
||||
import {useFlowStore} from './store/FlowStore.ts'
|
||||
import type {OutputVariable} from './types.ts'
|
||||
import {type OutputVariable} from './types.ts'
|
||||
|
||||
export const getAllIncomerNodeById: (id: string, nodes: Node[], edges: Edge[]) => string[] = (id, nodes, edges) => {
|
||||
let queue = new Queue<Node>()
|
||||
@@ -24,6 +25,7 @@ export const getAllIncomerNodeOutputVariables: (id: string, inputSchema: Record<
|
||||
let inputSchemaVariables: OutputVariable[] = Object.keys(inputSchema).map(key => ({
|
||||
group: '流程入参',
|
||||
name: `${key}${inputSchema[key]?.label ? ` (${inputSchema[key].label})` : ''}`,
|
||||
type: originTypeMap[inputSchema[key]?.type ?? ''],
|
||||
variable: key,
|
||||
}))
|
||||
|
||||
@@ -53,6 +55,7 @@ export const getAllIncomerNodeOutputVariables: (id: string, inputSchema: Record<
|
||||
incomerVariables.push({
|
||||
group: group,
|
||||
name: key,
|
||||
type: outputs[key].type,
|
||||
variable: `${incomerId}.${key}`,
|
||||
})
|
||||
}
|
||||
@@ -65,13 +68,15 @@ export const getAllIncomerNodeOutputVariables: (id: string, inputSchema: Record<
|
||||
{
|
||||
group: '循环入参',
|
||||
name: 'loopIndex (当前迭代索引)',
|
||||
type: 'number',
|
||||
variable: 'loopIndex',
|
||||
},
|
||||
} as OutputVariable,
|
||||
{
|
||||
group: '循环入参',
|
||||
name: 'loopItem (当前迭代对象)',
|
||||
type: 'object',
|
||||
variable: 'loopItem',
|
||||
},
|
||||
} as OutputVariable,
|
||||
] : []),
|
||||
...incomerVariables,
|
||||
]
|
||||
@@ -95,6 +100,25 @@ export const generateAllIncomerOutputVariablesFormOptions: (id: string, inputSch
|
||||
}))
|
||||
}
|
||||
|
||||
export const generateAllIncomerOutputVariablesConditions: (id: string, inputSchema: Record<string, Record<string, any>>, nodes: Node[], edges: Edge[], data: any) => Option[] = (id, inputSchema, nodes, edges, data) => {
|
||||
let optionMap: Record<string, Option[]> = {}
|
||||
for (const item of getAllIncomerNodeOutputVariables(id, inputSchema, nodes, edges, data)) {
|
||||
if (!optionMap[item.group]) {
|
||||
optionMap[item.group] = []
|
||||
}
|
||||
optionMap[item.group].push({
|
||||
label: item.name,
|
||||
type: item.type,
|
||||
name: item.variable,
|
||||
})
|
||||
}
|
||||
return Object.keys(optionMap)
|
||||
.map(key => ({
|
||||
label: key,
|
||||
children: optionMap[key],
|
||||
}))
|
||||
}
|
||||
|
||||
// 处理循环节点的边界问题
|
||||
export const useNodeDrag = (deps: DependencyList) => {
|
||||
const currentPosition = useRef({x: 0, y: 0} as { x: number, y: number })
|
||||
|
||||
Reference in New Issue
Block a user