优化桌面端无用菜单和地磅数据可手动功能。
This commit is contained in:
@@ -121,6 +121,11 @@ namespace YY.Admin.Services
|
||||
/// 是否固定
|
||||
/// </summary>
|
||||
public bool IsAffix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 桌面端登录后作为默认首页打开的菜单
|
||||
/// </summary>
|
||||
public bool IsDefaultDesktopHome { get; set; }
|
||||
#endregion
|
||||
/// <summary>
|
||||
/// 菜单子项
|
||||
|
||||
@@ -157,6 +157,9 @@ namespace YY.Admin.Services.Service.Menu
|
||||
if (n <= 0)
|
||||
return (false, "保存失败", 0);
|
||||
|
||||
if (input.IsDefaultDesktopHome)
|
||||
await ClearDefaultDesktopHomeExceptAsync(input.Id);
|
||||
|
||||
await TryLinkCurrentTenantMenuAsync(id);
|
||||
return (true, "保存成功", id);
|
||||
}
|
||||
@@ -180,6 +183,9 @@ namespace YY.Admin.Services.Service.Menu
|
||||
if (NewParentIsInsideMenuSubtree(input.Id, input.Pid, all))
|
||||
return (false, "不能将父级设为当前菜单或其子菜单");
|
||||
|
||||
if (input.IsDefaultDesktopHome)
|
||||
await ClearDefaultDesktopHomeExceptAsync(input.Id);
|
||||
|
||||
existing.Pid = input.Pid;
|
||||
existing.Type = input.Type;
|
||||
existing.Name = input.Name;
|
||||
@@ -194,13 +200,17 @@ namespace YY.Admin.Services.Service.Menu
|
||||
existing.IsHide = input.IsHide;
|
||||
existing.IsKeepAlive = input.IsKeepAlive;
|
||||
existing.IsAffix = input.IsAffix;
|
||||
existing.IsDefaultDesktopHome = input.IsDefaultDesktopHome;
|
||||
existing.OrderNo = input.OrderNo;
|
||||
existing.Status = input.Status;
|
||||
existing.Remark = input.Remark;
|
||||
existing.UpdateTime = DateTime.Now;
|
||||
|
||||
var n = await _dbContext.Updateable(existing).ExecuteCommandAsync();
|
||||
return n > 0 ? (true, "保存成功") : (false, "更新失败");
|
||||
if (n <= 0)
|
||||
return (false, "更新失败");
|
||||
await TryLinkCurrentTenantMenuAsync(input.Id);
|
||||
return (true, "保存成功");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -219,6 +229,17 @@ namespace YY.Admin.Services.Service.Menu
|
||||
return n > 0 ? (true, "已删除") : (false, "删除失败");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保证全表仅一条菜单为桌面默认首页(当前保留项除外全部置 false)
|
||||
/// </summary>
|
||||
private async Task ClearDefaultDesktopHomeExceptAsync(long keepMenuId)
|
||||
{
|
||||
await _dbContext.Updateable<SysMenu>()
|
||||
.SetColumns(m => new SysMenu { IsDefaultDesktopHome = false })
|
||||
.Where(m => m.Id != keepMenuId && m.IsDefaultDesktopHome)
|
||||
.ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
private async Task TryLinkCurrentTenantMenuAsync(long menuId)
|
||||
{
|
||||
var tenantId = AppSession.CurrentUser?.TenantId;
|
||||
|
||||
Reference in New Issue
Block a user