diff --git a/ui/src/workflow-canvas/nodes/tool-start-node/index.ts b/ui/src/workflow-canvas/nodes/tool-start-node/index.ts new file mode 100644 index 00000000000..e4350a4691c --- /dev/null +++ b/ui/src/workflow-canvas/nodes/tool-start-node/index.ts @@ -0,0 +1,44 @@ +import ToolStartNode from './index.vue' +import { WorkflowNodeModel, WorkflowNodeView } from '@/workflow-canvas/core/workflow-node' +import { WorkflowNodeType, type WorkflowNodeField } from '@/workflow-canvas/types.ts' +import type { Model } from '@logicflow/core' + +class ToolStartNodeView extends WorkflowNodeView { + constructor(props: ConstructorParameters[0]) { + super(props, ToolStartNode) + } +} + +class ToolStartNodeModel extends WorkflowNodeModel { + getNodeFieldList(): WorkflowNodeField[] { + const result: WorkflowNodeField[] = [] + result.push({ + value: 'global', + label: '全局变量', + type: 'global', + children: this.properties.config?.globalFields || [], + }) + + const toolBaseNode = this.graphModel.getNodeModelById(WorkflowNodeType.ToolBaseNode) + const output = (toolBaseNode?.properties?.user_output_field_list as any[])?.map((i: any) => { + return { label: i.label || i.name, value: i.field } + }) + + result.push({ + value: 'output', + label: '参数输出', + type: 'output', + children: output || [], + }) + + return result + } + + getDefaultAnchor(): Model.AnchorConfig[] { + const anchors: Model.AnchorConfig[] = [] + anchors.push({ x: this.x + this.width / 2, y: this.y, id: `${this.id}_right`, type: 'right' }) + return anchors + } +} + +export default { type: WorkflowNodeType.ToolStartNode, model: ToolStartNodeModel, view: ToolStartNodeView } \ No newline at end of file diff --git a/ui/src/workflow-canvas/nodes/tool-start-node/index.vue b/ui/src/workflow-canvas/nodes/tool-start-node/index.vue new file mode 100644 index 00000000000..2d13dbad237 --- /dev/null +++ b/ui/src/workflow-canvas/nodes/tool-start-node/index.vue @@ -0,0 +1,62 @@ + + + \ No newline at end of file