15 changed files with 182 additions and 42 deletions
|
After Width: | Height: | Size: 628 KiB |
@ -0,0 +1,15 @@ |
|||
using AntDesign; |
|||
using Volo.Abp.Settings; |
|||
|
|||
namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; |
|||
|
|||
public class AntDesignSettingDefinitionProvider : SettingDefinitionProvider |
|||
{ |
|||
public override void Define(ISettingDefinitionContext context) |
|||
{ |
|||
context.Add( |
|||
new SettingDefinition(AntDesignSettingNames.MenuPlacement, MenuPlacement.Left.ToString()), |
|||
new SettingDefinition(AntDesignSettingNames.MenuTheme, MenuTheme.Dark.ToString()) |
|||
); |
|||
} |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; |
|||
|
|||
public class AntDesignSettingNames |
|||
{ |
|||
public const string MenuPlacement = "AntDesignTheme.Menu.MenuPlacement"; |
|||
|
|||
public const string MenuTheme = "AntDesignTheme.Menu.Theme"; |
|||
} |
|||
@ -0,0 +1,40 @@ |
|||
using System; |
|||
using System.Security.AccessControl; |
|||
using System.Threading.Tasks; |
|||
using AntDesign; |
|||
using AntDesign.Core.Helpers.MemberPath; |
|||
using Microsoft.AspNetCore.Components; |
|||
using Microsoft.Extensions.Options; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Volo.Abp.Settings; |
|||
|
|||
namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; |
|||
|
|||
public class AntDesignSettingsProvider : IAntDesignSettingsProvider, IScopedDependency |
|||
{ |
|||
//TODO use SettingProvider instead of AbpAntDesignThemeOptions
|
|||
// [Inject]
|
|||
// protected ISettingProvider SettingProvider { get; set; }
|
|||
|
|||
[Inject] |
|||
public IOptions<AbpAntDesignThemeOptions> Options { get; set; } |
|||
|
|||
public delegate Task AntDesignSettingChangedHandler(); |
|||
|
|||
public event AntDesignSettingChangedHandler SettingChanged; |
|||
|
|||
public Task<MenuPlacement> GetMenuPlacementAsync() |
|||
{ |
|||
return Task.FromResult(Options.Value.Menu.Placement); |
|||
} |
|||
|
|||
public Task<MenuTheme> GetMenuThemeAsync() |
|||
{ |
|||
return Task.FromResult(Options.Value.Menu.Theme); |
|||
} |
|||
|
|||
public Task TriggerSettingChanged() |
|||
{ |
|||
return SettingChanged?.Invoke(); |
|||
} |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using AntDesign; |
|||
|
|||
namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; |
|||
|
|||
public interface IAntDesignSettingsProvider |
|||
{ |
|||
Task<MenuPlacement> GetMenuPlacementAsync(); |
|||
|
|||
Task<MenuTheme> GetMenuThemeAsync(); |
|||
|
|||
Task TriggerSettingChanged(); |
|||
|
|||
public event AntDesignSettingsProvider.AntDesignSettingChangedHandler SettingChanged; |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; |
|||
|
|||
public enum MenuPlacement |
|||
{ |
|||
Top, |
|||
Left |
|||
} |
|||
@ -1,6 +1,15 @@ |
|||
@page "/" |
|||
@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings |
|||
|
|||
<AbpPageHeader Title="Index" BreadcrumbItems="@BreadcrumbItems" Toolbar="@Toolbar"/> |
|||
|
|||
<div class="page-content"> |
|||
<p>hello world</p> |
|||
|
|||
<h4>Menu Placement</h4> |
|||
<Button Type="@ButtonType.Primary" OnClick="() => ChangeMenuPlacement(MenuPlacement.Top)">Top</Button> |
|||
<Button Type="@ButtonType.Primary" OnClick="() => ChangeMenuPlacement(MenuPlacement.Left)">Left</Button> |
|||
|
|||
<h4>Menu Theme</h4> |
|||
<Button Type="@ButtonType.Primary" OnClick="() => ChangeMenuTheme(MenuTheme.Dark)">Dark</Button> |
|||
<Button Type="@ButtonType.Primary" OnClick="() => ChangeMenuTheme(MenuTheme.Light)">Light</Button> |
|||
</div> |
|||
|
|||
Loading…
Reference in new issue