/// <summary> /// 设置菜单 /// </summary> private async Task SetMenu() { if (IsLogin() && !string.IsNullOrEmpty(this.LoginUser.LoginName)) { StringBuilder sb = new StringBuilder(); var list = await _rolePermissionServices.QueryByRoleId(LoginUser.RoleId.HasValue?LoginUser.RoleId.Value : 0); list = list.Where(c => c.Permission != null && c.Permission.Type == PermissionType.Menu && c.Role != null && !c.Role.IsDeleted && c.Role.IsEnabled).ToList(); if (list != null && list.Count > 0) { foreach (var parent in list.Where(a => a.Permission.ParentId == null || a.Permission.ParentId == 0)) { StringBuilder sbChild = new StringBuilder(); sbChild.AppendFormat("<dl class=\"layui-nav-child\">"); bool flag = false; bool exists = false; bool parentFlag = false; var childCount = list.Where(a => a.Permission.ParentId == parent.PermissionId).Count(); if (childCount == 0) { parentFlag = parent.Permission.Url.ToLower() == this.Path.ToLower(); } foreach (var child in list.Where(a => a.Permission.ParentId == parent.PermissionId)) { flag = child.Permission.Url.ToLower() == this.Path.ToLower(); if (flag) { exists = true; } sbChild.AppendFormat("<dd {0}><a href=\"{1}\">  {2}</a></dd>", flag ? "class=\"layui-this\"" : "", string.IsNullOrEmpty(child.Permission.Url) ? "javascript:void(0)" : child.Permission.Url, child.Permission.Name); } sbChild.AppendFormat("</dl>"); sb.AppendFormat("<li class=\"layui-nav-item {0}\">", exists ? "layui-nav-itemed" : (parentFlag ? "layui-this" : "")); sb.AppendFormat("<a class='layui-icon {0}' href=\"{1}\">  {2}</a>", parent.Permission.Icon, childCount != 0 ? "javascript:void(0);" : parent.Permission.Url, parent.Permission.Name); sb.Append(childCount != 0 ? sbChild.ToString() : ""); sb.AppendFormat("</li>"); } } ViewBag.MenuItems = sb.ToString(); } }