From 68e50c1639585ca85c81fb311bb7d183c7bc5f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?= <188633308@qq.com> Date: Thu, 27 May 2021 14:40:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=B8=8B=E7=BA=A7=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=8D=E5=BA=94=E8=AF=A5=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E5=88=B0=E4=B8=8A=E7=BA=A7=E6=A0=91=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Service/Org/SysOrgService.cs | 21 +++++++++++---------- Api/Ewide.Core/Util/TreeBuildUtil.cs | 16 ++++++++++++++++ 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/Api/Ewide.Core/Service/Org/SysOrgService.cs b/Api/Ewide.Core/Service/Org/SysOrgService.cs index 812ab4c..2a9635d 100644 --- a/Api/Ewide.Core/Service/Org/SysOrgService.cs +++ b/Api/Ewide.Core/Service/Org/SysOrgService.cs @@ -83,17 +83,18 @@ namespace Ewide.Core.Service if (dataScopes.Count < 1) return dataScopeList; - // 此处获取所有的上级节点,用于构造完整树 - dataScopes.ForEach(u => - { - var sysOrg = _sysOrgRep.DetachedEntities.FirstOrDefault(c => c.Id == u); - var parentAndChildIdListWithSelf = sysOrg.Pids.TrimEnd(',').Replace("[", "").Replace("]", "") - .Split(",").ToList(); - dataScopeList.AddRange(parentAndChildIdListWithSelf); + // 不需要去查找上级节点 - // 添加本级(不知道为什么框架在这里排除了本级) - dataScopeList.Add(u); - }); + // 此处获取所有的上级节点,用于构造完整树 + //dataScopes.ForEach(u => + //{ + // var sysOrg = _sysOrgRep.DetachedEntities.FirstOrDefault(c => c.Id == u); + // var parentAndChildIdListWithSelf = sysOrg.Pids.TrimEnd(',').Replace("[", "").Replace("]", "") + // .Split(",").ToList(); + // dataScopeList.AddRange(parentAndChildIdListWithSelf); + //}); + + dataScopeList = dataScopes; } return dataScopeList.Distinct().ToList(); } diff --git a/Api/Ewide.Core/Util/TreeBuildUtil.cs b/Api/Ewide.Core/Util/TreeBuildUtil.cs index d68ab46..155bb81 100644 --- a/Api/Ewide.Core/Util/TreeBuildUtil.cs +++ b/Api/Ewide.Core/Util/TreeBuildUtil.cs @@ -54,6 +54,22 @@ namespace Ewide.Core if (_rootParentIds.Contains(u.GetPid())) results.Add(u); }); + + // 在未获取到根节点的情况下, 直接将最上级作为根节点 + if (results.Count < 1) + { + var ids = new List(); + nodes.ForEach(u => { + ids.Add(u.GetId()); + }); + + nodes.ForEach(u => + { + if (!ids.Contains(u.GetPid())) + results.Add(u); + }); + } + return results; }