Files
jinko.yikatong/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs

98 lines
2.2 KiB
C#

using System.ComponentModel.DataAnnotations;
using Dlhis.Entity.Sys.Enums;
namespace Dlhis.Sys.Menu.Request;
public class SaveMenuRequest : IValidatableObject
{
public int? Id { get; set; }
/// <summary>
/// code
/// </summary>
public string Code { get; set; }
/// <summary>
/// 上级
/// </summary>
public string PCode { get; set; }
/// <summary>
/// Name
/// </summary>
[Required(ErrorMessage = "Name不能为空")]
public string Name { get; set; }
/// <summary>
/// 标题
/// </summary>
[Required(ErrorMessage = "标题不能为空")]
public string Title { get; set; }
/// <summary>
/// 图标
/// </summary>
public string Icon { get; set; }
/// <summary>
/// 路由地址
/// </summary>
public string Route { get; set; }
/// <summary>
/// 权限标识
/// </summary>
public string Permission { get; set; }
/// <summary>
/// 是否可见
/// </summary>
public bool? Visible { get; set; }
/// <summary>
/// 是否为外链
/// </summary>
public bool IsLink { get; set; }
/// <summary>
/// 序号
/// </summary>
public int Sequence { get; set; }
/// <summary>
/// 菜单类型 MenuEnumType
/// </summary>
[EnumDataType(typeof(MenuEnumType))]
public MenuEnumType MenuType { get; set; }
/// <summary>
/// 平台 PlatformEnumType
/// </summary>
[EnumDataType(typeof(PlatformEnumType))]
public PlatformEnumType Platform { get; set; }
/// <summary>
/// 兼容reset处理
/// </summary>
public List<SaveMenuRequest> Items { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if ((MenuType == MenuEnumType.Menu || MenuType == MenuEnumType.Button) && string.IsNullOrEmpty(Permission))
{
yield return new ValidationResult("当类型为菜单或者按钮时,权限标识不能为空", new[] { nameof(Permission) });
}
//自动生成code
if (string.IsNullOrEmpty(Code))
{
Code = Guid.NewGuid().ToString();
}
if (!Visible.HasValue)
{
Visible = true;
}
}
}