diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuCreateInputVo.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuCreateInputVo.cs index 823f2710..e93697ca 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuCreateInputVo.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuCreateInputVo.cs @@ -24,5 +24,7 @@ namespace Yi.Framework.Rbac.Application.Contracts.Dtos.Menu public string? Component { get; set; } public string? Query { get; set; } public int OrderNum { get; set; } + public MenuSourceEnum MenuSource { get; set; } = MenuSourceEnum.Ruoyi; + public string? RouterName { get; set; } } } diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuGetListInputVo.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuGetListInputVo.cs index 376aefa7..e25cb266 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuGetListInputVo.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuGetListInputVo.cs @@ -1,4 +1,5 @@ using Volo.Abp.Application.Dtos; +using Yi.Framework.Rbac.Domain.Shared.Enums; namespace Yi.Framework.Rbac.Application.Contracts.Dtos.Menu { @@ -7,6 +8,6 @@ namespace Yi.Framework.Rbac.Application.Contracts.Dtos.Menu public bool? State { get; set; } public string? MenuName { get; set; } - + public MenuSourceEnum MenuSource { get; set; } = MenuSourceEnum.Ruoyi; } } diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuUpdateInputVo.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuUpdateInputVo.cs index 70bf6c29..3ba9f924 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuUpdateInputVo.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application.Contracts/Dtos/Menu/MenuUpdateInputVo.cs @@ -20,7 +20,6 @@ namespace Yi.Framework.Rbac.Application.Contracts.Dtos.Menu public string? Component { get; set; } public string? Query { get; set; } public int OrderNum { get; set; } - - //public List? Children { get; set; } + public string? RouterName { get; set; } } } 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 3a97bd76..0882a965 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 @@ -275,11 +275,12 @@ namespace Yi.Framework.Rbac.Application.Services /// /// 获取当前登录用户的前端路由 + /// 支持ruoyi/pure /// /// [Authorize] - [Route("account/Vue3Router")] - public async Task> GetVue3Router() + [Route("account/Vue3Router/{routerType?}")] + public async Task GetVue3Router([FromRoute]string? routerType) { var userId = _currentUser.Id; if (_currentUser.Id is null) @@ -296,10 +297,20 @@ namespace Yi.Framework.Rbac.Application.Services menus = ObjectMapper.Map, List>(await _menuRepository.GetListAsync()); } - //将后端菜单转换成前端路由,组件级别需要过滤 - List routers = - ObjectMapper.Map, List>(menus).Vue3RouterBuild(); - return routers; + object output = null; + if (routerType is null ||routerType=="ruoyi") + { + //将后端菜单转换成前端路由,组件级别需要过滤 + output = + ObjectMapper.Map, List>(menus).Vue3RuoYiRouterBuild(); + } + else if (routerType =="pure") + { + //将后端菜单转换成前端路由,组件级别需要过滤 + output = + ObjectMapper.Map, List>(menus).Vue3PureRouterBuild(); + } + return output; } /// diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/System/MenuService.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/System/MenuService.cs index 0dfbf38e..324ae02c 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/System/MenuService.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/System/MenuService.cs @@ -28,6 +28,7 @@ namespace Yi.Framework.Rbac.Application.Services.System var entities = await _repository._DbQueryable.WhereIF(!string.IsNullOrEmpty(input.MenuName), x => x.MenuName.Contains(input.MenuName!)) .WhereIF(input.State is not null, x => x.State == input.State) + .Where(x=>x.MenuSource==input.MenuSource) .OrderByDescending(x => x.OrderNum) .ToListAsync(); //.ToPageListAsync(input.SkipCount, input.MaxResultCount, total); @@ -45,5 +46,15 @@ namespace Yi.Framework.Rbac.Application.Services.System return await MapToGetListOutputDtosAsync(entities); } + + public override Task UpdateAsync(Guid id, MenuUpdateInputVo input) + { + return base.UpdateAsync(id, input); + } + + public override Task CreateAsync(MenuCreateInputVo input) + { + return base.CreateAsync(input); + } } } diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs index 478a51e0..199b98e9 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs @@ -195,6 +195,11 @@ namespace Yi.Framework.Rbac.Domain.Shared.Dtos public class MenuDto { public Guid Id { get; set; } + /// + /// 菜单来源 + /// + public MenuSourceEnum MenuSource { get; set; } + public string? RouterName { get; set; } /// /// 逻辑删除 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 index 6c25e5ed..5ec31acc 100644 --- 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 @@ -2,10 +2,13 @@ public class Vue3PureRouterDto { + public Guid Id { get; set; } + public Guid ParentId { get; set; } public string Path { get; set; } public string Name { get; set; } public MetaPureRouterDto Meta { get; set; } = new MetaPureRouterDto(); - + + public string? component { get; set; } public List? Children { get; set; } } @@ -14,11 +17,6 @@ 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; } diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Enums/MenuSourceEnum.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Enums/MenuSourceEnum.cs new file mode 100644 index 00000000..36c97c3d --- /dev/null +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Enums/MenuSourceEnum.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Rbac.Domain.Shared.Enums; + +public enum MenuSourceEnum +{ + Ruoyi=0, + Pure=1 +} \ 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 49b981b2..fdf49281 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 @@ -1,4 +1,6 @@ -using SqlSugar; +using System.Web; +using NUglify.Helpers; +using SqlSugar; using Volo.Abp; using Volo.Abp.Auditing; using Volo.Abp.Domain.Entities; @@ -75,7 +77,12 @@ namespace Yi.Framework.Rbac.Domain.Entities /// /// 菜单名 /// - public string MenuName { get; set; } = string.Empty; + public string MenuName { get; set; } + + /// + /// 路由名称 + /// + public string? RouterName { get; set; } /// /// @@ -137,6 +144,11 @@ namespace Yi.Framework.Rbac.Domain.Entities [SugarColumn(ColumnName = "Component")] public string? Component { get; set; } + /// + /// 菜单来源 + /// + public MenuSourceEnum MenuSource { get; set; } = MenuSourceEnum.Ruoyi; + /// /// 路由参数 /// @@ -156,9 +168,13 @@ namespace Yi.Framework.Rbac.Domain.Entities /// /// /// - public static List Vue3RouterBuild(this List menus) + public static List Vue3RuoYiRouterBuild(this List menus) { - menus = menus.Where(m => m.MenuType != MenuTypeEnum.Component).ToList(); + menus = menus + .Where(m => m.State == true) + .Where(m => m.MenuType != MenuTypeEnum.Component) + .Where(m => m.MenuSource == MenuSourceEnum.Ruoyi) + .ToList(); List routers = new(); foreach (var m in menus) { @@ -216,16 +232,58 @@ namespace Yi.Framework.Rbac.Domain.Entities return TreeHelper.SetTree(routers); } - + /// /// 构建vue3 pure路由 /// /// /// - /// public static List Vue3PureRouterBuild(this List menus) { - throw new NotImplementedException(); + //pure的菜单为树形 + var allRouters = menus + .Where(m => m.State == true) + .Where(m => m.MenuType != MenuTypeEnum.Component) + .Where(m => m.MenuSource == MenuSourceEnum.Pure) + .Select(m => new Vue3PureRouterDto + { + Path =m.Router.StartsWith("/")?m.Router:"/"+m.Router, + Name =m.IsLink==true?"Link": m.RouterName, + component = m.Component, + Meta = new MetaPureRouterDto() + { + showLink = m.IsShow, + FrameSrc = m.IsLink == true ? m.Router : null, + Auths = new List() { m.PermissionCode }, + Icon = m.MenuIcon, + Title = m.MenuName, + + }, + Children =null, + Id = m.Id, + ParentId = m.ParentId + }) + .ToList(); + + + var routerDic = allRouters.GroupBy(x => x.ParentId).ToDictionary(x => x.Key,y=>y.ToList()); + //根路由 + if (!routerDic.TryGetValue(Guid.Empty, out var rootRouters)) + { + return new List(); + } + Stack stack = new Stack(rootRouters); + while (stack.Count > 0) + { + var currentRouter = stack.Pop(); + if (routerDic.TryGetValue(currentRouter.Id, out var items)) + { + currentRouter.Children = items; + items?.ForEach(x => stack.Push(x)); + } + } + + return rootRouters; } } } \ No newline at end of file diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Managers/UserManager.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Managers/UserManager.cs index 2e14bbd5..d3a50014 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Managers/UserManager.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Managers/UserManager.cs @@ -231,10 +231,11 @@ namespace Yi.Framework.Rbac.Domain.Managers var userRoleMenu = new UserRoleMenuDto(); //首先获取到该用户全部信息,导航到角色、菜单,(菜单需要去重,完全交给Set来处理即可) - //if (user is null) - //{ - // throw new UserFriendlyException($"数据错误,用户id:{nameof(userId)} 不存在,请重新登录"); - //} + if (user is null) + { + //为了解决token前端缓存,后端数据库重新dbseed + throw new UserFriendlyException($"数据错误,查询用户不存在,请重新登录"); + } user.EncryPassword.Password = string.Empty; user.EncryPassword.Salt = string.Empty; diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuPureDataSeed.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuPureDataSeed.cs new file mode 100644 index 00000000..75bd258f --- /dev/null +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuPureDataSeed.cs @@ -0,0 +1,519 @@ +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Guids; +using Yi.Framework.Rbac.Domain.Entities; +using Yi.Framework.Rbac.Domain.Shared.Enums; +using Yi.Framework.SqlSugarCore.Abstractions; + +namespace Yi.Framework.Rbac.SqlSugarCore.DataSeeds +{ + public class MenuPureDataSeed : IDataSeedContributor, ITransientDependency + { + private ISqlSugarRepository _repository; + private IGuidGenerator _guidGenerator; + public MenuPureDataSeed(ISqlSugarRepository repository, IGuidGenerator guidGenerator) + { + _repository = repository; + _guidGenerator = guidGenerator; + } + + public async Task SeedAsync(DataSeedContext context) + { + if (!await _repository.IsAnyAsync(x => x.MenuName == "系统管理"&&x.MenuSource==MenuSourceEnum.Pure)) + { + await _repository.InsertManyAsync(GetSeedData()); + } + } + public List GetSeedData() + { + List entities = new List(); + //系统管理 + MenuAggregateRoot system = new MenuAggregateRoot(_guidGenerator.Create(), Guid.Empty) + { + MenuName = "系统管理", + MenuType = MenuTypeEnum.Catalogue, + Router = "/system", + MenuIcon = "ri:settings-3-line", + OrderNum = 100 + }; + entities.Add(system); + + //系统监控 + MenuAggregateRoot monitoring = new MenuAggregateRoot(_guidGenerator.Create()) + { + MenuName = "系统监控", + MenuType = MenuTypeEnum.Catalogue, + Router = "/monitor", + MenuIcon = "ep:monitor", + OrderNum = 99, + }; + entities.Add(monitoring); + + + //在线用户 + MenuAggregateRoot online = new MenuAggregateRoot(_guidGenerator.Create(), monitoring.Id) + { + MenuName = "在线用户", + PermissionCode = "monitor:online:list", + MenuType = MenuTypeEnum.Menu, + Router = "/monitor/online-user", + MenuIcon = "ri:user-voice-line", + OrderNum = 100, + RouterName = "OnlineUser", + Component = "monitor/online/index" + }; + entities.Add(online); + + + //Yi框架 + MenuAggregateRoot guide = new MenuAggregateRoot(_guidGenerator.Create()) + { + MenuName = "Yi框架", + MenuType = MenuTypeEnum.Catalogue, + Router = "https://ccnetcore.com", + IsLink = true, + MenuIcon = "ri:at-line", + OrderNum = 90, + Component = null + }; + entities.Add(guide); + + //用户管理 + MenuAggregateRoot user = new MenuAggregateRoot(_guidGenerator.Create()) + { + MenuName = "用户管理", + PermissionCode = "system:user:list", + MenuType = MenuTypeEnum.Menu, + Router = "/system/user/index", + MenuIcon = "ri:admin-line", + OrderNum = 100, + ParentId = system.Id, + RouterName = "SystemUser" + }; + entities.Add(user); + + MenuAggregateRoot userQuery = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "用户查询", + PermissionCode = "system:user:query", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = user.Id, + IsDeleted = false + }; + entities.Add(userQuery); + + MenuAggregateRoot userAdd = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "用户新增", + PermissionCode = "system:user:add", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = user.Id, + IsDeleted = false + }; + entities.Add(userAdd); + + MenuAggregateRoot userEdit = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "用户修改", + PermissionCode = "system:user:edit", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = user.Id, + IsDeleted = false + }; + entities.Add(userEdit); + + MenuAggregateRoot userRemove = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "用户删除", + PermissionCode = "system:user:remove", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = user.Id, + IsDeleted = false + }; + entities.Add(userRemove); + + + MenuAggregateRoot userResetPwd = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "重置密码", + PermissionCode = "system:user:resetPwd", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = user.Id, + IsDeleted = false + }; + entities.Add(userResetPwd); + + + //角色管理 + MenuAggregateRoot role = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "角色管理", + PermissionCode = "system:role:list", + MenuType = MenuTypeEnum.Menu, + Router = "/system/role/index", + MenuIcon = "ri:admin-fill", + OrderNum = 99, + ParentId = system.Id, + RouterName = "SystemRole" + }; + entities.Add(role); + + MenuAggregateRoot roleQuery = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "角色查询", + PermissionCode = "system:role:query", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = role.Id, + IsDeleted = false + }; + entities.Add(roleQuery); + + MenuAggregateRoot roleAdd = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "角色新增", + PermissionCode = "system:role:add", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = role.Id, + IsDeleted = false + }; + entities.Add(roleAdd); + + MenuAggregateRoot roleEdit = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "角色修改", + PermissionCode = "system:role:edit", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = role.Id, + IsDeleted = false + }; + entities.Add(roleEdit); + + MenuAggregateRoot roleRemove = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "角色删除", + PermissionCode = "system:role:remove", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = role.Id, + IsDeleted = false + }; + entities.Add(roleRemove); + + + //菜单管理 + MenuAggregateRoot menu = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "菜单管理", + PermissionCode = "system:menu:list", + MenuType = MenuTypeEnum.Menu, + Router = "/system/menu/index", + MenuIcon = "ep:menu", + OrderNum = 98, + ParentId = system.Id, + RouterName = "SystemMenu" + }; + entities.Add(menu); + + MenuAggregateRoot menuQuery = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "菜单查询", + PermissionCode = "system:menu:query", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = menu.Id, + IsDeleted = false + }; + entities.Add(menuQuery); + + MenuAggregateRoot menuAdd = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "菜单新增", + PermissionCode = "system:menu:add", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = menu.Id, + IsDeleted = false + }; + entities.Add(menuAdd); + + MenuAggregateRoot menuEdit = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "菜单修改", + PermissionCode = "system:menu:edit", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = menu.Id, + IsDeleted = false + }; + entities.Add(menuEdit); + + MenuAggregateRoot menuRemove = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "菜单删除", + PermissionCode = "system:menu:remove", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = menu.Id, + IsDeleted = false + }; + entities.Add(menuRemove); + + //部门管理 + MenuAggregateRoot dept = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "部门管理", + PermissionCode = "system:dept:list", + MenuType = MenuTypeEnum.Menu, + Router = "/system/dept/index", + MenuIcon = "ri:git-branch-line", + OrderNum = 97, + ParentId = system.Id, + RouterName = "SystemDept" + }; + entities.Add(dept); + + MenuAggregateRoot deptQuery = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "部门查询", + PermissionCode = "system:dept:query", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = dept.Id, + IsDeleted = false + }; + entities.Add(deptQuery); + + MenuAggregateRoot deptAdd = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "部门新增", + PermissionCode = "system:dept:add", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = dept.Id, + IsDeleted = false + }; + entities.Add(deptAdd); + + MenuAggregateRoot deptEdit = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "部门修改", + PermissionCode = "system:dept:edit", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = dept.Id, + IsDeleted = false + }; + entities.Add(deptEdit); + + MenuAggregateRoot deptRemove = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "部门删除", + PermissionCode = "system:dept:remove", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = dept.Id, + IsDeleted = false + }; + entities.Add(deptRemove); + + + + //岗位管理 + MenuAggregateRoot post = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "岗位管理", + PermissionCode = "system:post:list", + MenuType = MenuTypeEnum.Menu, + Router = "/system/post/index", + MenuIcon = "ant-design:deployment-unit-outlined", + OrderNum = 96, + ParentId = system.Id, + RouterName = "SystemPost" + }; + entities.Add(post); + + MenuAggregateRoot postQuery = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "岗位查询", + PermissionCode = "system:post:query", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = post.Id, + IsDeleted = false + }; + entities.Add(postQuery); + + MenuAggregateRoot postAdd = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "岗位新增", + PermissionCode = "system:post:add", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = post.Id, + IsDeleted = false + }; + entities.Add(postAdd); + + MenuAggregateRoot postEdit = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "岗位修改", + PermissionCode = "system:post:edit", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = post.Id, + IsDeleted = false + }; + entities.Add(postEdit); + + MenuAggregateRoot postRemove = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "岗位删除", + PermissionCode = "system:post:remove", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = post.Id, + IsDeleted = false + }; + entities.Add(postRemove); + + + //操作日志 + MenuAggregateRoot operationLog = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "操作日志", + PermissionCode = "monitor:operlog:list", + MenuType = MenuTypeEnum.Menu, + Router = "/monitor/operation-logs", + MenuIcon = "ri:history-fill", + OrderNum = 100, + ParentId = monitoring.Id, + RouterName = "OperationLog", + Component = "monitor/logs/operation/index" + }; + entities.Add(operationLog); + + MenuAggregateRoot operationLogQuery = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "操作查询", + PermissionCode = "monitor:operlog:query", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = operationLog.Id, + IsDeleted = false + }; + entities.Add(operationLogQuery); + + MenuAggregateRoot operationLogRemove = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "操作删除", + PermissionCode = "monitor:operlog:remove", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = operationLog.Id, + IsDeleted = false + }; + entities.Add(operationLogRemove); + + + //登录日志 + MenuAggregateRoot loginLog = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "登录日志", + PermissionCode = "monitor:logininfor:list", + MenuType = MenuTypeEnum.Menu, + Router = "/monitor/login-logs", + IsShow = true, + IsLink = false, + IsCache = true, + Component = "monitor/logs/login/index", + MenuIcon = "ri:window-line", + OrderNum = 100, + ParentId = monitoring.Id, + RouterName = "LoginLog", + }; + entities.Add(loginLog); + + MenuAggregateRoot loginLogQuery = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "登录查询", + PermissionCode = "monitor:logininfor:query", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = loginLog.Id, + IsDeleted = false + }; + entities.Add(loginLogQuery); + + MenuAggregateRoot loginLogRemove = new MenuAggregateRoot(_guidGenerator.Create()) + { + + MenuName = "登录删除", + PermissionCode = "monitor:logininfor:remove", + MenuType = MenuTypeEnum.Component, + OrderNum = 100, + ParentId = loginLog.Id, + IsDeleted = false, + + }; + entities.Add(loginLogRemove); + + //默认值 + entities.ForEach(m => + { + m.IsDeleted = false; + m.State = true; + m.MenuSource = MenuSourceEnum.Pure; + m.IsShow = true; + }); + + var p = entities.GroupBy(x => x.Id); + foreach (var k in p) + { + if (k.ToList().Count > 1) + { + Console.WriteLine("菜单id重复"); + } + + } + return entities; + } + } +} diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuDataSeed.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuRuoYiDataSeed.cs similarity index 71% rename from Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuDataSeed.cs rename to Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuRuoYiDataSeed.cs index d2652c06..1dda106e 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuDataSeed.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/DataSeeds/MenuRuoYiDataSeed.cs @@ -7,11 +7,11 @@ using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.Rbac.SqlSugarCore.DataSeeds { - public class MenuDataSeed : IDataSeedContributor, ITransientDependency + public class MenuRuoYiDataSeed : IDataSeedContributor, ITransientDependency { private ISqlSugarRepository _repository; private IGuidGenerator _guidGenerator; - public MenuDataSeed(ISqlSugarRepository repository, IGuidGenerator guidGenerator) + public MenuRuoYiDataSeed(ISqlSugarRepository repository, IGuidGenerator guidGenerator) { _repository = repository; _guidGenerator = guidGenerator; @@ -19,7 +19,7 @@ namespace Yi.Framework.Rbac.SqlSugarCore.DataSeeds public async Task SeedAsync(DataSeedContext context) { - if (!await _repository.IsAnyAsync(x => x.MenuName == "系统管理")) + if (!await _repository.IsAnyAsync(x => x.MenuName == "系统管理"&&x.MenuSource==MenuSourceEnum.Ruoyi)) { await _repository.InsertManyAsync(GetSeedData()); } @@ -54,7 +54,7 @@ namespace Yi.Framework.Rbac.SqlSugarCore.DataSeeds IsLink = false, MenuIcon = "build", OrderNum = 91, - IsDeleted = false + IsDeleted = false, }; entities.Add(code); @@ -229,332 +229,332 @@ namespace Yi.Framework.Rbac.SqlSugarCore.DataSeeds entities.Add(swagger); - //ERP - MenuAggregateRoot erp = new MenuAggregateRoot(_guidGenerator.Create()) - { - MenuName = "ERP(待更新)", - MenuType = MenuTypeEnum.Catalogue, - Router = "/erp", - IsShow = true, - IsLink = false, - MenuIcon = "international", - OrderNum = 96, - IsDeleted = false - }; - entities.Add(erp); - - - - //供应商定义 - MenuAggregateRoot supplier = new MenuAggregateRoot(_guidGenerator.Create(), erp.Id) - { - MenuName = "供应商定义", - PermissionCode = "erp:supplier:list", - MenuType = MenuTypeEnum.Menu, - Router = "supplier", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/supplier/index", - MenuIcon = "education", - OrderNum = 100, - IsDeleted = false - }; - entities.Add(supplier); - - MenuAggregateRoot supplierQuery = new MenuAggregateRoot(_guidGenerator.Create(), supplier.Id) - { - MenuName = "供应商查询", - PermissionCode = "erp:supplier:query", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(supplierQuery); - - MenuAggregateRoot supplierAdd = new MenuAggregateRoot(_guidGenerator.Create(), supplier.Id) - { - MenuName = "供应商新增", - PermissionCode = "erp:supplier:add", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - - IsDeleted = false - }; - entities.Add(supplierAdd); - - MenuAggregateRoot supplierEdit = new MenuAggregateRoot(_guidGenerator.Create(), supplier.Id) - { - MenuName = "供应商修改", - PermissionCode = "erp:supplier:edit", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(supplierEdit); - - MenuAggregateRoot supplierRemove = new MenuAggregateRoot(_guidGenerator.Create(), supplier.Id) - { - MenuName = "供应商删除", - PermissionCode = "erp:supplier:remove", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(supplierRemove); - - - //仓库定义 - MenuAggregateRoot warehouse = new MenuAggregateRoot(_guidGenerator.Create(), erp.Id) - { - MenuName = "仓库定义", - PermissionCode = "erp:warehouse:list", - MenuType = MenuTypeEnum.Menu, - Router = "warehouse", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/warehouse/index", - MenuIcon = "education", - OrderNum = 100, - IsDeleted = false - }; - entities.Add(warehouse); - - MenuAggregateRoot warehouseQuery = new MenuAggregateRoot(_guidGenerator.Create(), warehouse.Id) - { - MenuName = "仓库查询", - PermissionCode = "erp:warehouse:query", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = warehouse.Id, - IsDeleted = false - }; - entities.Add(warehouseQuery); - - MenuAggregateRoot warehouseAdd = new MenuAggregateRoot(_guidGenerator.Create(), warehouse.Id) - { - MenuName = "仓库新增", - PermissionCode = "erp:warehouse:add", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(warehouseAdd); - - MenuAggregateRoot warehouseEdit = new MenuAggregateRoot(_guidGenerator.Create(), warehouse.Id) - { - MenuName = "仓库修改", - PermissionCode = "erp:warehouse:edit", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(warehouseEdit); - - MenuAggregateRoot warehouseRemove = new MenuAggregateRoot(_guidGenerator.Create(), warehouse.Id) - { - MenuName = "仓库删除", - PermissionCode = "erp:warehouse:remove", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(warehouseRemove); - - - //单位定义 - MenuAggregateRoot unit = new MenuAggregateRoot(_guidGenerator.Create(), erp.Id) - { - MenuName = "单位定义", - PermissionCode = "erp:unit:list", - MenuType = MenuTypeEnum.Menu, - Router = "unit", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/unit/index", - MenuIcon = "education", - OrderNum = 100, - IsDeleted = false - }; - entities.Add(unit); - - MenuAggregateRoot unitQuery = new MenuAggregateRoot(_guidGenerator.Create(), unit.Id) - { - MenuName = "单位查询", - PermissionCode = "erp:unit:query", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(unitQuery); - - MenuAggregateRoot unitAdd = new MenuAggregateRoot(_guidGenerator.Create(), unit.Id) - { - MenuName = "单位新增", - PermissionCode = "erp:unit:add", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(unitAdd); - - MenuAggregateRoot unitEdit = new MenuAggregateRoot(_guidGenerator.Create(), unit.Id) - { - MenuName = "单位修改", - PermissionCode = "erp:unit:edit", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(unitEdit); - - MenuAggregateRoot unitRemove = new MenuAggregateRoot(_guidGenerator.Create(), unit.Id) - { - MenuName = "单位删除", - PermissionCode = "erp:unit:remove", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - IsDeleted = false - }; - entities.Add(unitRemove); - - - //物料定义 - MenuAggregateRoot material = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "物料定义", - PermissionCode = "erp:material:list", - MenuType = MenuTypeEnum.Menu, - Router = "material", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/material/index", - MenuIcon = "education", - OrderNum = 100, - ParentId = erp.Id, - IsDeleted = false - }; - entities.Add(material); - - MenuAggregateRoot materialQuery = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "物料查询", - PermissionCode = "erp:material:query", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = material.Id, - IsDeleted = false - }; - entities.Add(materialQuery); - - MenuAggregateRoot materialAdd = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "物料新增", - PermissionCode = "erp:material:add", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = material.Id, - IsDeleted = false - }; - entities.Add(materialAdd); - - MenuAggregateRoot materialEdit = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "物料修改", - PermissionCode = "erp:material:edit", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = material.Id, - IsDeleted = false - }; - entities.Add(materialEdit); - - MenuAggregateRoot materialRemove = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "物料删除", - PermissionCode = "erp:material:remove", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = material.Id, - IsDeleted = false - }; - entities.Add(materialRemove); - - - //采购订单 - MenuAggregateRoot purchase = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "采购订单", - PermissionCode = "erp:purchase:list", - MenuType = MenuTypeEnum.Menu, - Router = "purchase", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/purchase/index", - MenuIcon = "education", - OrderNum = 100, - ParentId = erp.Id, - IsDeleted = false - }; - entities.Add(purchase); - - MenuAggregateRoot purchaseQuery = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "采购订单查询", - PermissionCode = "erp:purchase:query", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = purchase.Id, - IsDeleted = false - }; - entities.Add(purchaseQuery); - - MenuAggregateRoot purchaseAdd = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "采购订单新增", - PermissionCode = "erp:purchase:add", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = purchase.Id, - IsDeleted = false - }; - entities.Add(purchaseAdd); - - MenuAggregateRoot purchaseEdit = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "采购订单修改", - PermissionCode = "erp:purchase:edit", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = purchase.Id, - IsDeleted = false - }; - entities.Add(purchaseEdit); - - MenuAggregateRoot purchaseRemove = new MenuAggregateRoot(_guidGenerator.Create()) - { - - MenuName = "采购订单删除", - PermissionCode = "erp:purchase:remove", - MenuType = MenuTypeEnum.Component, - OrderNum = 100, - ParentId = purchase.Id, - IsDeleted = false - }; - entities.Add(purchaseRemove); + // //ERP + // MenuAggregateRoot erp = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // MenuName = "ERP(待更新)", + // MenuType = MenuTypeEnum.Catalogue, + // Router = "/erp", + // IsShow = true, + // IsLink = false, + // MenuIcon = "international", + // OrderNum = 96, + // IsDeleted = false + // }; + // entities.Add(erp); + // + // + // + // //供应商定义 + // MenuAggregateRoot supplier = new MenuAggregateRoot(_guidGenerator.Create(), erp.Id) + // { + // MenuName = "供应商定义", + // PermissionCode = "erp:supplier:list", + // MenuType = MenuTypeEnum.Menu, + // Router = "supplier", + // IsShow = true, + // IsLink = false, + // IsCache = true, + // Component = "erp/supplier/index", + // MenuIcon = "education", + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(supplier); + // + // MenuAggregateRoot supplierQuery = new MenuAggregateRoot(_guidGenerator.Create(), supplier.Id) + // { + // MenuName = "供应商查询", + // PermissionCode = "erp:supplier:query", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(supplierQuery); + // + // MenuAggregateRoot supplierAdd = new MenuAggregateRoot(_guidGenerator.Create(), supplier.Id) + // { + // MenuName = "供应商新增", + // PermissionCode = "erp:supplier:add", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // + // IsDeleted = false + // }; + // entities.Add(supplierAdd); + // + // MenuAggregateRoot supplierEdit = new MenuAggregateRoot(_guidGenerator.Create(), supplier.Id) + // { + // MenuName = "供应商修改", + // PermissionCode = "erp:supplier:edit", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(supplierEdit); + // + // MenuAggregateRoot supplierRemove = new MenuAggregateRoot(_guidGenerator.Create(), supplier.Id) + // { + // MenuName = "供应商删除", + // PermissionCode = "erp:supplier:remove", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(supplierRemove); + // + // + // //仓库定义 + // MenuAggregateRoot warehouse = new MenuAggregateRoot(_guidGenerator.Create(), erp.Id) + // { + // MenuName = "仓库定义", + // PermissionCode = "erp:warehouse:list", + // MenuType = MenuTypeEnum.Menu, + // Router = "warehouse", + // IsShow = true, + // IsLink = false, + // IsCache = true, + // Component = "erp/warehouse/index", + // MenuIcon = "education", + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(warehouse); + // + // MenuAggregateRoot warehouseQuery = new MenuAggregateRoot(_guidGenerator.Create(), warehouse.Id) + // { + // MenuName = "仓库查询", + // PermissionCode = "erp:warehouse:query", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = warehouse.Id, + // IsDeleted = false + // }; + // entities.Add(warehouseQuery); + // + // MenuAggregateRoot warehouseAdd = new MenuAggregateRoot(_guidGenerator.Create(), warehouse.Id) + // { + // MenuName = "仓库新增", + // PermissionCode = "erp:warehouse:add", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(warehouseAdd); + // + // MenuAggregateRoot warehouseEdit = new MenuAggregateRoot(_guidGenerator.Create(), warehouse.Id) + // { + // MenuName = "仓库修改", + // PermissionCode = "erp:warehouse:edit", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(warehouseEdit); + // + // MenuAggregateRoot warehouseRemove = new MenuAggregateRoot(_guidGenerator.Create(), warehouse.Id) + // { + // MenuName = "仓库删除", + // PermissionCode = "erp:warehouse:remove", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(warehouseRemove); + // + // + // //单位定义 + // MenuAggregateRoot unit = new MenuAggregateRoot(_guidGenerator.Create(), erp.Id) + // { + // MenuName = "单位定义", + // PermissionCode = "erp:unit:list", + // MenuType = MenuTypeEnum.Menu, + // Router = "unit", + // IsShow = true, + // IsLink = false, + // IsCache = true, + // Component = "erp/unit/index", + // MenuIcon = "education", + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(unit); + // + // MenuAggregateRoot unitQuery = new MenuAggregateRoot(_guidGenerator.Create(), unit.Id) + // { + // MenuName = "单位查询", + // PermissionCode = "erp:unit:query", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(unitQuery); + // + // MenuAggregateRoot unitAdd = new MenuAggregateRoot(_guidGenerator.Create(), unit.Id) + // { + // MenuName = "单位新增", + // PermissionCode = "erp:unit:add", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(unitAdd); + // + // MenuAggregateRoot unitEdit = new MenuAggregateRoot(_guidGenerator.Create(), unit.Id) + // { + // MenuName = "单位修改", + // PermissionCode = "erp:unit:edit", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(unitEdit); + // + // MenuAggregateRoot unitRemove = new MenuAggregateRoot(_guidGenerator.Create(), unit.Id) + // { + // MenuName = "单位删除", + // PermissionCode = "erp:unit:remove", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // IsDeleted = false + // }; + // entities.Add(unitRemove); + // + // + // //物料定义 + // MenuAggregateRoot material = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "物料定义", + // PermissionCode = "erp:material:list", + // MenuType = MenuTypeEnum.Menu, + // Router = "material", + // IsShow = true, + // IsLink = false, + // IsCache = true, + // Component = "erp/material/index", + // MenuIcon = "education", + // OrderNum = 100, + // ParentId = erp.Id, + // IsDeleted = false + // }; + // entities.Add(material); + // + // MenuAggregateRoot materialQuery = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "物料查询", + // PermissionCode = "erp:material:query", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = material.Id, + // IsDeleted = false + // }; + // entities.Add(materialQuery); + // + // MenuAggregateRoot materialAdd = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "物料新增", + // PermissionCode = "erp:material:add", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = material.Id, + // IsDeleted = false + // }; + // entities.Add(materialAdd); + // + // MenuAggregateRoot materialEdit = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "物料修改", + // PermissionCode = "erp:material:edit", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = material.Id, + // IsDeleted = false + // }; + // entities.Add(materialEdit); + // + // MenuAggregateRoot materialRemove = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "物料删除", + // PermissionCode = "erp:material:remove", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = material.Id, + // IsDeleted = false + // }; + // entities.Add(materialRemove); + // + // + // //采购订单 + // MenuAggregateRoot purchase = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "采购订单", + // PermissionCode = "erp:purchase:list", + // MenuType = MenuTypeEnum.Menu, + // Router = "purchase", + // IsShow = true, + // IsLink = false, + // IsCache = true, + // Component = "erp/purchase/index", + // MenuIcon = "education", + // OrderNum = 100, + // ParentId = erp.Id, + // IsDeleted = false + // }; + // entities.Add(purchase); + // + // MenuAggregateRoot purchaseQuery = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "采购订单查询", + // PermissionCode = "erp:purchase:query", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = purchase.Id, + // IsDeleted = false + // }; + // entities.Add(purchaseQuery); + // + // MenuAggregateRoot purchaseAdd = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "采购订单新增", + // PermissionCode = "erp:purchase:add", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = purchase.Id, + // IsDeleted = false + // }; + // entities.Add(purchaseAdd); + // + // MenuAggregateRoot purchaseEdit = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "采购订单修改", + // PermissionCode = "erp:purchase:edit", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = purchase.Id, + // IsDeleted = false + // }; + // entities.Add(purchaseEdit); + // + // MenuAggregateRoot purchaseRemove = new MenuAggregateRoot(_guidGenerator.Create()) + // { + // + // MenuName = "采购订单删除", + // PermissionCode = "erp:purchase:remove", + // MenuType = MenuTypeEnum.Component, + // OrderNum = 100, + // ParentId = purchase.Id, + // IsDeleted = false + // }; + // entities.Add(purchaseRemove); @@ -564,7 +564,7 @@ namespace Yi.Framework.Rbac.SqlSugarCore.DataSeeds MenuName = "Yi框架", MenuType = MenuTypeEnum.Catalogue, - Router = "https://gitee.com/ccnetcore/yi", + Router = "https://ccnetcore.com", IsShow = true, IsLink = true, MenuIcon = "guide", @@ -1317,6 +1317,8 @@ namespace Yi.Framework.Rbac.SqlSugarCore.DataSeeds { m.IsDeleted = false; m.State = true; + m.MenuSource = MenuSourceEnum.Ruoyi; + m.IsShow = true; }); var p = entities.GroupBy(x => x.Id); diff --git a/Yi.Pure.Vue3/mock/asyncRoutes.ts b/Yi.Pure.Vue3/mock/asyncRoutes.ts index 4fffebed..52ffb1e1 100644 --- a/Yi.Pure.Vue3/mock/asyncRoutes.ts +++ b/Yi.Pure.Vue3/mock/asyncRoutes.ts @@ -7,6 +7,72 @@ import { system, monitor } from "@/router/enums"; * admin:管理员角色 * common:普通角色 */ +const testRouter = [ + { + id: "906c8094-21a1-1042-f151-3a14dab3cadb", + parentId: "00000000-0000-0000-0000-000000000000", + path: "/monitor", + name: null, + meta: { + icon: "menus.pureSysMonitor", + title: "系统监控", + component: null, + roles: null, + auths: [null], + frameSrc: null, + frameLoading: null, + keepAlive: null, + showLink: true + }, + children: [ + { + id: "c765691a-32e4-4e88-6e8a-3a14dab3cadb", + parentId: "906c8094-21a1-1042-f151-3a14dab3cadb", + path: "/monitor/online-user", + name: "OnlineUser", + meta: { + icon: "ri:user-voice-line", + title: "在线用户", + component: null, + roles: null, + auths: ["monitor:online:list"], + frameSrc: null, + frameLoading: null, + keepAlive: null, + showLink: true + } + }, + { + path: "/monitor/operation-logs", + name: "OperationLog", + meta: { + icon: "ri:history-fill", + title: "操作日志", + component: "monitor/logs/operation/index", + showLink: true + } + }, + { + id: "580a7b97-15ab-6d43-d011-3a14dab3cadc", + parentId: "906c8094-21a1-1042-f151-3a14dab3cadb", + path: "/monitor/login-logs", + name: "LoginLog", + meta: { + icon: "ri:window-line", + title: "登录日志", + component: "monitor/logs/login/index", + roles: null, + auths: ["monitor:logininfor:list"], + frameSrc: null, + frameLoading: null, + keepAlive: null, + showLink: true + }, + children: null + } + ] + } +]; const systemManagementRouter = { path: "/system", @@ -334,6 +400,7 @@ export default defineFakeRoute([ url: `/dev-api/get-async-routes`, method: "get", response: () => { + return testRouter; return [ systemManagementRouter, systemMonitorRouter diff --git a/Yi.Pure.Vue3/publish.bat b/Yi.Pure.Vue3/publish.bat new file mode 100644 index 00000000..b8456cad --- /dev/null +++ b/Yi.Pure.Vue3/publish.bat @@ -0,0 +1,24 @@ +@echo on + +set SERVER_USER=root +set SERVER_IP=ccnetcore.com +set FILE_PATH=publish_pure_02.zip +set REMOTE_PATH=/home/yi/build/publish_pure_02.zip +set REMOTE_COMMAND="cd /home/yi/pure&&pwd&&unzip -o /home/yi/build/publish_pure_02.zip -d ./" +set sevenzip_Path="D:\Program Files\7-Zip\7z.exe" + +echo start +echo 1-build-start +:: npm run build +echo 1-build-end +echo 2-zip-start + +%sevenzip_Path% a ./publish_pure_02.zip ./dist/* +:: tar -cvf publish_bbs_02.zip -C "dist" "*" +echo 2-zip-end +echo 3-publish-start +scp %FILE_PATH% %SERVER_USER%@%SERVER_IP%:%REMOTE_PATH% +ssh %SERVER_USER%@%SERVER_IP% %REMOTE_COMMAND% +echo 3-publish-end +echo end +pause diff --git a/Yi.Pure.Vue3/src/api/user.ts b/Yi.Pure.Vue3/src/api/account.ts similarity index 100% rename from Yi.Pure.Vue3/src/api/user.ts rename to Yi.Pure.Vue3/src/api/account.ts diff --git a/Yi.Pure.Vue3/src/api/routes.ts b/Yi.Pure.Vue3/src/api/routes.ts index 501ea3c7..9202da85 100644 --- a/Yi.Pure.Vue3/src/api/routes.ts +++ b/Yi.Pure.Vue3/src/api/routes.ts @@ -1,10 +1,10 @@ import { http } from "@/utils/http"; - -type Result = { - success: boolean; - data: Array; -}; +import type { Result } from "@/api/result"; export const getAsyncRoutes = () => { return http.request("get", "/get-async-routes"); }; + +export const getRoutes = () => { + return http.request("get", "/account/Vue3Router/pure"); +}; diff --git a/Yi.Pure.Vue3/src/api/system.ts b/Yi.Pure.Vue3/src/api/system.ts deleted file mode 100644 index 2dd467ba..00000000 --- a/Yi.Pure.Vue3/src/api/system.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { http } from "@/utils/http"; -import type { Result, ResultList, ResultPage } from "./result.ts"; - -/** 新增角色 */ -export const addRole = (data: any) => { - return http.request("post", `/role`, { data }); -}; - -/** 获取系统管理-角色管理列表 */ -export const getRoleList = (data?: object) => { - return http.request("post", "/role", { data }); -}; - -/** 获取系统管理-菜单管理列表 */ -export const getMenuList = (data?: object) => { - return http.request("post", "/menu", { data }); -}; - -/** 获取系统监控-在线用户列表 */ -export const getOnlineLogsList = (data?: object) => { - return http.request("post", "/online-logs", { data }); -}; - -/** 获取系统监控-登录日志列表 */ -export const getLoginLogsList = (data?: object) => { - return http.request("post", "/login-logs", { data }); -}; - -/** 获取系统监控-操作日志列表 */ -export const getOperationLogsList = (data?: object) => { - return http.request("post", "/operation-logs", { data }); -}; - -/** 获取系统监控-系统日志列表 */ -export const getSystemLogsList = (data?: object) => { - return http.request("post", "/system-logs", { data }); -}; - -/** 获取系统监控-系统日志-根据 id 查日志详情 */ -export const getSystemLogsDetail = (data?: object) => { - return http.request("post", "/system-logs-detail", { data }); -}; - -/** 获取角色管理-权限-菜单权限 */ -export const getRoleMenu = (data?: object) => { - return http.request("post", "/role-menu", { data }); -}; - -/** 获取角色管理-权限-菜单权限-根据角色 id 查对应菜单 */ -export const getRoleMenuIds = (data?: object) => { - return http.request("post", "/role-menu-ids", { data }); -}; diff --git a/Yi.Pure.Vue3/src/router/utils.ts b/Yi.Pure.Vue3/src/router/utils.ts index dd6df9aa..5a027c54 100644 --- a/Yi.Pure.Vue3/src/router/utils.ts +++ b/Yi.Pure.Vue3/src/router/utils.ts @@ -27,7 +27,8 @@ const IFrame = () => import("@/layout/frame.vue"); const modulesRoutes = import.meta.glob("/src/views/**/*.{vue,tsx}"); // 动态路由 -import { getAsyncRoutes } from "@/api/routes"; +// getAsyncRoutes +import { getRoutes } from "@/api/routes"; function handRank(routeInfo: any) { const { name, path, parentId, meta } = routeInfo; @@ -202,7 +203,7 @@ function initRouter() { }); } else { return new Promise(resolve => { - getAsyncRoutes().then(({ data }) => { + getRoutes().then(({ data }) => { handleAsyncRoutes(cloneDeep(data)); storageLocal().setItem(key, data); resolve(router); @@ -211,7 +212,7 @@ function initRouter() { } } else { return new Promise(resolve => { - getAsyncRoutes().then(({ data }) => { + getRoutes().then(({ data }) => { handleAsyncRoutes(cloneDeep(data)); resolve(router); }); @@ -303,6 +304,9 @@ function addAsyncRoutes(arrRoutes: Array) { if (!arrRoutes || !arrRoutes.length) return; const modulesRoutesKeys = Object.keys(modulesRoutes); arrRoutes.forEach((v: RouteRecordRaw) => { + if (v.children == null) { + v.children = undefined; + } // 将backstage属性加入meta,标识此路由为后端返回路由 v.meta.backstage = true; // 父级的redirect属性取值:如果子级存在且父级的redirect属性不存在,默认取第一个子级的path;如果子级存在且父级的redirect属性存在,取存在的redirect属性,会覆盖默认值 diff --git a/Yi.Pure.Vue3/src/store/modules/user.ts b/Yi.Pure.Vue3/src/store/modules/user.ts index 2b0a0c95..e5f10379 100644 --- a/Yi.Pure.Vue3/src/store/modules/user.ts +++ b/Yi.Pure.Vue3/src/store/modules/user.ts @@ -13,7 +13,7 @@ import { getLogin, getUserInfo, refreshTokenApi -} from "@/api/user"; +} from "@/api/account"; import { useMultiTagsStoreHook } from "./multiTags"; import { type DataInfo, setToken, removeToken, userKey } from "@/utils/auth"; diff --git a/Yi.Pure.Vue3/src/views/login/index.vue b/Yi.Pure.Vue3/src/views/login/index.vue index 5f0dc784..7adcc70a 100644 --- a/Yi.Pure.Vue3/src/views/login/index.vue +++ b/Yi.Pure.Vue3/src/views/login/index.vue @@ -19,12 +19,11 @@ import LoginQrCode from "./components/LoginQrCode.vue"; import { useUserStoreHook } from "@/store/modules/user"; import { initRouter, getTopMenu } from "@/router/utils"; import { bg, avatar, illustration } from "./utils/static"; -import { ReImageVerify } from "@/components/ReImageVerify"; import { ref, toRaw, reactive, watch, computed } from "vue"; import { useRenderIcon } from "@/components/ReIcon/src/hooks"; import { useTranslationLang } from "@/layout/hooks/useTranslationLang"; import { useDataThemeChange } from "@/layout/hooks/useDataThemeChange"; -import { getCodeImg } from "@/api/user"; +import { getCodeImg } from "@/api/account"; import dayIcon from "@/assets/svg/day.svg?component"; import darkIcon from "@/assets/svg/dark.svg?component"; @@ -59,8 +58,8 @@ const { title, getDropdownItemStyle, getDropdownItemClass } = useNav(); const { locale, translationCh, translationEn } = useTranslationLang(); const ruleForm = reactive({ - username: "cc", - password: "123456", + username: "", + password: "", verifyCode: "", uuid: "" }); @@ -101,7 +100,7 @@ const onLogin = async (formEl: FormInstance | undefined) => { message(t("login.pureLoginFail"), { type: "error" }); } }) - .catch(err => { + .catch(() => { getCode(); }) .finally(() => (loading.value = false)); @@ -138,7 +137,7 @@ getCode();