@page "/manage/user" @using log4net;
@code { @inject IUserDao userDao; @inject IRoleDao roleDao; @inject DialogService dialogService; @inject NotificationService _message; @inject Toolbelt.Blazor.I18nText.I18nText I18nText; private I18nText.local myText = new I18nText.local(); RadzenDataGrid grid; bool isLoading; int count; private IEnumerable? userList; string nickname; DateTime OrderDate; private readonly ILog logger = LogManager.GetLogger(typeof(Pages.User)); List roles; List usersToInsert = new List(); List usersToUpdate = new List(); protected override async Task OnInitializedAsync() { myText = await I18nText.GetTextTableAsync(this); await base.OnInitializedAsync(); roles = await roleDao.GetAllRoles(); } void Reset() { usersToInsert.Clear(); usersToUpdate.Clear(); } async Task Reg2ZWJ(Pojo.User user) { await dialogService.OpenAsync( myText.EnterFingerprint, new Dictionary() { { "userId", user.Id } }, new DialogOptions() { Width = "55vw", Resizable = true, Draggable = true, ShowClose = false } ); } async Task Signatrue(Pojo.User user) { var flag = await dialogService.OpenAsync( $"签名-{user.NickName}", new Dictionary() { { "user", user } }, new DialogOptions() { Width = "55vw", Resizable = true, Draggable = true, ShowClose = true } ); if(flag != null && flag) { await reloadGrid(); } } void Reset(Pojo.User user) { usersToInsert.Remove(user); usersToUpdate.Remove(user); } void OnCurrentDateChanged(DateTime args) { OrderDate = new DateTime(args.Year, args.Month, args.Day); } async Task LoadData(LoadDataArgs args) { isLoading = true; var result = await userDao.GetAllByNickname(nickname, args.Top, args.Skip); // Update the Data property userList = result.Desserts; // Update the count count = result.TotalDesserts; isLoading = false; } async Task reloadGrid() { nickname = ""; await grid.Reload(); } async Task EditRow(Pojo.User user) { Reset(); usersToUpdate.Add(user); await grid.EditRow(user); } void OnUpdateRow(Pojo.User user) { Reset(user); // 数据库更新 userDao.UpdateUser(user); if(user.role.Id != user.RoleId) { grid.Reload(); } } async Task SaveRow(Pojo.User user) { await grid.UpdateRow(user); } void CancelEdit(Pojo.User user) { Reset(user); grid.CancelEditRow(user); grid.Reload(); } async Task DeleteRow(Pojo.User user) { Reset(user); if (userList.Contains(user)) { //弹出确认提示框 var b = await dialogService.OpenAsync( myText.ConfirmDelete, new Dictionary() { { "confirmInfo", "确认要删除用户:"+user.Username+"吗?" } }, new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false }); if (b) { // 数据库删除 userDao.DeleteeUser(user.Id); } await grid.Reload(); } else { grid.CancelEditRow(user); await grid.Reload(); } } //重置密码 async Task ResetPasswordRow(Pojo.User user) { Reset(user); if (userList.Contains(user)) { //弹出确认提示框 var b = await dialogService.OpenAsync( $"密码重置确认", new Dictionary() { { "confirmInfo", "确认要重置用户:" + user.Username+" 的密码吗?" } }, new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false }); if (b) { // 数据库重置密码 userDao.ResetPassword(user.Id); //提示密码已重置,下次登录请使用重置后的密码 _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = $"密码已重置,下次登录请使用重置后的密码", Duration = 4000 }); } await grid.Reload(); } else { grid.CancelEditRow(user); await grid.Reload(); } } async Task InsertRow() { Reset(); var user = new Pojo.User() { RoleId = roles[0].Id, }; usersToInsert.Add(user); await grid.InsertRow(user); } void OnCreateRow(Pojo.User user) { // 数据库添加用户 userDao.InsertUser(user); usersToInsert.Remove(user); grid.Reload(); } }