mirror of https://github.com/abpframework/abp.git
7 changed files with 156 additions and 64 deletions
@ -0,0 +1,48 @@ |
|||
@using Volo.Abp.UI.Navigation |
|||
@{ |
|||
var elementId = MenuItem.ElementId ?? "MenuItem_" + MenuItem.Name.Replace(".", "_"); |
|||
var cssClass = string.IsNullOrEmpty(MenuItem.CssClass) ? string.Empty : MenuItem.CssClass; |
|||
var disabled = MenuItem.IsDisabled ? "disabled" : string.Empty; |
|||
var url = string.IsNullOrEmpty(MenuItem.Url) ? "#" : MenuItem.Url; |
|||
} |
|||
@if (MenuItem.IsLeaf) |
|||
{ |
|||
if (MenuItem.Url != null) |
|||
{ |
|||
<li class="nav-item @cssClass @disabled" id="@elementId"> |
|||
<a class="nav-link" href="@url"> |
|||
@if (MenuItem.Icon != null) |
|||
{ |
|||
if (MenuItem.Icon.StartsWith("fa")) |
|||
{ |
|||
<i class="@MenuItem.Icon"></i> |
|||
} |
|||
} |
|||
@MenuItem.DisplayName |
|||
</a> |
|||
</li> |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
<li class="nav-item"> |
|||
<div class="dropdown"> |
|||
<a class="nav-link dropdown-toggle" @onclick="ToggleSubMenu" id="Menu_@(MenuItem.Name)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> |
|||
@if (MenuItem.Icon != null) |
|||
{ |
|||
if (MenuItem.Icon.StartsWith("fa")) |
|||
{ |
|||
<i class="@MenuItem.Icon"></i> |
|||
} |
|||
} |
|||
@MenuItem.DisplayName |
|||
</a> |
|||
<div class="dropdown-menu border-0 shadow-sm @(IsSubMenuOpen ? "show" : "")" aria-labelledby="Menu_@(MenuItem.Name)"> |
|||
@foreach (var childMenuItem in MenuItem.Items) |
|||
{ |
|||
<SecondLevelNavMenuItem MenuItem="childMenuItem"/> |
|||
} |
|||
</div> |
|||
</div> |
|||
</li> |
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
using System; |
|||
using Microsoft.AspNetCore.Components; |
|||
using Microsoft.AspNetCore.Components.Routing; |
|||
using Volo.Abp.UI.Navigation; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic |
|||
{ |
|||
public partial class FirstLevelNavMenuItem : IDisposable |
|||
{ |
|||
[Inject] private NavigationManager NavigationManager { get; set; } |
|||
|
|||
[Parameter] |
|||
public ApplicationMenuItem MenuItem { get; set; } |
|||
|
|||
public bool IsSubMenuOpen { get; set; } |
|||
|
|||
protected override void OnInitialized() |
|||
{ |
|||
NavigationManager.LocationChanged += OnLocationChanged; |
|||
} |
|||
|
|||
private void ToggleSubMenu() |
|||
{ |
|||
IsSubMenuOpen = !IsSubMenuOpen; |
|||
} |
|||
|
|||
public void Dispose() |
|||
{ |
|||
NavigationManager.LocationChanged -= OnLocationChanged; |
|||
} |
|||
|
|||
private void OnLocationChanged(object sender, LocationChangedEventArgs e) |
|||
{ |
|||
IsSubMenuOpen = false; |
|||
StateHasChanged(); |
|||
} |
|||
} |
|||
} |
|||
@ -1,12 +1,34 @@ |
|||
namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic |
|||
using System; |
|||
using Microsoft.AspNetCore.Components; |
|||
using Microsoft.AspNetCore.Components.Routing; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic |
|||
{ |
|||
public partial class MainLayout |
|||
public partial class MainLayout : IDisposable |
|||
{ |
|||
[Inject] private NavigationManager NavigationManager { get; set; } |
|||
|
|||
private bool IsCollapseShown { get; set; } |
|||
|
|||
protected override void OnInitialized() |
|||
{ |
|||
NavigationManager.LocationChanged += OnLocationChanged; |
|||
} |
|||
|
|||
private void ToggleCollapse() |
|||
{ |
|||
IsCollapseShown = !IsCollapseShown; |
|||
} |
|||
|
|||
public void Dispose() |
|||
{ |
|||
NavigationManager.LocationChanged -= OnLocationChanged; |
|||
} |
|||
|
|||
private void OnLocationChanged(object sender, LocationChangedEventArgs e) |
|||
{ |
|||
IsCollapseShown = false; |
|||
StateHasChanged(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,38 @@ |
|||
using System; |
|||
using Microsoft.AspNetCore.Components; |
|||
using Microsoft.AspNetCore.Components.Routing; |
|||
using Volo.Abp.UI.Navigation; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic |
|||
{ |
|||
public partial class SecondLevelNavMenuItem : IDisposable |
|||
{ |
|||
[Inject] private NavigationManager NavigationManager { get; set; } |
|||
|
|||
[Parameter] |
|||
public ApplicationMenuItem MenuItem { get; set; } |
|||
|
|||
public bool IsSubMenuOpen { get; set; } |
|||
|
|||
protected override void OnInitialized() |
|||
{ |
|||
NavigationManager.LocationChanged += OnLocationChanged; |
|||
} |
|||
|
|||
private void ToggleSubMenu() |
|||
{ |
|||
IsSubMenuOpen = !IsSubMenuOpen; |
|||
} |
|||
|
|||
public void Dispose() |
|||
{ |
|||
NavigationManager.LocationChanged -= OnLocationChanged; |
|||
} |
|||
|
|||
private void OnLocationChanged(object sender, LocationChangedEventArgs e) |
|||
{ |
|||
IsSubMenuOpen = false; |
|||
StateHasChanged(); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue