Просмотр исходного кода

fix: 菜单数据保存时现在只保存菜单类型关心的数据,不关心的数据会置空

许俊杰 3 лет назад
Родитель
Сommit
29394e086e

+ 2 - 2
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -1094,7 +1094,7 @@
         </member>
         <member name="P:Admin.NET.Core.SysMenu.Name">
             <summary>
-            名称
+            路由名称
             </summary>
         </member>
         <member name="P:Admin.NET.Core.SysMenu.Path">
@@ -1119,7 +1119,7 @@
         </member>
         <member name="P:Admin.NET.Core.SysMenu.Title">
             <summary>
-            标题
+            菜单名称
             </summary>
         </member>
         <member name="P:Admin.NET.Core.SysMenu.Icon">

+ 4 - 4
Admin.NET/Admin.NET.Core/Entity/SysMenu.cs

@@ -20,9 +20,9 @@ public class SysMenu : EntityBase
     public MenuTypeEnum Type { get; set; }
 
     /// <summary>
-    /// 名称
+    /// 路由名称
     /// </summary>
-    [SugarColumn(ColumnDescription = "名称", Length = 64)]
+    [SugarColumn(ColumnDescription = "路由名称", Length = 64)]
     [MaxLength(64)]
     public string? Name { get; set; }
 
@@ -55,9 +55,9 @@ public class SysMenu : EntityBase
     public string? Permission { get; set; }
 
     /// <summary>
-    /// 标题
+    /// 菜单名称
     /// </summary>
-    [SugarColumn(ColumnDescription = "标题", Length = 64)]
+    [SugarColumn(ColumnDescription = "菜单名称", Length = 64)]
     [Required, MaxLength(64)]
     public virtual string Title { get; set; }
 

+ 21 - 4
Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs

@@ -109,9 +109,10 @@ public class SysMenuService : IDynamicApiController, ITransient
             throw Oops.Oh(ErrorCodeEnum.D4000);
 
         // 校验菜单参数
-        CheckMenuParam(input.Adapt<SysMenu>());
+        var sysMenu = input.Adapt<SysMenu>();
+        CheckMenuParam(sysMenu);
 
-        await _sysMenuRep.InsertAsync(input.Adapt<SysMenu>());
+        await _sysMenuRep.InsertAsync(sysMenu);
 
         // 清除缓存
         DeleteMenuCache();
@@ -133,9 +134,10 @@ public class SysMenuService : IDynamicApiController, ITransient
             throw Oops.Oh(ErrorCodeEnum.D4000);
 
         // 校验菜单参数
-        CheckMenuParam(input.Adapt<SysMenu>());
+        var sysMenu = input.Adapt<SysMenu>();
+        CheckMenuParam(sysMenu);
 
-        await _sysMenuRep.AsUpdateable(input.Adapt<SysMenu>()).IgnoreColumns(true).ExecuteCommandAsync();
+        await _sysMenuRep.AsUpdateable(sysMenu).ExecuteCommandAsync();
 
         // 清除缓存
         DeleteMenuCache();
@@ -172,11 +174,26 @@ public class SysMenuService : IDynamicApiController, ITransient
         var permission = menu.Permission;
         if (menu.Type == MenuTypeEnum.Btn)
         {
+            menu.Name = null;
+            menu.Path = null;
+            menu.Component = null;
+            menu.Icon = null;
+            menu.Redirect = null;
+            menu.OutLink = null;
+            menu.IsHide = false;
+            menu.IsKeepAlive = true;
+            menu.IsAffix = false;
+            menu.IsIframe = false;
+
             if (string.IsNullOrEmpty(permission))
                 throw Oops.Oh(ErrorCodeEnum.D4003);
             if (!permission.Contains(':'))
                 throw Oops.Oh(ErrorCodeEnum.D4004);
         }
+        else
+        {
+            menu.Permission = null;
+        }
     }
 
     /// <summary>