From 1349f2f2f7c3e2b0d971104d26c8437f778b5e08 Mon Sep 17 00:00:00 2001 From: lorne <1991wangliang@gmail.com> Date: Thu, 22 Oct 2026 18:13:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(flow-design):=20=E5=8F=96=E6=B6=88=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E8=8A=82=E7=82=B9=E4=BB=85=E5=8F=AF=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=88=B0=E6=9D=A1=E4=BB=B6=E5=88=86=E6=94=AF=E7=9A=84=E9=99=90?= =?UTF-8?q?=E5=88=B6=EF=BC=88codingapi/flow-engine#230=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 路由节点不再要求必须位于条件分支(含 else 分支)内,可在主流程、 条件分支等任意可添加节点处添加。后端已通过 9 种摆放松弛场景的 单元测试验证(主流程、条件节点前后、跳转结束节点、分支首节点等)。 Refs: https://github.com/codingapi/flow-engine/issues/230 Co-Authored-By: Claude Code --- .../design-editor/nodes/router/index.ts | 12 ++---------- .../design-editor/nodes/router.test.ts | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 packages/flow-design/tests/components/design-editor/nodes/router.test.ts diff --git a/packages/flow-design/src/components/design-editor/nodes/router/index.ts b/packages/flow-design/src/components/design-editor/nodes/router/index.ts index 80416c2..f033bf7 100644 --- a/packages/flow-design/src/components/design-editor/nodes/router/index.ts +++ b/packages/flow-design/src/components/design-editor/nodes/router/index.ts @@ -13,16 +13,8 @@ export const RouterNodeRegistry: FlowNodeRegistry = { icon: 'ROUTER', description: '路由节点', }, - canAdd(ctx, from) { - // 上级节点是 CONDITION_BRANCH 则可以添加 ROUTER 节点 - while (from.parent) { - if (from.parent.flowNodeType === 'CONDITION_BRANCH'|| from.parent.flowNodeType === 'CONDITION_ELSE_BRANCH') { - return true; - } - from = from.parent; - } - return false; - }, + // 路由节点不限制摆放位置(issue #230):可添加在主流程、条件分支等任意可添加节点处。 + // canAdd 缺省即为允许,因此不再实现该方法。 /** * Render node via formMeta */ diff --git a/packages/flow-design/tests/components/design-editor/nodes/router.test.ts b/packages/flow-design/tests/components/design-editor/nodes/router.test.ts new file mode 100644 index 0000000..ea33a99 --- /dev/null +++ b/packages/flow-design/tests/components/design-editor/nodes/router.test.ts @@ -0,0 +1,16 @@ +import {describe, expect, it} from '@rstest/core'; +import {RouterNodeRegistry} from '@/components/design-editor/nodes/router'; + +describe('RouterNodeRegistry', () => { + it('路由节点不再限制只能添加到条件分支下(issue #230)', () => { + // 节点列表以 registry.canAdd?.(...) ?? true 判断是否可添加, + // 未实现 canAdd 即表示任意可添加节点处均可添加路由节点 + expect(RouterNodeRegistry.canAdd).toBeUndefined(); + }); + + it('路由节点其余能力限制应保持不变', () => { + expect(RouterNodeRegistry.meta?.copyDisable).toBe(true); + expect(RouterNodeRegistry.meta?.addDisable).toBe(false); + expect(RouterNodeRegistry.meta?.expandable).toBe(false); + }); +}); \ No newline at end of file