Ejemplo n.º 1
0
        public ActionResult Tree()
        {
            IEnumerable <SysDepartment> datalist = service.GetDepartments();
            var root = DepartmentTree.Parse(datalist);

            return(View(root));
        }
Ejemplo n.º 2
0
        public async Task <MessageModel <DepartmentTree> > GetDepartmentTree(int pid = 0)
        {
            var departments = await _departmentServices.Query(d => d.IsDeleted == false);

            var departmentTrees = (from child in departments
                                   where child.IsDeleted == false
                                   orderby child.Id
                                   select new DepartmentTree
            {
                value = child.Id,
                label = child.Name,
                Pid = child.Pid,
                order = child.OrderSort,
            }).ToList();
            DepartmentTree rootRoot = new DepartmentTree
            {
                value = 0,
                Pid   = 0,
                label = "根节点"
            };

            departmentTrees = departmentTrees.OrderBy(d => d.order).ToList();


            RecursionHelper.LoopToAppendChildren(departmentTrees, rootRoot, pid);

            return(Success(rootRoot, "获取成功"));
        }
        private List <DepartmentTree> process2TreeModel(List <DepartmentManageModel> source, DepartmentTree curRootNode)
        {
            List <DepartmentTree> resultlist = new List <DepartmentTree>();

            if (source != null && source.Count() > 0)//出口1
            {
                if (curRootNode == null)
                {
                    return(resultlist);//出口2
                }

                //当前节点的直接子节点list
                IEnumerable <DepartmentManageModel> sublist = source.Where(m => m.ParentID == curRootNode.id);
                if (sublist == null || sublist.Count() == 0)
                {
                    return(resultlist);
                }
                // var pmodel=sublist.FirstOrDefault();

                foreach (var dep in sublist)//出口3
                {
                    DepartmentTree t = new DepartmentTree()
                    {
                        id       = dep.DepartmentID,
                        text     = dep.Name,
                        children = process2TreeModel(source, dep)
                    };
                    curRootNode.children.Add(t);
                }
                return(curRootNode.children);
            }
            return(new List <DepartmentTree>());
        }
        public ActionResult GetDepartment()
        {
            var result = new StandardJsonResult <List <DepartmentTree> >();

            result.Try(() =>
            {
                var service = ML.BC.Infrastructure.Ioc.GetService <IEnterpriseDepartmentManagementService>();
                List <DepartmentDto> list = new List <DepartmentDto>();
                if (HasFunction(Functions.Root_SystemSetting_OrganizationManagement_ShowAll))
                {
                    list = service.GetMyDepartment(BCSession.User.EnterpriseID);
                }
                else if (BCSession.User.DepartmentID.HasValue)
                {
                    list = service.GetMyDepartment(BCSession.User.EnterpriseID, BCSession.User.DepartmentID);
                }
                if (list != null && list.Count > 0)
                {
                    List <DepartmentManageModel> mylist = new List <DepartmentManageModel>();
                    foreach (var l in list)
                    {
                        if (l.Available)
                        {
                            DepartmentManageModel m = new DepartmentManageModel()
                            {
                                DepartmentID = l.DepartmentID,
                                Description  = l.Description,
                                _parentId    = l.ParentID,
                                Deleted      = l.Deleted,
                                Available    = l.Available,
                                EnterpriseID = l.EnterpriseID,
                                Name         = l.Name,
                                ParentID     = l.ParentID
                            };
                            mylist.Add(m);
                        }
                    }
                    mylist[0]._parentId       = 0;//不在根节点部门下的管理者不能显示
                    List <DepartmentTree> all = new List <DepartmentTree>();
                    foreach (var rot in mylist)
                    {
                        if (rot._parentId == 0)
                        {
                            DepartmentTree root = new DepartmentTree();
                            root.id             = rot.DepartmentID;
                            root.text           = rot.Name;
                            root.children       = new List <DepartmentTree>();
                            root.children       = process2TreeModel(mylist, root);
                            all.Add(root);
                        }
                    }

                    result.Value = new List <DepartmentTree>();
                    result.Value = all;
                }
            });

            return(Json(result.Value, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 5
0
        private DepartmentTree FindTree(Department root, List <Department> departList)
        {
            DepartmentTree tree = new DepartmentTree();

            tree.ID         = root.ID;
            tree.ParentName = departList.Find(m => m.ID == root.ParentID)?.Name;
            tree.label      = root.Name;
            tree.children   = new List <DepartmentTree>();
            departList.FindAll(m => m.ParentID == root.ID).ForEach(m =>
            {
                tree.children.Add(FindTree(m, departList));
            });
            return(tree);
        }
Ejemplo n.º 6
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //InitUserDepartment();

                SetVisibilityReportButtons();
                if (Session["Tree"] != null)
                {
                    if (Session["CurrentSelectedDepartmentNode"] != null)
                    {
                        DepartmentTree.FillTree((CustomTreeNode)Session["Tree"],
                                                (CustomTreeNode)Session["CurrentSelectedDepartmentNode"]);
                    }
                    else
                    {
                        DepartmentTree.FillTree((CustomTreeNode)Session["Tree"], null);
                    }
                }
                else
                {
                    if (Session["CurrentUserDivision"] != null)
                    {
                        DepartmentTree.FillTreeByDivision(new Guid(Session["CurrentUserDivision"].ToString()));
                        Session["CurrentSelectedDepartment"]     = new Guid(Session["CurrentUserDivision"].ToString());
                        Session["CurrentSelectedDepartmentNode"] = DepartmentTree.CurrentSelectedNode;
                    }
                    else
                    {
                        DepartmentTree.FillTree(Guid.Empty);
                    }
                }

                if (Session["Tree"] == null)
                {
                    Session["Tree"] = DepartmentTree.Nodes[0];
                }


                if (Session["SimpleSearch"] != null && !string.IsNullOrEmpty(Session["SimpleSearch"].ToString()))
                {
                    SearchTextBox.Text             = Session["SimpleSearch"].ToString();
                    EmployeesListView.DataSourceID = "FilteredEmployeesDataSource";
                    EmployeesListView.DataBind();
                }
                else if (Session["CustomSearch"] != null && !string.IsNullOrEmpty(Session["CustomSearch"].ToString()))
                {
                    var customSearchParams = (CustomSearchStorage)Session["CustomSearch"];
                    PositionTextBox.Text     = customSearchParams.Position;
                    DepartmentTextBox.Text   = customSearchParams.Department;
                    HasPhoneCheckBox.Checked = customSearchParams.HasPhone;
                    RestoreBirthdayDates(customSearchParams.StartBirthday, customSearchParams.FinishBirthday);
                    //BirthDayStartTextBox.Text = customSearchParams.StartBirthday.ToShortDateString();
                    //BirthDayFinishTextBox.Text = customSearchParams.FinishBirthday.ToShortDateString();

                    UpdateCustomSearchParametrs();
                    EmployeesListView.DataSourceID = "CustomFilteredEmployeesDataSource";
                    EmployeesListView.DataBind();
                }

                if (Session["SelectedPage"] != null)
                {
                    var pager = ((DataPager)EmployeesListView.FindControl("DataPager"));
                    if (pager != null)
                    {
                        pager.SetPageProperties(int.Parse(Session["SelectedPage"].ToString()), pager.MaximumRows, true);
                    }
                }
            }
        }