diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs
index 7a838659..3a97bd76 100644
--- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs
+++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs
@@ -270,6 +270,9 @@ namespace Yi.Framework.Rbac.Application.Services
}
+
+
+
///
/// 获取当前登录用户的前端路由
///
diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/Vue3PureRouterDto.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/Vue3PureRouterDto.cs
new file mode 100644
index 00000000..6c25e5ed
--- /dev/null
+++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/Vue3PureRouterDto.cs
@@ -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? Children { get; set; }
+}
+
+public class MetaPureRouterDto
+{
+ public string Icon { get; set; }
+ public string Title { get; set; }
+
+ ///
+ /// 排序
+ ///
+ public string Rank { get; set; }
+
+ public List? Roles { get; set; }
+
+ public List? Auths { get; set; }
+
+ public string? FrameSrc { get; set; }
+
+ public string? FrameLoading { get; set; }
+
+ public bool? KeepAlive { get; set; }
+
+ public bool? showLink { get; set; }
+}
\ No newline at end of file
diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Entities/MenuAggregateRoot.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Entities/MenuAggregateRoot.cs
index 7ebed1ea..49b981b2 100644
--- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Entities/MenuAggregateRoot.cs
+++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Entities/MenuAggregateRoot.cs
@@ -15,10 +15,22 @@ namespace Yi.Framework.Rbac.Domain.Entities
[SugarTable("Menu")]
public partial class MenuAggregateRoot : AggregateRoot, 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; }
///
/// 主键
///
@@ -64,16 +76,19 @@ namespace Yi.Framework.Rbac.Domain.Entities
/// 菜单名
///
public string MenuName { get; set; } = string.Empty;
+
///
///
///
[SugarColumn(ColumnName = "MenuType")]
public MenuTypeEnum MenuType { get; set; } = MenuTypeEnum.Menu;
+
///
///
///
[SugarColumn(ColumnName = "PermissionCode")]
public string? PermissionCode { get; set; }
+
///
///
///
@@ -85,21 +100,25 @@ namespace Yi.Framework.Rbac.Domain.Entities
///
[SugarColumn(ColumnName = "MenuIcon")]
public string? MenuIcon { get; set; }
+
///
/// 菜单组件路由
///
[SugarColumn(ColumnName = "Router")]
public string? Router { get; set; }
+
///
/// 是否为外部链接
///
[SugarColumn(ColumnName = "IsLink")]
public bool IsLink { get; set; }
+
///
/// 是否缓存
///
[SugarColumn(ColumnName = "IsCache")]
public bool IsCache { get; set; }
+
///
/// 是否显示
///
@@ -111,20 +130,20 @@ namespace Yi.Framework.Rbac.Domain.Entities
///
[SugarColumn(ColumnName = "Remark")]
public string? Remark { get; set; }
+
///
/// 组件路径
///
[SugarColumn(ColumnName = "Component")]
public string? Component { get; set; }
+
///
/// 路由参数
///
[SugarColumn(ColumnName = "Query")]
public string? Query { get; set; }
- [SugarColumn(IsIgnore = true)]
- public List? Children { get; set; }
-
+ [SugarColumn(IsIgnore = true)] public List? Children { get; set; }
}
///
@@ -143,7 +162,6 @@ namespace Yi.Framework.Rbac.Domain.Entities
List routers = new();
foreach (var m in menus)
{
-
var r = new Vue3RouterDto();
r.OrderNum = m.OrderNum;
var routerName = m.Router?.Split("/").LastOrDefault();
@@ -171,6 +189,7 @@ namespace Yi.Framework.Rbac.Domain.Entities
r.Component = "ParentView";
}
}
+
if (m.MenuType == MenuTypeEnum.Menu)
{
r.Redirect = "noRedirect";
@@ -178,6 +197,7 @@ namespace Yi.Framework.Rbac.Domain.Entities
r.Component = m.Component!;
r.AlwaysShow = false;
}
+
r.Meta = new Meta
{
Title = m.MenuName!,
@@ -192,8 +212,20 @@ namespace Yi.Framework.Rbac.Domain.Entities
routers.Add(r);
}
- return TreeHelper.SetTree(routers);
+ return TreeHelper.SetTree(routers);
+ }
+
+
+ ///
+ /// 构建vue3 pure路由
+ ///
+ ///
+ ///
+ ///
+ public static List Vue3PureRouterBuild(this List menus)
+ {
+ throw new NotImplementedException();
}
}
-}
+}
\ No newline at end of file