Merge branch 'refs/heads/pure-dev' into abp

This commit is contained in:
橙子
2024-09-06 22:06:26 +08:00
3 changed files with 77 additions and 9 deletions

View File

@@ -270,6 +270,9 @@ namespace Yi.Framework.Rbac.Application.Services
} }
/// <summary> /// <summary>
/// 获取当前登录用户的前端路由 /// 获取当前登录用户的前端路由
/// </summary> /// </summary>

View File

@@ -0,0 +1,33 @@
namespace Yi.Framework.Rbac.Domain.Shared.Dtos;
public class Vue3PureRouterDto
{
public string Path { get; set; }
public string Name { get; set; }
public MetaPureRouterDto Meta { get; set; } = new MetaPureRouterDto();
public List<Vue3PureRouterDto>? Children { get; set; }
}
public class MetaPureRouterDto
{
public string Icon { get; set; }
public string Title { get; set; }
/// <summary>
/// 排序
/// </summary>
public string Rank { get; set; }
public List<string>? Roles { get; set; }
public List<string>? Auths { get; set; }
public string? FrameSrc { get; set; }
public string? FrameLoading { get; set; }
public bool? KeepAlive { get; set; }
public bool? showLink { get; set; }
}

View File

@@ -15,10 +15,22 @@ namespace Yi.Framework.Rbac.Domain.Entities
[SugarTable("Menu")] [SugarTable("Menu")]
public partial class MenuAggregateRoot : AggregateRoot<Guid>, ISoftDelete, IAuditedObject, IOrderNum, IState public partial class MenuAggregateRoot : AggregateRoot<Guid>, ISoftDelete, IAuditedObject, IOrderNum, IState
{ {
public MenuAggregateRoot() { } public MenuAggregateRoot()
{
}
public MenuAggregateRoot(Guid id)
{
Id = id;
ParentId = Guid.Empty;
}
public MenuAggregateRoot(Guid id, Guid parentId)
{
Id = id;
ParentId = parentId;
}
public MenuAggregateRoot(Guid id) { Id = id; ParentId = Guid.Empty; }
public MenuAggregateRoot(Guid id, Guid parentId) { Id = id; ParentId = parentId; }
/// <summary> /// <summary>
/// 主键 /// 主键
/// </summary> /// </summary>
@@ -64,16 +76,19 @@ namespace Yi.Framework.Rbac.Domain.Entities
/// 菜单名 /// 菜单名
/// </summary> /// </summary>
public string MenuName { get; set; } = string.Empty; public string MenuName { get; set; } = string.Empty;
/// <summary> /// <summary>
/// ///
///</summary> ///</summary>
[SugarColumn(ColumnName = "MenuType")] [SugarColumn(ColumnName = "MenuType")]
public MenuTypeEnum MenuType { get; set; } = MenuTypeEnum.Menu; public MenuTypeEnum MenuType { get; set; } = MenuTypeEnum.Menu;
/// <summary> /// <summary>
/// ///
///</summary> ///</summary>
[SugarColumn(ColumnName = "PermissionCode")] [SugarColumn(ColumnName = "PermissionCode")]
public string? PermissionCode { get; set; } public string? PermissionCode { get; set; }
/// <summary> /// <summary>
/// ///
///</summary> ///</summary>
@@ -85,21 +100,25 @@ namespace Yi.Framework.Rbac.Domain.Entities
///</summary> ///</summary>
[SugarColumn(ColumnName = "MenuIcon")] [SugarColumn(ColumnName = "MenuIcon")]
public string? MenuIcon { get; set; } public string? MenuIcon { get; set; }
/// <summary> /// <summary>
/// 菜单组件路由 /// 菜单组件路由
///</summary> ///</summary>
[SugarColumn(ColumnName = "Router")] [SugarColumn(ColumnName = "Router")]
public string? Router { get; set; } public string? Router { get; set; }
/// <summary> /// <summary>
/// 是否为外部链接 /// 是否为外部链接
///</summary> ///</summary>
[SugarColumn(ColumnName = "IsLink")] [SugarColumn(ColumnName = "IsLink")]
public bool IsLink { get; set; } public bool IsLink { get; set; }
/// <summary> /// <summary>
/// 是否缓存 /// 是否缓存
///</summary> ///</summary>
[SugarColumn(ColumnName = "IsCache")] [SugarColumn(ColumnName = "IsCache")]
public bool IsCache { get; set; } public bool IsCache { get; set; }
/// <summary> /// <summary>
/// 是否显示 /// 是否显示
///</summary> ///</summary>
@@ -111,20 +130,20 @@ namespace Yi.Framework.Rbac.Domain.Entities
///</summary> ///</summary>
[SugarColumn(ColumnName = "Remark")] [SugarColumn(ColumnName = "Remark")]
public string? Remark { get; set; } public string? Remark { get; set; }
/// <summary> /// <summary>
/// 组件路径 /// 组件路径
///</summary> ///</summary>
[SugarColumn(ColumnName = "Component")] [SugarColumn(ColumnName = "Component")]
public string? Component { get; set; } public string? Component { get; set; }
/// <summary> /// <summary>
/// 路由参数 /// 路由参数
///</summary> ///</summary>
[SugarColumn(ColumnName = "Query")] [SugarColumn(ColumnName = "Query")]
public string? Query { get; set; } public string? Query { get; set; }
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)] public List<MenuAggregateRoot>? Children { get; set; }
public List<MenuAggregateRoot>? Children { get; set; }
} }
/// <summary> /// <summary>
@@ -143,7 +162,6 @@ namespace Yi.Framework.Rbac.Domain.Entities
List<Vue3RouterDto> routers = new(); List<Vue3RouterDto> routers = new();
foreach (var m in menus) foreach (var m in menus)
{ {
var r = new Vue3RouterDto(); var r = new Vue3RouterDto();
r.OrderNum = m.OrderNum; r.OrderNum = m.OrderNum;
var routerName = m.Router?.Split("/").LastOrDefault(); var routerName = m.Router?.Split("/").LastOrDefault();
@@ -171,6 +189,7 @@ namespace Yi.Framework.Rbac.Domain.Entities
r.Component = "ParentView"; r.Component = "ParentView";
} }
} }
if (m.MenuType == MenuTypeEnum.Menu) if (m.MenuType == MenuTypeEnum.Menu)
{ {
r.Redirect = "noRedirect"; r.Redirect = "noRedirect";
@@ -178,6 +197,7 @@ namespace Yi.Framework.Rbac.Domain.Entities
r.Component = m.Component!; r.Component = m.Component!;
r.AlwaysShow = false; r.AlwaysShow = false;
} }
r.Meta = new Meta r.Meta = new Meta
{ {
Title = m.MenuName!, Title = m.MenuName!,
@@ -192,8 +212,20 @@ namespace Yi.Framework.Rbac.Domain.Entities
routers.Add(r); routers.Add(r);
} }
return TreeHelper.SetTree(routers);
return TreeHelper.SetTree(routers);
}
/// <summary>
/// 构建vue3 pure路由
/// </summary>
/// <param name="menus"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public static List<Vue3PureRouterDto> Vue3PureRouterBuild(this List<MenuAggregateRoot> menus)
{
throw new NotImplementedException();
} }
} }
} }