/// <summary> /// 获取路由名称 /// </summary> /// <param name="menu">菜单信息</param> /// <returns></returns> public String GetRouteName(MenuOutputDto menu) { String routerName = menu.EnCode; // 非外链并且是一级目录(类型为目录) if (IsMeunDoc(menu)) { routerName = ""; } return(routerName); }
/// <summary> /// 获取组件信息 /// </summary> /// <param name="menu">菜单信息</param> /// <returns></returns> public String GetComponent(MenuOutputDto menu) { String component = "Layout"; if (!string.IsNullOrEmpty(menu.Component) && IsMeunFrame(menu) && !IsMeunDoc(menu)) { component = menu.Component; } else if (string.IsNullOrEmpty(menu.Component) && IsParentView(menu)) { component = "ParentView"; } return(component); }
/// <summary> /// 获取路由地址 /// </summary> /// <param name="menu">菜单信息</param> /// <returns></returns> public String GetRouterPath(MenuOutputDto menu) { String routerPath = menu.UrlAddress; // 非外链并且是一级目录(类型为目录) if ("" == menu.ParentId && menu.MenuType == "C" && !menu.IsFrame) { routerPath = menu.UrlAddress;// "/" + menu.EnCode; } // 非外链并且是一级目录(类型为菜单) else if (IsMeunDoc(menu)) { routerPath = "/"; } return(routerPath); }
/// <summary> /// 构建菜单树 /// </summary> /// <param name="menus">菜单列表</param> /// <param name="parentId">父级Id</param> /// <returns></returns> public List <MenuOutputDto> BuildTreeMenus(List <Menu> menus, string parentId = "") { List <MenuOutputDto> resultList = new List <MenuOutputDto>(); List <Menu> childNodeList = menus.FindAll(t => t.ParentId == parentId); foreach (Menu menu in childNodeList) { MenuOutputDto menuOutputDto = new MenuOutputDto(); menuOutputDto = menu.MapTo <MenuOutputDto>(); List <Menu> subChildNodeList = menus.FindAll(t => t.ParentId == menu.Id); if (subChildNodeList.Count > 0) { menuOutputDto.SubMenu = BuildTreeMenus(menus, menu.Id); } resultList.Add(menuOutputDto); } return(resultList); }
/// <summary> /// 是否为parent_view组件 /// </summary> /// <param name="menu">菜单信息</param> /// <returns></returns> public bool IsParentView(MenuOutputDto menu) { return(menu.ParentId != "" && menu.MenuType == "C"); }
/// <summary> /// 是否为菜单内部跳转 /// </summary> /// <param name="menu">菜单信息</param> /// <returns></returns> public bool IsMeunFrame(MenuOutputDto menu) { return(menu.MenuType == "M" && !menu.IsFrame); }
/// <summary> /// 是否为菜单内部跳转,并且是一级目录 /// </summary> /// <param name="menu">菜单信息</param> /// <returns></returns> public bool IsMeunDoc(MenuOutputDto menu) { return(menu.ParentId == "" && menu.MenuType == "M" && !menu.IsFrame); }
/// <summary> /// 获取菜单详情 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Get(int id) { MenuOutputDto c = MenuBll.GetById(id).Mapper <MenuOutputDto>(); return(ResultData(c)); }