47 lines
1.2 KiB
C#

using AmtScanner.Api.Models;
namespace AmtScanner.Api.Services;
/// <summary>
/// 菜单服务接口
/// </summary>
public interface IMenuService
{
/// <summary>
/// 获取用户菜单(根据角色过滤)
/// </summary>
Task<List<MenuDto>> GetUserMenusAsync(int userId);
/// <summary>
/// 获取所有菜单
/// </summary>
Task<List<MenuDto>> GetAllMenusAsync();
}
/// <summary>
/// 菜单 DTO - 符合前端 AppRouteRecord 格式
/// </summary>
public class MenuDto
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Path { get; set; } = string.Empty;
public string? Component { get; set; }
public MenuMetaDto Meta { get; set; } = new();
public List<MenuDto> Children { get; set; } = new();
}
/// <summary>
/// 菜单元数据 DTO - 符合前端 RouteMeta 格式
/// </summary>
public class MenuMetaDto
{
public string Title { get; set; } = string.Empty;
public string? Icon { get; set; }
public bool IsHide { get; set; }
public bool KeepAlive { get; set; }
public string? Link { get; set; }
public bool IsIframe { get; set; }
public List<string> Roles { get; set; } = new();
}