using System; using System.Collections.ObjectModel; using System.ComponentModel; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; namespace Sanhe.Abp.MenuManagement { /// /// 菜单 /// [DisplayName("菜单")] public class Menu : FullAuditedAggregateRoot { /// /// 名称 /// [DisplayName("名称")] public virtual string Name { get; protected set; } /// /// 显示名称 /// [DisplayName("显示名称")] public virtual string DisplayName { get; protected set; } /// /// 类型 /// [DisplayName("类型")] public virtual MenuEnumType MenuType { get; protected set; } /// /// 组件路径 /// [DisplayName("组件路径")] public virtual string ComponentPath { get; set; } /// /// 路由路径 /// [DisplayName("路由路径")] public virtual string RouterPath { get; set; } /// /// 父Id /// [DisplayName("父Id")] public virtual Guid? ParentId { get; set; } /// /// 图标 /// [DisplayName("图标")] public virtual string Icon { get; set; } /// /// 排序 /// [DisplayName("排序")] public virtual string Sort { get; set; } /// /// window.open _blank /// [DisplayName("window.open _blank ")] public virtual string TargetUrl { get; set; } /// /// 此菜单关联的权限key /// [DisplayName("此菜单关联的权限key")] public virtual string PermissionKey { get; set; } /// /// 表示多租户应用程序中的所属方 /// [DisplayName("表示多租户应用程序中的所属方")] public virtual MultiTenancySides MultiTenancySide { get; set; } /// /// 父菜单 /// public virtual Menu Parent { get; set; } /// /// 子菜单 /// public virtual Collection Children { get; set; } protected Menu() { } public Menu( Guid id, string name, string displayName, MenuEnumType menuType, MultiTenancySides multiTenancySide = MultiTenancySides.Both ) { Id = id; Name = name; DisplayName = displayName; MenuType = menuType; MultiTenancySide = multiTenancySide; Children = new Collection(); } } }