123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- @using System.Text
- @using Abp.Application.Navigation
- @using Abp.Collections.Extensions
- @using WeApp.Authorization
- @using WeApp.Views
- @model WeApp.Models.Layout.SideBarNavViewModel
- @{
- var pageTitleStr = "";
- var calculateMenuUrl = new Func<string, string>((url) =>
- {
- if (string.IsNullOrEmpty(url))
- {
- return ApplicationPath;
- }
- if (UrlChecker.IsRooted(url))
- {
- return url;
- }
- return ApplicationPath + url;
- });
- string MenuHtml(UserMenuItem menuItem)
- {
- if (menuItem==null||menuItem.Name==PermissionNames.Pages)
- {
- return "";
- }
- StringBuilder sb = new StringBuilder();
- string open="", active="",angle="left";
- if (Model.ActiveNames != null && (Model.ActiveNames.Contains(menuItem.Name)&& (menuItem.Name!=PermissionNames.Pages)))
- {
- open = " menu-open";
- active = "active";
- angle = "left";
- }
-
- sb.AppendLine();
- string iconHtml = string.IsNullOrWhiteSpace(menuItem.Icon) ? "" : " <i class=\"nav-icon " + menuItem.Icon + "\"></i>";
- if (menuItem.Items.IsNullOrEmpty())
- {
- sb.AppendFormat("<li class=\"nav-item {0}\">", active);
- sb.AppendFormat("<a class=\"nav-link {0}\" href=\"{1}\">{2}<p>{3}</p> </a>", active, calculateMenuUrl(menuItem.Url), iconHtml, menuItem.DisplayName);
- sb.Append("</li>");
- sb.AppendLine();
- }
- else
- {
- sb.AppendFormat("<li class=\"nav-item has-treeview {0}\">", open);
- sb.AppendFormat("<a href=\"javascript:void(0);\" class=\"nav-link {0}\">{1}<p>{2}<i class=\"right fas fa-angle-{3}\"></i></p> </a>", active, iconHtml, menuItem.DisplayName, angle);
- sb.AppendLine();
- sb.Append("<ul class=\"nav nav-treeview\">");
- sb.AppendLine();
- foreach (var childItem in menuItem.Items)
- {
- sb.Append(MenuHtml(childItem));
- sb.AppendLine();
- }
- sb.Append("</ul>");
- sb.Append("</li>");
- sb.AppendLine();
- }
- sb.AppendLine();
- return sb.ToString();
- }
- }
- @foreach (var menuItem in Model.MainMenu.Items)
- {
- @Html.Raw(MenuHtml(menuItem))
- }
- @if (Model != null && Model.PageTitles.Any())
- {
- foreach (var pageTitle in Model.PageTitles)
- {
- pageTitleStr += "<li class=\"m-nav__separator\">></li><li class=\"m-nav__item\" style=\"padding:0 10px\"><a href=\"javascript:;\" class=\"m-nav__link\"><span class=\"m-nav__link-text\"><i class=\"iconfont " + pageTitle.Icon + "\"></i>" + pageTitle.Name + "</span></a></li>";
- }
- }
- <script>
- var pageTitle = '@Html.Raw(pageTitleStr)';
- </script>
- @*<div class="menu">
- <ul class="list">
- @foreach (var menuItem in Model.MainMenu.Items)
- {
- <li class="@(Model.ActiveMenuItemName == menuItem.Name ? "active" : "")">
- @if (menuItem.Items.IsNullOrEmpty())
- {
- <a href="@calculateMenuUrl(menuItem.Url)">
- @if (!string.IsNullOrWhiteSpace(menuItem.Icon))
- {
- <i class="iconfont @menuItem.Icon"></i>
- }
- <span>@menuItem.DisplayName</span>
- </a>
- }
- else
- {
- <a href="javascript:void(0);" class="menu-toggle">
- @if (!string.IsNullOrWhiteSpace(menuItem.Icon))
- {
- <i class="iconfont @menuItem.Icon"></i>
- }
- <span>@menuItem.DisplayName</span>
- </a>
- <ul class="ml-menu">
- @foreach (var subMenuItem in menuItem.Items)
- {
- <li class="@(Model.ActiveMenuItemName == subMenuItem.Name ? "active" : "")">
- @if (subMenuItem.Items.IsNullOrEmpty())
- {
- <a href="@calculateMenuUrl(subMenuItem.Url)">
- @if (!string.IsNullOrWhiteSpace(subMenuItem.Icon))
- {
- <i class="iconfont @subMenuItem.Icon"></i>
- }
- <span>@subMenuItem.DisplayName</span>
- </a>
- }
- else
- {
- <a href="javascript:void(0);" class="menu-toggle">
- @if (!string.IsNullOrWhiteSpace(subMenuItem.Icon))
- {
- <i class="iconfont @menuItem.Icon"></i>
- }
- <span>@subMenuItem.DisplayName</span>
- </a>
- <ul class="ml-menu">
- @foreach (var subSubMenuItem in subMenuItem.Items)
- {
- <li class="@(Model.ActiveMenuItemName == subSubMenuItem.Name ? "active" : "")">
- <a href="@calculateMenuUrl(subSubMenuItem.Url)">
- @if (!string.IsNullOrWhiteSpace(subSubMenuItem.Icon))
- {
- <i class="iconfont @subSubMenuItem.Icon"></i>
- }
- @subSubMenuItem.DisplayName
- </a>
- </li>
- }
- </ul>
- }
- </li>
- }
- </ul>
- }
- </li>
- }
- </ul>
- </div>*@
- @*<div class="menu">
- <ul class="list">
- @foreach (var menuItem in Model.MainMenu.Items)
- {
- <li class="@(Model.ActiveMenuItemName == menuItem.Name ? "active" : "")">
- @if (menuItem.Items.IsNullOrEmpty())
- {
- <a href="@calculateMenuUrl(menuItem.Url)">
- @if (!string.IsNullOrWhiteSpace(menuItem.Icon))
- {
- <i class="material-icons">@menuItem.Icon</i>
- }
- <span>@menuItem.DisplayName</span>
- </a>
- }
- else
- {
- <a href="javascript:void(0);" class="menu-toggle">
- @if (!string.IsNullOrWhiteSpace(menuItem.Icon))
- {
- <i class="material-icons">@menuItem.Icon</i>
- }
- <span>@menuItem.DisplayName</span>
- </a>
- <ul class="ml-menu">
- @foreach (var subMenuItem in menuItem.Items)
- {
- <li class="@(Model.ActiveMenuItemName == subMenuItem.Name ? "active" : "")">
- @if (subMenuItem.Items.IsNullOrEmpty())
- {
- <a href="@calculateMenuUrl(subMenuItem.Url)">
- @if (!string.IsNullOrWhiteSpace(subMenuItem.Icon))
- {
- <i class="material-icons">@subMenuItem.Icon</i>
- }
- <span>@subMenuItem.DisplayName</span>
- </a>
- }
- else
- {
- <a href="javascript:void(0);" class="menu-toggle">
- @if (!string.IsNullOrWhiteSpace(subMenuItem.Icon))
- {
- <i class="material-icons">@subMenuItem.Icon</i>
- }
- <span>@subMenuItem.DisplayName</span>
- </a>
- <ul class="ml-menu">
- @foreach (var subSubMenuItem in subMenuItem.Items)
- {
- <li class="@(Model.ActiveMenuItemName == subSubMenuItem.Name ? "active" : "")">
- <a href="@calculateMenuUrl(subSubMenuItem.Url)">
- @subSubMenuItem.DisplayName
- </a>
- </li>
- }
- </ul>
- }
- </li>
- }
- </ul>
- }
- </li>
- }
- </ul>
- </div>*@
|