public IViewComponentResult Invoke() { //var naviagtion = MenuConfigSingle.CreatInstance().GetMenu(); if (_currentUser.UserName == "admin") { var list = MenuConfigSingle.CreatInstance().GetMenu(); return(View(list)); } else { var list = new ApplicationMenuItemList(); var currentUserMenu = _managerAppService.GetCurrentManagerMenuAsync().Result; foreach (var item in currentUserMenu) { if (item.ParentId == Guid.Empty) { list.Add(new ApplicationMenuItem(item.Name, item.Id.ToString(), item.Url, item.Icon, item.Order)); } else { var m = list.FirstOrDefault(x => x.DisplayName == item.ParentId.ToString() && x.Url == "#").Items; m.Add(new ApplicationMenuItem(item.Name, item.Id.ToString(), item.Url, item.Icon, item.Order)); } } return(View(list)); } }
public ApplicationMenuItem( [NotNull] string name, [NotNull] string displayName, string url = null, string icon = null, int order = DefaultOrder, object customData = null, string target = null, string elementId = null, string cssClass = null, string requiredPermissionName = null) { Check.NotNullOrWhiteSpace(name, nameof(name)); Check.NotNullOrWhiteSpace(displayName, nameof(displayName)); Name = name; DisplayName = displayName; Url = url; Icon = icon; Order = order; CustomData = customData; Target = target; ElementId = elementId ?? GetDefaultElementId(); CssClass = cssClass; RequiredPermissionName = requiredPermissionName; StateCheckers = new List <ISimpleStateChecker <ApplicationMenuItem> >(); Items = new ApplicationMenuItemList(); }
public ApplicationMenuItemList GetMenu() { var menuList = new ApplicationMenuItemList(); var t = "&_&"; var item = new ApplicationMenuItem("后台管理", t, "#", icon: "", order: 0); item.Items.Add(new ApplicationMenuItem("管理员管理", t, "/Manager")); item.Items.Add(new ApplicationMenuItem("角色管理", t, "/Role")); menuList.Add(item); item = new ApplicationMenuItem("商品管理", t, "#", icon: "", order: 0); item.Items.Add(new ApplicationMenuItem("商品列表", t, "/Service/Product")); menuList.Add(item); item = new ApplicationMenuItem("团长管理", t, "#", icon: "", order: 0); item.Items.Add(new ApplicationMenuItem("团长列表", t, "/Service/Head")); item.Items.Add(new ApplicationMenuItem("评价列表", t, "/Service/Evaluate")); menuList.Add(item); item = new ApplicationMenuItem("用户管理", t, "#", icon: "", order: 0); item.Items.Add(new ApplicationMenuItem("用户列表", t, "/Service/User")); menuList.Add(item); menuList.Normalize(); return(menuList); }
public ApplicationMenu( [NotNull] string name, string displayName = null) { Check.NotNullOrWhiteSpace(name, nameof(name)); Name = name; DisplayName = displayName ?? Name; Items = new ApplicationMenuItemList(); }
protected virtual bool SetActiveMenuItems(ApplicationMenuItemList items, string activeMenuItemName) { foreach (var item in items) { if (item.Name == activeMenuItemName || SetActiveMenuItems(item.Items, activeMenuItemName)) { item.CssClass = "active menu-open"; return(true); } } return(false); }
public static bool ChildActive(ApplicationMenuItemList menu, string currentName) { foreach (var item in menu) { if (item.Name == currentName) { return(true); } if (ChildActive(item.Items, currentName)) { return(true); } } return(false); }
private void FindRootMenuItemWithChildren(ApplicationMenuItem topMenuItem, ApplicationMenuItemList menuItems, string location) { var menu = menuItems.FirstOrDefault(menu => menu.Url != null && location.StartsWith(menu.Url.TrimStart('/', '~'), StringComparison.OrdinalIgnoreCase)); if (menu != null) { RootMenuItem = topMenuItem; return; } if (RootMenuItem == null) { foreach (var menuItem in menuItems) { FindRootMenuItemWithChildren(topMenuItem, menuItem.Items, location); } } }
void SetMenuItemActivateCssClass(string pageUrl, ApplicationMenuItem menuItem = null, ApplicationMenu parentMenu = null) { ApplicationMenuItemList withItems = menuItem?.Items ?? parentMenu?.Items; withItems.ForEach(m => { if (m.Url != null && pageUrl == $"{m.Url}/index".ToUpper()) { m.CssClass = "active"; // 存在父级 if (menuItem != null) { menuItem.CssClass = "active menu-open"; } } SetMenuItemActivateCssClass(pageUrl, m, parentMenu); }); }
void SetMenuItemActivateCssClass(string pageUrl, ApplicationMenuItem menuItem = null, ApplicationMenu parentMenu = null) { ApplicationMenuItemList withItems = menuItem?.Items ?? parentMenu?.Items; withItems.ForEach(m => { if (m.Url != null && string.Compare(pageUrl, $"{m.Url}/index", StringComparison.InvariantCultureIgnoreCase) == 0) { m.CssClass = "active"; // 存在父级 if (menuItem != null) { menuItem.CssClass = "active menu-open"; } } SetMenuItemActivateCssClass(pageUrl, m, parentMenu); }); }
void SetMenuItemActivateCssClass(string pageUrl, ApplicationMenuItem menuItem = null, ApplicationMenu parentMenu = null) { ApplicationMenuItemList withItems = menuItem?.Items ?? parentMenu?.Items; withItems.ForEach(m => { //TODO: Menu Url ~/ replace with / clear ~ character m.Url = m.Url != null ? m.Url.Replace("~/", "/") : m.Url; if (m.Url != null && string.Compare(pageUrl, $"{m.Url}/index", StringComparison.InvariantCultureIgnoreCase) == 0) { m.CssClass = "active"; if (menuItem != null) { menuItem.CssClass = "active menu-open"; } } SetMenuItemActivateCssClass(pageUrl, m, parentMenu); }); }
private MenuDataItem[] GetMenuDataItems(ApplicationMenuItemList menuItems) { if (menuItems != null && menuItems.Count > 0) { MenuDataItem[] antMenuItems; antMenuItems = new MenuDataItem[menuItems.Count]; for (int i = 0; i < antMenuItems.Length; i++) { MenuDataItem item = new MenuDataItem(); item.Path = menuItems[i].Url; item.Name = menuItems[i].DisplayName; item.Key = menuItems[i].Name; item.Icon = menuItems[i].Icon; antMenuItems[i] = item; if (menuItems[i].Items != null && menuItems[i].Items.Count > 0) { antMenuItems[i].Children = GetMenuDataItems(menuItems[i].Items); } } return(antMenuItems); } return(null); }