From 4cb7549e127d7e61055d4153b8fa51d7ede235e6 Mon Sep 17 00:00:00 2001 From: Lemon <1599456917@qq.com> Date: Wed, 12 Mar 2025 10:16:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.local | 2 +- .../SimpleProcessDesignerV2/src/utils.ts | 48 ++++++++++--------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/.env.local b/.env.local index 35765584d..cfecf563f 100644 --- a/.env.local +++ b/.env.local @@ -4,7 +4,7 @@ NODE_ENV=development VITE_DEV=true # 请求路径 -VITE_BASE_URL='http://localhost:48080' +VITE_BASE_URL='http://192.168.3.9:48080' # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务 VITE_UPLOAD_TYPE=server diff --git a/src/components/SimpleProcessDesignerV2/src/utils.ts b/src/components/SimpleProcessDesignerV2/src/utils.ts index 2411f33ca..db0efe9b5 100644 --- a/src/components/SimpleProcessDesignerV2/src/utils.ts +++ b/src/components/SimpleProcessDesignerV2/src/utils.ts @@ -42,7 +42,7 @@ export const getApproveTypeText = (approveType: ApproveType): string => { } /** - * 检查节点是否在并行分支内且不在包容分支下 + * 检查节点是否在并行分支内 * @param currentNode 当前节点 * @param rootNode 流程根节点 * @returns boolean @@ -53,32 +53,34 @@ export function isNodeInParallelBranch( ): boolean { const path = findNodePath(currentNode, rootNode) - // 找到最近的包容分支节点和并行分支节点的位置 - let inclusiveIndex = -1 - let parallelIndex = -1 - - path.forEach((node, index) => { - if (node.type === NodeType.INCLUSIVE_BRANCH_NODE) { - inclusiveIndex = index - } + // 检查当前节点是否在并行分支的条件节点内 + for (let i = 0; i < path.length; i++) { + const node = path[i] if (node.type === NodeType.PARALLEL_BRANCH_NODE) { - parallelIndex = index + // 如果找到并行分支节点,检查当前节点是否在其条件节点内 + if (node.conditionNodes?.some(conditionNode => { + // 检查当前节点是否在这个条件分支的子树中 + const subPath = findNodePath(currentNode, conditionNode) + if (subPath.length > 0) { + // 如果在条件分支内,检查是否在包容节点内 + // 从当前节点向上查找最近的包容节点 + for (const pathNode of subPath) { + if (pathNode.type === NodeType.INCLUSIVE_BRANCH_NODE) { + // 如果在包容节点内,允许创建条件分支 + return false + } + } + return true + } + return false + })) { + return true + } } - }) - - // 如果没有并行分支,直接返回 false - if (parallelIndex === -1) { - return false } - // 如果有包容分支,且包容分支在并行分支之后,则允许添加条件分支 - // 即:包容分支是并行分支的子节点 - if (inclusiveIndex > parallelIndex) { - return false - } - - // 其他情况(在并行分支内且不在包容分支下)不允许添加条件分支 - return true + // 不在任何并行分支的条件节点内 + return false } /**