using AmtScanner.Api.Models;
namespace AmtScanner.Api.Services;
///
/// 菜单服务接口
///
public interface IMenuService
{
///
/// 获取用户菜单(根据角色过滤)
///
Task> GetUserMenusAsync(int userId);
///
/// 获取所有菜单
///
Task> GetAllMenusAsync();
}
///
/// 菜单 DTO - 符合前端 AppRouteRecord 格式
///
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 Children { get; set; } = new();
}
///
/// 菜单元数据 DTO - 符合前端 RouteMeta 格式
///
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 Roles { get; set; } = new();
}