From 913f4db05147dfe0f4dfb5496060183098274eb6 Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Thu, 6 Jan 2022 09:31:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20Header=20=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E6=98=BE=E7=A4=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/DictService.cs | 10 ++++++++++ .../Services/UserService.cs | 2 +- src/blazor/admin/BootstrapAdmin.Web.Core/IDict.cs | 2 ++ src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs | 2 +- .../admin/BootstrapAdmin.Web/Shared/MainLayout.razor | 4 ++-- .../BootstrapAdmin.Web/Shared/MainLayout.razor.cs | 10 +++++++++- .../BootstrapAdmin.Web/Validators/UserNameValidator.cs | 2 +- 7 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/DictService.cs b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/DictService.cs index e6c0548b..7cd9487a 100644 --- a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/DictService.cs +++ b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/DictService.cs @@ -170,4 +170,14 @@ class DictService : BaseDatabase, IDict } return url; } + + /// + /// 获取头像路径 + /// + /// + public string RetrieveIconFolderPath() + { + var dicts = GetAll(); + return dicts.FirstOrDefault(d => d.Name == "头像路径" && d.Category == "头像地址" && d.Define == EnumDictDefine.System)?.Code ?? "images/uploder/"; + } } diff --git a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/UserService.cs b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/UserService.cs index 58b8d399..d21cae7f 100644 --- a/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/UserService.cs +++ b/src/blazor/admin/BootstrapAdmin.DataAccess.PetaPoco/Services/UserService.cs @@ -43,7 +43,7 @@ class UserService : BaseDatabase, IUser /// /// /// - public string? GetDisplayName(string? userName) => string.IsNullOrEmpty(userName) ? "" : Database.ExecuteScalar("select DisplayName from Users where UserName = @0", userName); + public User? GetUserByUserName(string? userName) => string.IsNullOrEmpty(userName) ? null : Database.FirstOrDefault("Where UserName = @0", userName); /// /// diff --git a/src/blazor/admin/BootstrapAdmin.Web.Core/IDict.cs b/src/blazor/admin/BootstrapAdmin.Web.Core/IDict.cs index 31ed886e..c863ba69 100644 --- a/src/blazor/admin/BootstrapAdmin.Web.Core/IDict.cs +++ b/src/blazor/admin/BootstrapAdmin.Web.Core/IDict.cs @@ -117,5 +117,7 @@ namespace BootstrapAdmin.Web.Core string? GetSettingsUrl(string appId); string? GetNotificationUrl(string appId); + + string RetrieveIconFolderPath(); } } diff --git a/src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs b/src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs index c1229be2..fed76d71 100644 --- a/src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs +++ b/src/blazor/admin/BootstrapAdmin.Web.Core/IUser.cs @@ -12,7 +12,7 @@ public interface IUser /// /// /// - string? GetDisplayName(string? userName); + User? GetUserByUserName(string? userName); /// /// 通过用户名获取角色列表 diff --git a/src/blazor/admin/BootstrapAdmin.Web/Shared/MainLayout.razor b/src/blazor/admin/BootstrapAdmin.Web/Shared/MainLayout.razor index 0093ff47..7272f1a1 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/Shared/MainLayout.razor +++ b/src/blazor/admin/BootstrapAdmin.Web/Shared/MainLayout.razor @@ -6,7 +6,7 @@ UseTabSet="true" TabDefaultUrl="/Admin/Index">
Bootstrap of Blazor - + 个人中心 设置 @@ -24,7 +24,7 @@
- +
@DisplayName
diff --git a/src/blazor/admin/BootstrapAdmin.Web/Shared/MainLayout.razor.cs b/src/blazor/admin/BootstrapAdmin.Web/Shared/MainLayout.razor.cs index ffa8c29e..5092338a 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/Shared/MainLayout.razor.cs +++ b/src/blazor/admin/BootstrapAdmin.Web/Shared/MainLayout.razor.cs @@ -1,4 +1,5 @@ using Bootstrap.Security.Blazor; +using BootstrapAdmin.DataAccess.Models; using BootstrapAdmin.Web.Core; using BootstrapAdmin.Web.Extensions; using BootstrapAdmin.Web.Services; @@ -49,6 +50,9 @@ namespace BootstrapAdmin.Web.Shared private string? UserName { get; set; } + [NotNull] + private string? Icon { get; set; } + /// /// OnInitializedAsync 方法 /// @@ -60,15 +64,19 @@ namespace BootstrapAdmin.Web.Shared if (!string.IsNullOrEmpty(UserName)) { - DisplayName = UsersService.GetDisplayName(UserName); + var user = UsersService.GetUserByUserName(UserName); + DisplayName = user?.DisplayName ?? "未注册账户"; Context.UserName = UserName; Context.DisplayName = DisplayName; + Icon = string.IsNullOrEmpty(user?.Icon) ? "images/uploader/default.jpg" : GetIcon(user.Icon); MenuItems = NavigationsService.GetAllMenus(UserName).ToAdminMenus(); } Title = DictsService.GetWebTitle(); Footer = DictsService.GetWebFooter(); + + string GetIcon(string icon) => icon.Contains("://", StringComparison.OrdinalIgnoreCase) ? icon : string.Format("{0}{1}", DictsService.RetrieveIconFolderPath(), icon); } private Task OnAuthorizing(string url) => SecurityService.AuhorizingNavigation(Context.UserName, url); diff --git a/src/blazor/admin/BootstrapAdmin.Web/Validators/UserNameValidator.cs b/src/blazor/admin/BootstrapAdmin.Web/Validators/UserNameValidator.cs index ffceaf09..e9d9834c 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/Validators/UserNameValidator.cs +++ b/src/blazor/admin/BootstrapAdmin.Web/Validators/UserNameValidator.cs @@ -23,7 +23,7 @@ public class UserNameValidator : IValidator /// public void Validate(object? propertyValue, ValidationContext context, List results) { - var displayName = UserService.GetDisplayName(propertyValue?.ToString()); + var displayName = UserService.GetUserByUserName(propertyValue?.ToString())?.DisplayName; if (!string.IsNullOrEmpty(displayName)) { ErrorMessage = $"{context.DisplayName}已存在";