public IEnumerable <TreeDataView> GetAllDeptTree() { IEnumerable <OrgDept> powerDepts = _rbacService.GetDeptInfoAuthority(_applicationContext.CurrentRoleUid); IEnumerable <TreeDataView> treeList = powerDepts.Select(data => new TreeDataView() { Id = data.Fid, Text = data.DeptName, Pid = data.Pid, Data = new { Code = data.DeptCode, Ext1 = data.HasPartPower, Ext2 = "" }, Icon = data.HasPartPower ? "icon-folder ace-icon fa fa-folder grey" : "icon-folder ace-icon fa fa-folder orange" }); string _rootText = string.Empty; List <TreeDataView> tree = new List <TreeDataView>(); string parentID = "0"; var pt = powerDepts.FirstOrDefault <OrgDept>(t => t.Pid == "0" || t.Pid.IsMissing() || t.Pid == "#" || t.Pid == "~"); if (pt != null) { _rootText = pt.DeptName; parentID = pt.Fid; } else { _rootText = "无权限"; } TreeDataView treeRoot = new TreeDataView() { Id = parentID, Text = _rootText, State = new NodeState { Opened = true }, Icon = "icon-folder purple ace-icon fa fa-sitemap", }; if (parentID == "0") { treeRoot.Data = new { Code = "", Ext1 = false, Ext2 = "" }; } else { treeRoot.Data = new { Code = pt.DeptCode, Ext1 = pt.HasPartPower, Ext2 = "" }; } TreeViewHelper.MakeTree(treeRoot.Children, treeList, treeRoot.Id); tree.Add(treeRoot); return(tree); }