Explorar el Código

fix: 😀修复代码生成的菜单不可见问题

喵你个旺呀 hace 1 año
padre
commit
f4d4f88e23

+ 1 - 0
Admin.NET/Admin.NET.Application/GlobalUsings.cs

@@ -5,6 +5,7 @@
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
 global using Admin.NET.Core;
+global using SqlSugar;
 global using Furion;
 global using Furion.DependencyInjection;
 global using Furion.DynamicApiController;

+ 5 - 3
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs

@@ -340,6 +340,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
     /// 代码生成到本地 🔖
     /// </summary>
     /// <returns></returns>
+    [UnitOfWork]
     [DisplayName("代码生成到本地")]
     public async Task<dynamic> RunLocal(SysCodeGen input)
     {
@@ -470,6 +471,8 @@ public class SysCodeGenService : IDynamicApiController, ITransient
     /// <returns></returns>
     private async Task AddMenu(string className, string busName, long pid, string menuIcon, string pagePath, List<CodeGenConfig> tableFieldList)
     {
+        var service = App.GetService<SysMenuService>();
+
         // 删除已存在的菜单
         var title = $"{busName}管理";
         await DeleteMenuTree(title, pid == 0 ? MenuTypeEnum.Dir : MenuTypeEnum.Menu);
@@ -480,7 +483,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         {
             // 新增目录,并记录Id
             var dirMenu = new SysMenu { Pid = 0, Title = title, Type = MenuTypeEnum.Dir, Icon = "robot", Path = "/" + className.ToLower(), Component = "Layout" };
-            pid = (await _db.Insertable(dirMenu).ExecuteReturnEntityAsync()).Id;
+            pid = await service.AddMenu(dirMenu.Adapt<AddMenuInput>());
         }
         else
         {
@@ -490,7 +493,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
 
         // 新增菜单,并记录Id
         var rootMenu = new SysMenu { Pid = pid, Title = title, Type = MenuTypeEnum.Menu, Icon = menuIcon, Path = $"{parentMenuPath}/{className.ToLower()}", Component = $"/{pagePath}/{lowerClassName}/index" };
-        pid = (await _db.Insertable(rootMenu).ExecuteReturnEntityAsync()).Id;
+        pid = await service.AddMenu(rootMenu.Adapt<AddMenuInput>());
 
         var orderNo = 100;
         var menuList = new List<SysMenu>
@@ -513,7 +516,6 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         foreach (var column in tableFieldList.Where(u => u.EffectType == "Upload"))
             menuList.Add(new SysMenu { Title = $"上传{column.ColumnComment}", Permission = $"{lowerClassName}:upload{column.PropertyName}", Pid = pid, Type = MenuTypeEnum.Btn, OrderNo = orderNo += 10 });
 
-        var service = App.GetService<SysMenuService>();
         foreach (var menu in menuList) await service.AddMenu(menu.Adapt<AddMenuInput>());
     }
 

+ 3 - 1
Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs

@@ -94,7 +94,7 @@ public class SysMenuService : IDynamicApiController, ITransient
     /// <returns></returns>
     [ApiDescriptionSettings(Name = "Add"), HttpPost]
     [DisplayName("增加菜单")]
-    public async Task AddMenu(AddMenuInput input)
+    public async Task<long> AddMenu(AddMenuInput input)
     {
         var (query, tenantId) = GetSugarQueryableAndTenantId(input.TenantId);
         
@@ -117,6 +117,8 @@ public class SysMenuService : IDynamicApiController, ITransient
 
         // 清除缓存
         DeleteMenuCache();
+
+        return sysMenu.Id;
     }
 
     /// <summary>