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; }