@page "/manage/user"
@using log4net;
@code {
@inject IUserDao userDao;
@inject IRoleDao roleDao;
@inject DialogService dialogService;
@inject NotificationService _message
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()
{
await base.OnInitializedAsync();
roles = await roleDao.GetAllRoles();
}
void Reset()
{
usersToInsert.Clear();
usersToUpdate.Clear();
}
async Task Reg2ZWJ(Pojo.User user)
{
await dialogService.OpenAsync(
$"录入指纹",
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(
$"删除确认",
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 = "提示", 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();
}
}