liyaobang 9f7c6206ca 提交rbac
提交设置右键错位的bug
2025-04-08 15:15:02 +08:00

254 lines
8.1 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using AntdUI;
using DH.RBAC.Common;
using DH.RBAC.Logic.Sys;
using DH.RBAC.Model.Sys;
using DH.RBAC.Page;
using DH.RBAC.Utility.Other;
using Sunny.UI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DH.RBAC.Page.Sys.User
{
[PageCode("sys-user")]
public partial class UserPage : MyPage
{
Window window;
private SysUserLogic userLogic;
private SysUserRoleRelationLogic userRoleRelationLogic;
private SysUserLogOnLogic userLogOnLogic;
public UserPage(Window _window)
{
window = _window;
InitializeComponent();
userLogic = new SysUserLogic();
userRoleRelationLogic = new SysUserRoleRelationLogic();
userLogOnLogic = new SysUserLogOnLogic();
dataGridView.AutoGenerateColumns = false;
Load += UserPage_Initialize;
btnAdd.Click += btnAdd_Click;
btnUpdate.Click += btnModify_Click;
btnDelete.Click += btnDelete_Click;
btnPwd.Click += uiSymbolButton1_Click;
btnQuery.Click += btnQuery_Click;
}
/// <summary>
/// 画面初始化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UserPage_Initialize(object sender, EventArgs e)
{
btnQuery_Click(sender, e);
}
/// <summary>
/// 查询按钮事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void btnQuery_Click(object sender, EventArgs e)
{
int totalCount = 0;
List<SysUser> list = userLogic.GetList(pagination.ActivePage, pagination.PageSize, txtKeywords.Text, ref totalCount);
pagination.TotalCount = totalCount;
dataGridView.DataSource = list;
}
/// <summary>
/// 关键字Enter键处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtKeywords_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
btnQuery_Click(sender, null);
}
/// <summary>
/// 新增用户按钮事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnAdd_Click(object sender, EventArgs e)
{
AddUserForm form = new AddUserForm();
form.ParentPage = this;
form.Id = string.Empty;
FormHelper.ShowSubForm(form);
}
/// <summary>
/// 修改用户按钮事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnModify_Click(object sender, EventArgs e)
{
if (dataGridView.SelectedRows.Count == 0)
{
AntdUI.Message.warn(window, "请选择一行数据进行修改!", autoClose: 3);
return;
}
int index = dataGridView.SelectedIndex;
if (index < 0)
{
AntdUI.Message.warn(window, "请选择一行数据进行修改!", autoClose: 3);
return;
}
string id = dataGridView.Rows[index].Cells["UserId"].Value.ToString();
AddUserForm form = new AddUserForm();
form.ParentPage = this;
form.Id = id;
FormHelper.ShowSubForm(form);
}
/// <summary>
/// 删除用户按钮事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDelete_Click(object sender, EventArgs e)
{
if (dataGridView.SelectedRows.Count == 0)
{
AntdUI.Message.warn(window, "请选择一行数据进行删除!", autoClose: 3);
return;
}
int index = dataGridView.SelectedIndex;
if (index < 0)
{
AntdUI.Message.warn(window, "请选择一行数据进行删除!", autoClose: 3);
return;
}
string id = dataGridView.Rows[index].Cells["UserId"].Value.ToString();
var result = AntdUI.Modal.open(window, "删除警告!", "您是否确定要删除该用户?", TType.Warn);
if (result == DialogResult.OK)
{
try
{
//多用户删除。
List<string> userIdList = id.SplitToList();
//过滤系统管理员
if (userLogic.ContainsUser("admin", userIdList.ToArray()))
{
AntdUI.Message.warn(window, "系统管理员用户不能删除!", autoClose: 3);
return;
}
if (userIdList.Contains(GlobalConfig.CurrentUser.Id))
{
AntdUI.Message.warn(window, "不能删除自己!", autoClose: 3);
return;
}
//多用户删除。
int row = userLogic.Delete(userIdList);
userRoleRelationLogic.Delete(userIdList);
userLogOnLogic.Delete(userIdList);
if (row == 0)
{
AntdUI.Message.warn(window, "对不起,操作失败!", autoClose: 3);
return;
}
//重新查询
btnQuery_Click(null, null);
}
catch
{
AntdUI.Message.warn(window, "网络或服务器异常,请稍后再试!", autoClose: 3);
}
}
}
/// <summary>
/// 页码发生改变
/// </summary>
/// <param name="sender"></param>
/// <param name="pagingSource"></param>
/// <param name="pageIndex"></param>
/// <param name="count"></param>
private void pagination_PageChanged(object sender, object pagingSource, int pageIndex, int count)
{
btnQuery_Click(null, null);
}
private void uiSymbolButton1_Click(object sender, EventArgs e)
{
if (dataGridView.SelectedRows.Count == 0)
{
AntdUI.Message.warn(window, "请选择一行数据进行重置密码!", autoClose: 3);
return;
}
int index = dataGridView.SelectedIndex;
if (index < 0)
{
AntdUI.Message.warn(window, "请选择一行数据进行重置密码!", autoClose: 3);
return;
}
string id = dataGridView.Rows[index].Cells["UserId"].Value.ToString();
string[] userIdList = new string[] { id };
if (userLogic.ContainsUser("admin", new string[] { id }))
{
AntdUI.Message.warn(window, "不能重置系统管理员密码!", autoClose: 3);
return;
}
if (userIdList.Contains(GlobalConfig.CurrentUser.Id))
{
AntdUI.Message.warn(window, "不能重置自己密码,请从账号管理中修改密码!", autoClose: 3);
return;
}
//重置密码
SysUserLogOn sysUserLogOn = userLogOnLogic.GetByAccount(id);
sysUserLogOn.Password = "123456".MD5Encrypt().DESEncrypt(sysUserLogOn.SecretKey).MD5Encrypt();
int row = userLogOnLogic.UpdatePassword(sysUserLogOn);
if (row > 0)
{
AntdUI.Message.success(window, "该用户密码已重置为123456", autoClose: 3);
return;
}
else
{
AntdUI.Message.warn(window, "重置失败!", autoClose: 3);
}
}
}
}