Browse Source

增加多标签页模式

pull/29/head
netty 2 years ago
parent
commit
683fcdb9a5
  1. 5
      modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/AbpAntDesignThemeOptions.cs
  2. 26
      modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/App.razor
  3. 8
      modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor
  4. 9
      modules/FeatureManagement/Lsw.Abp.FeatureManagement.Blazor.AntDesignUI/Components/FeatureManagementModal.razor
  5. 11
      modules/IdentityManagement/Lsw.Abp.IdentityManagement.Blazor.AntDesignUI/Pages/RoleManagement.razor
  6. 11
      modules/IdentityManagement/Lsw.Abp.IdentityManagement.Blazor.AntDesignUI/Pages/UserManagement.razor
  7. 9
      modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor
  8. 6
      modules/TenantManagement/Lsw.Abp.TenantManagement.Blazor.AntDesignUI/Pages/TenantManagement.razor
  9. 3
      samples/BookStore/src/BookStore.BlazorServer/BookStoreBlazorModule.cs

5
modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/AbpAntDesignThemeOptions.cs

@ -7,6 +7,11 @@ public class AbpAntDesignThemeOptions
{ {
public MenuOptions Menu { get; set; } public MenuOptions Menu { get; set; }
/// <summary>
/// 是否启用多标签页
/// </summary>
public bool EnableMultipleTabs { get; set; }
public AbpAntDesignThemeOptions() public AbpAntDesignThemeOptions()
{ {
Menu = new MenuOptions(); Menu = new MenuOptions();

26
modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/App.razor

@ -5,18 +5,20 @@
<Router AppAssembly="RouterOptions.Value.AppAssembly" <Router AppAssembly="RouterOptions.Value.AppAssembly"
AdditionalAssemblies="RouterOptions.Value.AdditionalAssemblies"> AdditionalAssemblies="RouterOptions.Value.AdditionalAssemblies">
<Found Context="routeData"> <Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(DefaultLayout)"> <CascadingValue Value="routeData">
<NotAuthorized> <AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(DefaultLayout)">
@if (!context.User.Identity.IsAuthenticated) <NotAuthorized>
{ @if (!context.User.Identity.IsAuthenticated)
<RedirectToLogin/> {
} <RedirectToLogin/>
else }
{ else
<p>You are not authorized to access this resource.</p> {
} <p>You are not authorized to access this resource.</p>
</NotAuthorized> }
</AuthorizeRouteView> </NotAuthorized>
</AuthorizeRouteView>
</CascadingValue>
</Found> </Found>
<NotFound> <NotFound>
<LayoutView Layout="@typeof(DefaultLayout)"> <LayoutView Layout="@typeof(DefaultLayout)">

8
modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor

@ -58,7 +58,13 @@ else
<Content Class="ant-design-content"> <Content Class="ant-design-content">
<PageAlert/> <PageAlert/>
<div class="ant-design-body-content"> <div class="ant-design-body-content">
@Body @if (!Options.Value.EnableMultipleTabs){
@Body
}
else
{
<ReuseTabs Class="ant-design-body-reusetabs" TabPaneClass="ant-design-body-reusetabs-tabpane" Draggable></ReuseTabs>
}
</div> </div>
<UiPageProgress/> <UiPageProgress/>
</Content> </Content>

9
modules/FeatureManagement/Lsw.Abp.FeatureManagement.Blazor.AntDesignUI/Components/FeatureManagementModal.razor

@ -1,9 +1,11 @@
@using AntDesign @using AntDesign
@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme
@using Microsoft.AspNetCore.Components @using Microsoft.AspNetCore.Components
@using Microsoft.Extensions.Localization @using Microsoft.Extensions.Localization
@using Microsoft.Extensions.Options
@using Volo.Abp.Validation.StringValues @using Volo.Abp.Validation.StringValues
@inherits AbpFeatureManagementComponentBase @inherits AbpFeatureManagementComponentBase
@implements IReuseTabsPage
<Modal Title="@L["Features"]" <Modal Title="@L["Features"]"
Visible="@_visible" Visible="@_visible"
OnOk="@SaveAsync" OnOk="@SaveAsync"
@ -76,3 +78,8 @@
} }
} }
</Modal> </Modal>
@code {
public RenderFragment GetPageTitle() =>
@<div>L["Features"]</div>;
}

11
modules/IdentityManagement/Lsw.Abp.IdentityManagement.Blazor.AntDesignUI/Pages/RoleManagement.razor

@ -1,14 +1,16 @@
@page "/identity/roles" @page "/identity/roles"
@attribute [Authorize(IdentityPermissions.Roles.Default)] @attribute [Authorize(IdentityPermissions.Roles.Default)]
@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme
@using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Authorization
@using Microsoft.Extensions.Options
@using Volo.Abp.Identity @using Volo.Abp.Identity
@using Volo.Abp.Identity.Localization @using Volo.Abp.Identity.Localization
@using Lsw.Abp.PermissionManagement.Blazor.AntDesignUI.Components @using Lsw.Abp.PermissionManagement.Blazor.AntDesignUI.Components
@using Volo.Abp.AspNetCore.Components.Web @using Volo.Abp.AspNetCore.Components.Web
@inject AbpBlazorMessageLocalizerHelper<IdentityResource> LH @inject AbpBlazorMessageLocalizerHelper<IdentityResource> LH
@inherits AbpCrudPageBase<IIdentityRoleAppService, IdentityRoleDto, Guid, GetIdentityRolesInput, IdentityRoleCreateDto, IdentityRoleUpdateDto> @inherits AbpCrudPageBase<IIdentityRoleAppService, IdentityRoleDto, Guid, GetIdentityRolesInput, IdentityRoleCreateDto, IdentityRoleUpdateDto>
@implements IReuseTabsPage
<AbpPageHeader Title="@L["Roles"]" BreadcrumbItems="@BreadcrumbItems" Toolbar="@Toolbar"/> <AbpPageHeader Title="@L["Roles"]" BreadcrumbItems="@BreadcrumbItems" Toolbar="@Toolbar" />
<div class="page-content"> <div class="page-content">
<AbpExtensibleDataGrid TItem="IdentityRoleDto" <AbpExtensibleDataGrid TItem="IdentityRoleDto"
@ -69,4 +71,9 @@
@if (HasManagePermissionsPermission) @if (HasManagePermissionsPermission)
{ {
<PermissionManagementModal @ref="PermissionManagementModal"/> <PermissionManagementModal @ref="PermissionManagementModal"/>
}
@code {
public RenderFragment GetPageTitle() =>
@<div>@L["Roles"]</div>;
} }

11
modules/IdentityManagement/Lsw.Abp.IdentityManagement.Blazor.AntDesignUI/Pages/UserManagement.razor

@ -1,13 +1,15 @@
@page "/identity/users" @page "/identity/users"
@attribute [Authorize(IdentityPermissions.Users.Default)] @attribute [Authorize(IdentityPermissions.Users.Default)]
@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme
@using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Authorization
@using Lsw.Abp.PermissionManagement.Blazor.AntDesignUI.Components @using Lsw.Abp.PermissionManagement.Blazor.AntDesignUI.Components
@using Microsoft.Extensions.Options
@using Volo.Abp.Identity @using Volo.Abp.Identity
@using Volo.Abp.Identity.Localization @using Volo.Abp.Identity.Localization
@inject AbpBlazorMessageLocalizerHelper<IdentityResource> LH @inject AbpBlazorMessageLocalizerHelper<IdentityResource> LH
@inherits AbpCrudPageBase<IIdentityUserAppService, IdentityUserDto, Guid, GetIdentityUsersInput, IdentityUserCreateDto, IdentityUserUpdateDto> @inherits AbpCrudPageBase<IIdentityUserAppService, IdentityUserDto, Guid, GetIdentityUsersInput, IdentityUserCreateDto, IdentityUserUpdateDto>
@implements IReuseTabsPage
<AbpPageHeader Title="@L["Users"]" BreadcrumbItems="@BreadcrumbItems" Toolbar="@Toolbar"/> <AbpPageHeader Title="@L["Users"]" BreadcrumbItems="@BreadcrumbItems" Toolbar="@Toolbar" />
<div class="page-content"> <div class="page-content">
<AbpExtensibleDataGrid TItem="IdentityUserDto" <AbpExtensibleDataGrid TItem="IdentityUserDto"
@ -129,4 +131,9 @@
@if (HasManagePermissionsPermission) @if (HasManagePermissionsPermission)
{ {
<PermissionManagementModal @ref="PermissionManagementModal"/> <PermissionManagementModal @ref="PermissionManagementModal"/>
}
@code {
public RenderFragment GetPageTitle() =>
@<div>@L["Users"]</div>;
} }

9
modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor

@ -1,11 +1,13 @@
@page "/setting-management" @page "/setting-management"
@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme
@using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Authorization
@using Microsoft.Extensions.Options
@using Volo.Abp.Features @using Volo.Abp.Features
@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout
@using Volo.Abp.SettingManagement @using Volo.Abp.SettingManagement
@attribute [Authorize] @attribute [Authorize]
@attribute [RequiresFeature(SettingManagementFeatures.Enable)] @attribute [RequiresFeature(SettingManagementFeatures.Enable)]
@implements IReuseTabsPage
<CascadingValue Value="this" IsFixed="true"> <CascadingValue Value="this" IsFixed="true">
<AbpPageHeader Title="@L["Settings"]" BreadcrumbItems="@BreadcrumbItems"/> <AbpPageHeader Title="@L["Settings"]" BreadcrumbItems="@BreadcrumbItems"/>
@ -32,3 +34,8 @@
</Tabs> </Tabs>
</div> </div>
</CascadingValue> </CascadingValue>
@code {
public RenderFragment GetPageTitle() =>
@<div>@L["Settings"]</div>;
}

6
modules/TenantManagement/Lsw.Abp.TenantManagement.Blazor.AntDesignUI/Pages/TenantManagement.razor

@ -8,6 +8,7 @@
@using Volo.Abp.TenantManagement @using Volo.Abp.TenantManagement
@inject AbpBlazorMessageLocalizerHelper<AbpTenantManagementResource> LH @inject AbpBlazorMessageLocalizerHelper<AbpTenantManagementResource> LH
@inherits AbpCrudPageBase<ITenantAppService, TenantDto, Guid, GetTenantsInput, TenantCreateDto, TenantUpdateDto> @inherits AbpCrudPageBase<ITenantAppService, TenantDto, Guid, GetTenantsInput, TenantCreateDto, TenantUpdateDto>
@implements IReuseTabsPage
<AbpPageHeader Title="@L["Tenants"]" BreadcrumbItems="@BreadcrumbItems" Toolbar="@Toolbar"/> <AbpPageHeader Title="@L["Tenants"]" BreadcrumbItems="@BreadcrumbItems" Toolbar="@Toolbar"/>
@ -63,4 +64,9 @@
@if (HasManageFeaturesPermission) @if (HasManageFeaturesPermission)
{ {
<FeatureManagementModal @ref="FeatureManagementModal"/> <FeatureManagementModal @ref="FeatureManagementModal"/>
}
@code {
public RenderFragment GetPageTitle() =>
@<div>@L["Tenants"]</div>;
} }

3
samples/BookStore/src/BookStore.BlazorServer/BookStoreBlazorModule.cs

@ -35,6 +35,7 @@ using Volo.Abp.UI.Navigation;
using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.VirtualFileSystem; using Volo.Abp.VirtualFileSystem;
using Volo.Abp.Timing; using Volo.Abp.Timing;
using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme;
namespace BookStore.Blazor; namespace BookStore.Blazor;
@ -75,7 +76,7 @@ public class BookStoreBlazorModule : AbpModule
var configuration = context.Services.GetConfiguration(); var configuration = context.Services.GetConfiguration();
Configure<AbpClockOptions>(options => options.Kind = DateTimeKind.Utc); Configure<AbpClockOptions>(options => options.Kind = DateTimeKind.Utc);
Configure<AbpAntDesignThemeOptions>(options=> options.EnableMultipleTabs=true);
ConfigureUrls(configuration); ConfigureUrls(configuration);
ConfigureBundles(); ConfigureBundles();
ConfigureAuthentication(context, configuration); ConfigureAuthentication(context, configuration);

Loading…
Cancel
Save