From 94ddc1be824b09a32f0500d28da2565199b8c43b Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 15 Jan 2020 15:37:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(#I18FGZ):=20Blazor=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #Comment comment #I18FGZ #Issue close https://gitee.com/LongbowEnterprise/dashboard/issues?id=I18FGZ --- .../Extensions/DisplayNamesExtensions.cs | 13 +-- .../Bootstrap.Admin/Pages/Admin/Users.razor | 84 ++++++++++--------- .../Pages/Components/UsersBase.cs | 39 +++++++++ src/admin/Bootstrap.DataAccess/User.cs | 7 ++ 4 files changed, 97 insertions(+), 46 deletions(-) create mode 100644 src/admin/Bootstrap.Admin/Pages/Components/UsersBase.cs diff --git a/src/admin/Bootstrap.Admin/Extensions/DisplayNamesExtensions.cs b/src/admin/Bootstrap.Admin/Extensions/DisplayNamesExtensions.cs index e2a3c5e1..741ecffe 100644 --- a/src/admin/Bootstrap.Admin/Extensions/DisplayNamesExtensions.cs +++ b/src/admin/Bootstrap.Admin/Extensions/DisplayNamesExtensions.cs @@ -1,4 +1,5 @@ -using Bootstrap.Security; +using Bootstrap.DataAccess; +using Bootstrap.Security; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Concurrent; @@ -6,7 +7,7 @@ using System.Collections.Concurrent; namespace Microsoft.AspNetCore.Builder { /// - /// + /// /// public static class DisplayNamesExtensions { @@ -25,13 +26,13 @@ namespace Microsoft.AspNetCore.Builder _displayNameCache.TryAdd((typeof(BootstrapDict), nameof(BootstrapDict.Code)), "字典代码"); _displayNameCache.TryAdd((typeof(BootstrapDict), nameof(BootstrapDict.Define)), "字典类型"); - _displayNameCache.TryAdd((typeof(BootstrapUser), nameof(BootstrapUser.UserName)), "登录名称"); - _displayNameCache.TryAdd((typeof(BootstrapUser), nameof(BootstrapUser.DisplayName)), "显示名称"); + _displayNameCache.TryAdd((typeof(User), nameof(User.UserName)), "登录名称"); + _displayNameCache.TryAdd((typeof(User), nameof(User.DisplayName)), "显示名称"); return services; } /// - /// + /// /// /// /// @@ -39,7 +40,7 @@ namespace Microsoft.AspNetCore.Builder public static bool TryGetValue((Type ModelType, string FieldName) cacheKey, out string? displayName) => _displayNameCache.TryGetValue(cacheKey, out displayName); /// - /// + /// /// /// /// diff --git a/src/admin/Bootstrap.Admin/Pages/Admin/Users.razor b/src/admin/Bootstrap.Admin/Pages/Admin/Users.razor index 1cb4325e..4a422080 100644 --- a/src/admin/Bootstrap.Admin/Pages/Admin/Users.razor +++ b/src/admin/Bootstrap.Admin/Pages/Admin/Users.razor @@ -1,41 +1,45 @@ - -@using System.Globalization +@inherits UsersBase -

@_headingText

- -
-
- @* - A check box sets the font style and is bound to the - _italicsCheck field. - *@ - - -
- - @* - When the form is submitted, the onclick event executes - the UpdateHeading method. - *@ - -
- -@code { - private static TextInfo _tinfo = CultureInfo.CurrentCulture.TextInfo; - private string _headingText = - _tinfo.ToTitleCase("welcome to blazor!"); - private string _headingFontStyle = "normal"; - private bool _italicsCheck = false; - - // When UpdateHeading is executed, _italicsCheck determines - // the value of _headingFontStyle to set the font style of the - // heading. - public void UpdateHeading() - { - _headingFontStyle = _italicsCheck ? "italic" : "normal"; - } -} + + + + + + + + + + + + + + + @context.UserName + @context.DisplayName + @context.RegisterTime.ToString("yyyy-MM-dd HH:mm:ss") + @(context.ApprovedTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? "-") + @context.ApprovedBy + @context.Description + + +
+ + + + + + + + + + + + + + + + + +
+
+
diff --git a/src/admin/Bootstrap.Admin/Pages/Components/UsersBase.cs b/src/admin/Bootstrap.Admin/Pages/Components/UsersBase.cs new file mode 100644 index 00000000..fee6da63 --- /dev/null +++ b/src/admin/Bootstrap.Admin/Pages/Components/UsersBase.cs @@ -0,0 +1,39 @@ +using Bootstrap.Admin.Components; +using Bootstrap.DataAccess; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Bootstrap.Pages.Admin.Components +{ + /// + /// 用户表维护组件 + /// + public class UsersBase : QueryPageBase + { + /// + /// 查询方法 + /// + /// 页码 + /// 每页显示数据条目数量 + protected override QueryData Query(int pageIndex, int pageItems) + { + var data = UserHelper.Retrieves(); + if (!string.IsNullOrEmpty(QueryModel.UserName)) data = data.Where(d => d.UserName.Contains(QueryModel.UserName, StringComparison.OrdinalIgnoreCase)); + if (!string.IsNullOrEmpty(QueryModel.DisplayName)) data = data.Where(d => d.DisplayName.Contains(QueryModel.DisplayName, StringComparison.OrdinalIgnoreCase)); + var totalCount = data.Count(); + var items = data.Skip((pageIndex - 1) * pageItems).Take(pageItems); + return new QueryData() { Items = items, TotalCount = totalCount, PageIndex = pageIndex, PageItems = pageItems }; + } + + /// + /// 保存方法 + /// + protected override bool Save(User user) => UserHelper.Save(user); + + /// + /// 删除方法 + /// + protected override bool Delete(IEnumerable users) => UserHelper.Delete(users.Select(item => item.Id ?? "")); + } +} diff --git a/src/admin/Bootstrap.DataAccess/User.cs b/src/admin/Bootstrap.DataAccess/User.cs index 5ad8f489..79d97941 100644 --- a/src/admin/Bootstrap.DataAccess/User.cs +++ b/src/admin/Bootstrap.DataAccess/User.cs @@ -4,6 +4,7 @@ using Longbow.Security.Cryptography; using PetaPoco; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; namespace Bootstrap.DataAccess @@ -22,6 +23,7 @@ namespace Bootstrap.DataAccess /// /// 获取/设置 密码 /// + [DisplayName("登录密码")] public string Password { get; set; } = ""; /// @@ -38,21 +40,25 @@ namespace Bootstrap.DataAccess /// /// 获得/设置 用户注册时间 /// + [DisplayName("注册时间")] public DateTime RegisterTime { get; set; } = DateTime.Now; /// /// 获得/设置 用户被批复时间 /// + [DisplayName("授权时间")] public DateTime? ApprovedTime { get; set; } /// /// 获得/设置 用户批复人 /// + [DisplayName("授权人")] public string? ApprovedBy { get; set; } /// /// 获得/设置 用户的申请理由 /// + [DisplayName("说明")] public string Description { get; set; } = ""; /// @@ -71,6 +77,7 @@ namespace Bootstrap.DataAccess /// 获得/设置 新密码 /// [ResultColumn] + [DisplayName("确认密码")] public string NewPassword { get; set; } = ""; ///