From 6e9a8c7778958e8e35599f693294c2917150ff7d Mon Sep 17 00:00:00 2001 From: zuohuaijun Date: Mon, 25 Nov 2024 16:35:31 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=8E=E5=90=8C=E6=AD=A5=E5=BC=80?= =?UTF-8?q?=E6=BA=90=E4=BB=A3=E7=A0=81=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Menu/SysMenuService.cs | 16 ++++++++++------ Web/src/utils/exportExcel.ts | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs b/Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs index 29cd9291..18a2f7a8 100644 --- a/Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs @@ -43,7 +43,8 @@ public class SysMenuService : IDynamicApiController, ITransient { var menuList = await _sysMenuRep.AsQueryable() .Where(u => u.Type != MenuTypeEnum.Btn && u.Status == StatusEnum.Enable) - .OrderBy(u => new { u.OrderNo, u.Id }).ToTreeAsync(u => u.Children, u => u.Pid, 0); + .OrderBy(u => new { u.OrderNo, u.Id }) + .Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0); return menuList.Adapt>(); } else @@ -51,7 +52,8 @@ public class SysMenuService : IDynamicApiController, ITransient var menuIdList = await GetMenuIdList(); var menuTree = await _sysMenuRep.AsQueryable() .Where(u => u.Status == StatusEnum.Enable) - .OrderBy(u => new { u.OrderNo, u.Id }).ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray()); + .OrderBy(u => new { u.OrderNo, u.Id }) + .Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray()); DeleteBtnFromMenuTree(menuTree); return menuTree.Adapt>(); } @@ -89,13 +91,15 @@ public class SysMenuService : IDynamicApiController, ITransient .WhereIF(!string.IsNullOrWhiteSpace(input.Title), u => u.Title.Contains(input.Title)) .WhereIF(input.Type is > 0, u => u.Type == input.Type) .WhereIF(menuIdList.Count > 1, u => menuIdList.Contains(u.Id)) - .OrderBy(u => new { u.OrderNo, u.Id }).ToListAsync(); + .OrderBy(u => new { u.OrderNo, u.Id }) + .Distinct().ToListAsync(); } return _userManager.SuperAdmin ? - await _sysMenuRep.AsQueryable().OrderBy(u => new { u.OrderNo, u.Id }).ToTreeAsync(u => u.Children, u => u.Pid, 0) : - await _sysMenuRep.AsQueryable() - .OrderBy(u => new { u.OrderNo, u.Id }).ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray()); // 角色菜单授权时 + await _sysMenuRep.AsQueryable().OrderBy(u => new { u.OrderNo, u.Id }) + .Distinct().Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0) : + await _sysMenuRep.AsQueryable().OrderBy(u => new { u.OrderNo, u.Id }) + .Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray()); } /// diff --git a/Web/src/utils/exportExcel.ts b/Web/src/utils/exportExcel.ts index 0b03d5ce..e6d8bb1b 100644 --- a/Web/src/utils/exportExcel.ts +++ b/Web/src/utils/exportExcel.ts @@ -69,7 +69,7 @@ export function exportExcel(jsonarr: Array, name: string, heade for (let i = 0; i < headerArr.length; i++) { let row = headerArr[i]; for (let j = 0; j < row.length; j++) { - if (headerArr[i][j] == null) { + if (headerArr[i][j] == null && i > 0) { headerArr[i][j] = headerArr[i - 1][j]; } }