Пример #1
0
        /// <summary>
        /// 递归初始化持久化内容
        /// </summary>
        private void InitPersistKey(JObject jobject, int year)
        {
            //1、遍历所有的子菜单,找到匹配的展开项
            //2、加载展开项的子菜单,从匹配列表中移除已加载的展开项
            //3、重新执行 1~2
            //AllCategories.

            foreach (JObject jCate in jobject["children"])
            {
                if (_expandedKeys.Count == 0)
                {
                    break;
                }

                var matchedExpandedKey = _expandedKeys.FirstOrDefault(p => p == jCate["key"].ToString());
                if (matchedExpandedKey != null)
                {
                    jCate["children"] = new JArray(
                        AllDepts.Where(m => m.DepartmentType == (int)jCate["key"] && m.RegYear == year)
                        .OrderBy(p => p.OrderNum)
                        .ThenBy(p => p.ID)
                        .Select(ParseDeptJObject));

                    _expandedKeys.Remove(matchedExpandedKey);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 获取根菜单Json
        /// </summary>
        private string GetRoot(int deptId)
        {
            //根结点
            var root = AllDepts.FirstOrDefault(p => p.ID == deptId);

            if (root == null)
            {
                return(null);
            }

            var jObject = new JObject(
                new JProperty("title", root.Name),
                new JProperty("tooltip", root.ID.ToString()),
                new JProperty("isFolder", true),
                new JProperty("isLazy", false),
                new JProperty("activate", true),
                new JProperty("hideCheckbox", true), //根菜单隐藏勾选框
                new JProperty("addClass", "menuTreeRoot"),
                new JProperty("expand", true),       //展开
                new JProperty("key", root.ID),
                new JProperty("nodeType", "Dept")
                );


            var deptTypes = typeof(SysDeptType).GetValueDescriptionCollection();

            jObject.Add("children",
                        new JArray(
                            deptTypes.Select(ParseDeptTypeJObject)
                            ));

            return(jObject.ToString());
        }
Пример #3
0
        private string GetChildren(int deptType, int year)
        {
            var children = AllDepts.Where(p => p.DepartmentType == deptType && p.RegYear == year)
                           .OrderBy(p => p.OrderNum)
                           .ThenBy(p => p.ID);

            var jArray = new JArray(children.Select(ParseDeptJObject));

            return(jArray.ToString());
        }
Пример #4
0
 /// <summary>
 /// 将dept对象解析为json对象
 /// </summary>
 /// <param name="menu"></param>
 /// <returns></returns>
 private JObject ParseDeptTypeJObject(KeyValuePair <int, string> deptType, int year)
 {
     return(new JObject(
                new JProperty("title", deptType.Value),
                new JProperty("tooltip", deptType.Key.ToString()),
                new JProperty("isFolder", AllDepts.Any(m => m.DepartmentType == deptType.Key && m.RegYear == year)),
                new JProperty("isLazy", AllDepts.Any(m => m.DepartmentType == deptType.Key && m.RegYear == year)),
                new JProperty("select", false),
                new JProperty("hideCheckbox", true), //隐藏勾选框
                new JProperty("addClass", " "),
                new JProperty("expand", false),
                new JProperty("key", deptType.Key),
                new JProperty("nodeType", "DeptType")
                ));
 }
Пример #5
0
        /// <summary>
        /// 获取根菜单Json
        /// </summary>
        private string GetRoot(int year)
        {
            //根结点
            var root = AllDepts.FirstOrDefault(p => p.ID == SysConsts.RootDeptID);

            if (root == null)
            {
                return(null);
            }

            var jObject = new JObject(
                new JProperty("title", root.Name),
                new JProperty("tooltip", root.ID.ToString()),
                new JProperty("isFolder", true),
                new JProperty("isLazy", false),
                new JProperty("activate", true),
                new JProperty("hideCheckbox", true), //根菜单隐藏勾选框
                new JProperty("addClass", "menuTreeRoot"),
                new JProperty("expand", true),       //展开
                new JProperty("key", root.ID),
                new JProperty("nodeType", "Dept")
                );


            var deptTypes = typeof(SysDeptType).GetValueDescriptionCollection();

            jObject.Add("children",
                        new JArray(
                            deptTypes.Select(d => ParseDeptTypeJObject(d, year))
                            ));

            //已展开的结点列表
            if (_expandedKeyList != null && _expandedKeyList.Length > 0)
            {
                _expandedKeys = _expandedKeyList.Split(',').ToList();
                if (_expandedKeys.Count > 0)
                {
                    //去除根结点
                    _expandedKeys.Remove(root.ID.ToString());
                    InitPersistKey(jObject, year);
                }
            }

            return(jObject.ToString());
        }