Lepton X MVC UI
Lepton X 主题已实现,可直接与 ABP 配合使用。对于 Razor Pages,无需自定义实现。
安装
- 使用 CLI 将包安装到您的 Web 项目中。
abp add-package Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX
从项目中移除
Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton和Volo.Abp.LeptonTheme.Management.Web的引用,因为切换到 LeptonX 后不再需要它们。确保在您的 Module 类中已移除旧主题并添加了 LeptonX。
[DependsOn(
// ...
// 移除以下行
- typeof(LeptonThemeManagementWebModule),
- typeof(AbpAspNetCoreMvcUiLeptonThemeModule),
// 添加下面这行
+ typeof(AbpAspNetCoreMvcUiLeptonXThemeModule),
)]
- 在 AbpBundlingOptions 中将
LeptonThemeBundles替换为LeptonXThemeBundles。
options.StyleBundles.Configure(
LeptonXThemeBundles.Styles.Global, // 👈 此处
bundle =>
{
bundle.AddFiles("/global-styles.css");
}
);
源代码
您可以根据您的 ABP 许可证下载 LeptonX 主题的源代码。
访问 Lepton X 源代码 部分以下载源代码。
自定义
在开始自定义主题之前,您可以考虑下载主题的源代码。您可以在源代码中找到相关组件的原始代码。
外观
您可以使用 LeptonXThemeOptions 来设置默认主题、添加或移除外观样式以及布局背景样式。
DefaultStyle:定义默认的回退主题。默认值为 Dim
Configure<LeptonXThemeOptions>(options =>
{
options.DefaultStyle = LeptonXStyleNames.Dark;
});
Styles:定义可从 UI 中选择的外观。
Configure<LeptonXThemeOptions>(options =>
{
// 移除现有样式
options.Styles.Remove(LeptonXStyleNames.Light);
// 添加新样式
options.Styles.Add("red",
new LeptonXThemeStyle(
LocalizableString.Create<YourResource>("Theme:Red"),
"bi bi-circle-fill"));
});
为了在选择自定义主题时能正常切换,必须在 wwwroot/Themes/LeptonX/Global/side-menu/css/ 文件夹下添加
red.css和bootstrap-red.css文件。如果您的布局是 TopMenu,则必须将它们添加到 wwwroot/Themes/LeptonX/Global/top-menu/css/ 文件夹下。
工具栏
LeptonX 包含独立的桌面版和移动版工具栏。您可以独立管理工具栏。工具栏名称可在 LeptonXToolbars 类中访问。
LeptonXToolbars.MainLeptonXToolbars.MainMobile
public async Task ConfigureToolbarAsync(IToolbarConfigurationContext context)
{
if (context.Toolbar.Name == LeptonXToolbars.Main)
{
context.Toolbar.Items.Add(new ToolbarItem(typeof(MyDesktopComponent)));
}
if (context.Toolbar.Name == LeptonXToolbars.MainMobile)
{
context.Toolbar.Items.Add(new ToolbarItem(typeof(MyMobileComponent)));
}
return Task.CompletedTask;
}
您可以访问 工具栏文档 以获得更好的理解。
您可以使用以下 javascript API 在样式更改时添加额外的逻辑。
leptonx.CSSLoadEvent.on(event => {
console.log("样式已从 " + event.detail.previousTheme + " 更改为 "+ event.detail.theme);
});
LeptonXThemeMvcOptions
MVC Razor Pages UI 的布局选项可以通过 LeptonXThemeMvcOptions 进行管理。
ApplicationLayout:主应用程序的布局。默认值为LeptonXMvcLayouts.SideMenuConfigure<LeptonXThemeMvcOptions>(options => { options.ApplicationLayout = LeptonXMvcLayouts.SideMenu; // 或者您自定义实现的布局: options.ApplicationLayout = "~/Shared/_Layout.cshtml"; });MobileMenuSelector:定义在移动菜单中显示的项。默认值为主菜单项的前 2 项。Configure<LeptonXThemeMvcOptions>(options => { options.MobileMenuSelector = items => items.Where(x => x.MenuItem.Name == "MyProjectName.Home" || x.MenuItem.Name == "MyProjectName.Dashboard"); });AccountLayoutBackgroundStyle:定义账户布局的背景样式。Configure<LeptonXThemeMvcOptions>(options => { options.AccountLayoutBackgroundStyle = "background-image: url('/images/login-background-image.svg') !important;"; });
布局
LeptonX 为您的 Web 应用程序提供了两种 现成的布局。一种是 菜单项位于顶部,另一种是 菜单项位于侧边。
顶部菜单布局
侧边菜单布局
布局定义在 Themes/LeptonX/Layouts/Application 文件夹中,您可以通过在相同文件夹下创建同名文件(SideMenuLayout.cshtml 或 TopMenuLayout.cshtml)来覆盖它。
在 Themes/LeptonX/Layouts/Application 文件夹中定义了一些分部视图。您可以通过在相同文件夹下创建同名文件来覆盖它们。
- _Footer.cshtml
- _Sidebar.cshtml
- _Toolbar.cshtml
自定义页脚部分
在 Themes/LeptonX/Layouts/Application 文件夹下添加 _Footer.cshtml 文件来自定义页脚:
<div class="text-center py-2 lpx-footer">
<span class="copyright-text">
@DateTime.Now.Year © AbpSolution1<br />
</span>
</div>
您同样可以自定义 _Sidebar.cshtml 和 _Toolbar.cshtml 文件。
账户布局
账户布局定义在 Themes/LeptonX/Layouts/Account 文件夹中,您可以通过在相同文件夹下创建同名文件(Default.cshtml)来覆盖它。其中有一个分部视图,名为 Footer.cshtml。您可以通过相同方式来覆盖它。
组件
Abp 帮助您构建高度可定制的 UI。您可以轻松地自定义主题以满足您的需求。虚拟文件系统使得管理物理上不存在于文件系统(磁盘)上的文件成为可能。它主要用于将 (js, css, image..) 文件嵌入程序集,并在运行时像物理文件一样使用它们。
应用程序(或另一个模块)可以覆盖模块的虚拟文件,就像在虚拟文件的相同文件夹中放置一个同名且同扩展名的文件一样。
LeptonX 基于 ABP 构建,因此您可以轻松地按照 Abp Mvc UI 自定义 指南自定义您的 Asp.Net Core Mvc 用户界面。
通用组件
在所有布局中常用的组件。
面包屑导航
面包屑导航可以通过 IPageLayout 服务进行自定义。有关更多信息,请参阅 PageLayout - 面包屑导航。
如果需要替换该组件,您可以按照以下步骤操作。
面包屑组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/Common/BreadCrumb/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。面包屑组件(C# 文件) 定义在
Themes/LeptonX/Components/Common/BreadCrumb/ContentBreadCrumbViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
内容标题
页面标题可以通过 IPageLayout 服务进行自定义。有关更多信息,请参阅 PageLayout - 页面标题。
如果需要替换该组件,您可以按照以下步骤操作。
内容标题组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/Common/ContentTitle/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。内容标题组件(C# 文件) 定义在
Themes/LeptonX/Components/Common/ContentTitle/ContentTitleViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
常规设置
常规设置可以通过以下文件替换。
常规设置组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/Common/GeneralSettings/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。常规设置组件(C# 文件) 定义在
Themes/LeptonX/Components/Common/GeneralSettings/GeneralSettingsViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
主头部品牌标识
应用程序名称和徽标可以通过 IBrandingProvider 服务进行自定义。有关更多信息,请参阅 Razor 页面:品牌标识。
如果需要替换该组件,您可以按照以下步骤操作。
主头部品牌标识组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/Common/MainHeaderBranding/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。主头部品牌标识组件(C# 文件) 定义在
Themes/LeptonX/Components/Common/MainHeaderBranding/MainHeaderBrandingViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
移动版常规设置
移动版常规设置组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/Common/MobileGeneralSettings/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。移动版常规设置组件(C# 文件) 定义在
Themes/LeptonX/Components/Common/MobileGeneralSettings/MobileGeneralSettingsViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
页面提醒
页面提醒组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/PageAlerts/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。页面提醒组件(C# 文件) 定义在
Themes/LeptonX/Components/PageAlerts/PageAlertsViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
侧边菜单组件
在侧边菜单布局中使用的组件。
主菜单
主菜单组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/SideMenu/MainMenu/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。主菜单组件(C# 文件) 定义在
Themes/LeptonX/Components/SideMenu/MainMenu/MainMenuViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
主菜单组件使用分部视图来渲染菜单项。该分部视图定义在
Themes/LeptonX/Components/SideMenu/MainMenu/_MenuItem.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
移动导航栏
移动导航栏组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/SideMenu/MobileNavbar/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。移动导航栏组件(C# 文件) 定义在
Themes/LeptonX/Components/SideMenu/MobileNavbar/MobileNavbarViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
语言切换器
语言切换器组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/SideMenu/Toolbar/LanguageSwitch/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。语言切换器组件(C# 文件) 定义在
Themes/LeptonX/Components/SideMenu/Toolbar/LanguageSwitch/LanguageSwitchViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
用户菜单
用户菜单组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/SideMenu/Toolbar/UserMenu/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。用户菜单组件(C# 文件) 定义在
Themes/LeptonX/Components/SideMenu/Toolbar/UserMenu/UserMenuViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
LeptonX 实现了 ABP 菜单 ABP 导航/菜单。因此您可以查看该文档以了解如何向用户菜单添加/移除菜单项。
顶部菜单组件
在顶部菜单布局中使用的组件。
主头部
主头部组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/TopMenu/MainHeader/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。主头部组件(C# 文件) 定义在
Themes/LeptonX/Components/TopMenu/MainHeader/MainHeaderViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
主头部工具栏
主头部工具栏组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/TopMenu/MainHeaderToolbar/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。主头部工具栏组件(C# 文件) 定义在
Themes/LeptonX/Components/TopMenu/MainHeaderToolbar/MainHeaderToolbarViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
在替换主头部工具栏组件之前,请访问 ABP 工具栏 文档以了解如何向主头部工具栏添加/移除菜单项。
主菜单
主菜单组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/TopMenu/MainMenu/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。主菜单组件(C# 文件) 定义在
Themes/LeptonX/Components/TopMenu/MainMenu/MainMenuViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
用户菜单
用户菜单组件页面(.cshtml 文件) 定义在
Themes/LeptonX/Components/TopMenu/UserMenu/Default.cshtml文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。用户菜单组件(C# 文件) 定义在
Themes/LeptonX/Components/TopMenu/UserMenu/UserMenuViewComponent.cs文件中,您可以通过在相同文件夹下创建同名文件来覆盖它。
在替换用户菜单组件之前,请访问 ABP 导航/菜单 文档以了解如何向用户菜单添加/移除菜单项。
抠丁客























