这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.8 KiB

LINGYUN.Abp.UI.Navigation

简体中文 | English

菜单导航模块,提供可扩展自定义的菜单项

功能特性

  • 支持自定义菜单项定义和扩展
  • 支持多租户
  • 支持菜单项的层级结构
  • 支持菜单项的排序
  • 支持菜单项的可见性和禁用状态
  • 支持菜单项的图标和重定向
  • 支持菜单种子数据的初始化

模块引用

[DependsOn(typeof(AbpUINavigationModule))]
public class YouProjectModule : AbpModule
{
  // other
}

基本用法

1. 定义菜单提供者

通过实现 INavigationDefinitionProvider 接口来定义菜单项:

public class FakeNavigationDefinitionProvider : NavigationDefinitionProvider
{
    public override void Define(INavigationDefinitionContext context)
    {
        context.Add(GetNavigationDefinition());
    }

    private static NavigationDefinition GetNavigationDefinition()
    {
        var dashboard = new ApplicationMenu(
            name: "Vben Dashboard",
            displayName: "仪表盘",
            url: "/dashboard",
            component: "",
            description: "仪表盘",
            icon: "ion:grid-outline",
            redirect: "/dashboard/analysis");

         dashboard.AddItem(
            new ApplicationMenu(
            name: "Analysis",
            displayName: "分析页",
            url: "/dashboard/analysis",
            component: "/dashboard/analysis/index",
            description: "分析页"));

         return new NavigationDefinition(dashboard);
    }
}

2. 初始化菜单数据

通过实现 INavigationSeedContributor 接口来初始化菜单种子数据:

public class YourNavigationDataSeeder : INavigationSeedContributor
{
    public async Task SeedAsync(NavigationSeedContext context)
    {
        // 在这里初始化菜单数据
    }
}

菜单项属性说明

  • Name - 菜单项名称(唯一标识)
  • DisplayName - 显示名称
  • Description - 说明
  • Url - 路径
  • Component - 组件路径
  • Redirect - 重定向路径
  • Icon - 图标
  • Order - 排序(默认1000)
  • IsDisabled - 是否禁用
  • IsVisible - 是否可见
  • Items - 子菜单项集合
  • ExtraProperties - 扩展属性
  • MultiTenancySides - 多租户选项

最佳实践

  1. 菜单项命名建议使用有意义的名称,便于管理和维护
  2. 合理使用菜单项的排序,保持界面的整洁
  3. 使用图标增强用户体验
  4. 适当使用重定向功能优化导航体验
  5. 根据实际需求控制菜单项的可见性和禁用状态

注意事项

  1. 菜单项的Name必须唯一
  2. 子菜单项会继承父菜单项的多租户设置
  3. 菜单项的排序值越小越靠前
  4. 禁用的菜单项仍然可见,但无法点击
  5. 组件路径应与前端路由配置保持一致