예제 #1
0
        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);
        }