using SqlSugar; using WinformDevFramework.Core.Winform; using WinformDevFramework.IServices; using WinformDevFramework.IServices.System; using WinformDevFramework.Models; namespace WinformDevFramework { public partial class FrmUser : BaseForm1 { private ISysUserServices _sysUserServices; private IsysDeptServices _sysDeptServices; public FrmUser(ISysUserServices sysUserServices,IsysDeptServices sysDeptServices) { _sysUserServices=sysUserServices; _sysDeptServices=sysDeptServices; InitializeComponent(); } /// /// 初始化数据 /// public override void Init() { base.Init(); //初始化 数据列表 列名称 this.dataGridViewList.DataSource = GetAllUsers(); this.dataGridViewList.Columns["Username"]!.HeaderText = "登录名"; this.dataGridViewList.Columns["FullName"]!.HeaderText = "呢称"; this.dataGridViewList.Columns["Sex"]!.HeaderText = "性别"; this.dataGridViewList.Columns["Email"]!.HeaderText = "邮箱"; this.dataGridViewList.Columns["PhoneNumber"]!.HeaderText = "手机号码"; this.dataGridViewList.Columns["CreateTime"]!.HeaderText = "创建时间"; this.dataGridViewList.Columns["LastLoginTime"]!.HeaderText = "最后登录时间"; this.dataGridViewList.Columns["Status"]!.HeaderText = "状态"; this.dataGridViewList.Columns["DeptName"]!.HeaderText = "部门"; this.dataGridViewList.Columns["DeptID"].Visible = false; this.dataGridViewList.Columns["Password"].Visible = false; SetParentMenu(_sysDeptServices.Query()); SetToolButtonStatus(formStatus); SetToolsButton(); } public override void DataGridViewListDoubleClick(object? sender, DataGridViewCellEventArgs e) { base.DataGridViewListDoubleClick(sender, e); var g = (DataGridView)sender; var model = g.CurrentRow.DataBoundItem as sysUser; //给详情页设置数据 this.txtID.Text = model.ID.ToString(); this.txtUserName.Text = model.Username; this.txtFullName.Text = model.Fullname; this.cmbSex.Text = model.Sex; this.txtMail.Text = model.Email; this.txtPhoneNumber.Text = model.PhoneNumber; this.cbStatus.Checked = model.Status.Value; this.dateTimePickerCreateDate.Text = model.CreateTime.ToString(); this.dateTimePickerLastLoginDate.Text = model.LastLoginTime.ToString(); var pmenu = _sysDeptServices.QueryById(model.DeptID); if (pmenu != null) { TreeNode node = new TreeNode(pmenu.DeptName); node.Name = pmenu.ID.ToString(); node.Tag = pmenu; this.DeptID.TreeView.SelectedNode = this.DeptID.TreeView.Nodes.Find(pmenu.ID.ToString(), true).FirstOrDefault(); this.DeptID.Text = pmenu.DeptName; this.DeptID.Tag = pmenu.ID; } SetToolButtonStatus(formStatus); } /// /// 获取所有用户 /// /// private List GetAllUsers() { return _sysUserServices.QueryMuch((u, d) =>new object[] { JoinType.Left,u.DeptID==d.ID }, (u, d) =>new sysUser() { ID = u.ID, CreateTime = u.CreateTime, Username = u.Username, Fullname = u.Fullname, Sex = u.Sex, Email = u.Email, PhoneNumber = u.PhoneNumber, Status = u.Status, LastLoginTime = u.LastLoginTime, Password = u.Password, DeptName = d.DeptName, DeptID = u.DeptID, } ); } public override void TabControlSelectingFunction(object? sender, TabControlCancelEventArgs e) { base.TabControlSelectingFunction(sender, e); } /// /// 新增 /// /// /// public override void AddFunction(object sender, EventArgs e) { base.AddFunction(sender, e); SetToolButtonStatus(formStatus); dateTimePickerCreateDate.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); cmbSex.Text = "男"; } /// /// 编辑 /// /// /// public override void EditFunction(object sender, EventArgs e) { base.EditFunction(sender, e); SetToolButtonStatus(formStatus); txtUserName.Enabled = false; } /// /// 保存 /// /// /// public override void SaveFunction(object sender, EventArgs e) { base.SaveFunction(sender, e); //if (ValidateData()) { //新增 if (string.IsNullOrEmpty(txtID.Text)) { sysUser newUser = new sysUser(); newUser.Username = txtUserName.Text; newUser.Fullname = txtFullName.Text; newUser.Sex = cmbSex.Text; newUser.Email = txtMail.Text; newUser.PhoneNumber=txtPhoneNumber.Text; newUser.Status = cbStatus.Checked; newUser.CreateTime = DateTime.Parse(dateTimePickerCreateDate.Text); newUser.LastLoginTime = DateTime.Parse(dateTimePickerLastLoginDate.Text); newUser.Password = "123456"; if (DeptID.TreeView.SelectedNode == null) { newUser.DeptID = int.Parse(DeptID.Tag.ToString()); } else { newUser.DeptID = ((sysDept)DeptID.TreeView.SelectedNode.Tag).ID; } var id = _sysUserServices.Insert(newUser); txtID.Text = id.ToString(); if (id > 0) { MessageBox.Show("保存成功!", "提示"); } } // 修改 else { sysUser user = _sysUserServices.QueryById(int.Parse(txtID.Text)); user.Username = txtUserName.Text; user.Fullname = txtFullName.Text; user.Sex = cmbSex.Text; user.Email = txtMail.Text; user.PhoneNumber = txtPhoneNumber.Text; user.Status = cbStatus.Checked; user.CreateTime = DateTime.Parse(dateTimePickerCreateDate.Text); user.LastLoginTime = DateTime.Parse(dateTimePickerLastLoginDate.Text); if (DeptID.TreeView.SelectedNode == null) { user.DeptID = int.Parse(DeptID.Tag.ToString()); } else { user.DeptID = ((sysDept)DeptID.TreeView.SelectedNode.Tag).ID; } if (_sysUserServices.Update(user)) { MessageBox.Show("保存成功!", "提示"); } } SetToolButtonStatus(formStatus); var menus = GetAllUsers(); this.dataGridViewList.DataSource = menus; } } /// /// 撤销 /// /// /// public override void CanelFunction(object sender, EventArgs e) { bool isAdd = formStatus == FormStatus.Add; base.CanelFunction(sender, e); SetToolButtonStatus(formStatus); btnEdit.Enabled = !isAdd; btnResetPW.Enabled=!isAdd; btnDel.Enabled = !isAdd; } /// /// 删除 /// /// /// public override void DelFunction(object sender, EventArgs e) { base.DelFunction(sender, e); var result = MessageBox.Show("是否删除?", "确认", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes) { _sysUserServices.DeleteById(Int32.Parse(txtID.Text)); SetToolButtonStatus(formStatus); var menus = GetAllUsers(); this.dataGridViewList.DataSource = menus; } } /// /// 关闭 /// /// /// public override void CloseFunction(object sender, EventArgs e) { base.CloseFunction(sender, e); } /// /// 重置密码 /// /// /// public override void ResetPWFunction(object sender, EventArgs e) { var user = _sysUserServices.QueryById(int.Parse(txtID.Text)); if (user != null) { user.Password = "123456"; if (_sysUserServices.Update(user)) { MessageBox.Show("重置成功!", "提示"); } } } /// /// 设置功能按钮状态 /// public override void SetToolButtonStatus(FormStatus status) { switch (status) { case FormStatus.Add: { btnAdd.Enabled = false; btnEdit.Enabled = false; btnSave.Enabled = true; btnDel.Enabled = false; btnCanel.Enabled = true; btnResetPW.Enabled = false; SetControlStatus(this.groupBox1, true); ClearControlsText(this.groupBox1); break; } case FormStatus.Edit: { btnAdd.Enabled = false; btnEdit.Enabled = false; btnSave.Enabled = true; btnDel.Enabled = false; btnCanel.Enabled = true; btnResetPW.Enabled = true; SetControlStatus(this.groupBox1, true); break; } case FormStatus.View: { btnAdd.Enabled = true; btnEdit.Enabled = true; btnSave.Enabled = false; btnDel.Enabled = true; btnCanel.Enabled = false; btnResetPW.Enabled = true; SetControlStatus(this.groupBox1, false); break; } case FormStatus.Canel: { btnAdd.Enabled = true; btnEdit.Enabled = true; btnSave.Enabled = false; btnDel.Enabled = false; btnCanel.Enabled = false; btnResetPW.Enabled = true; SetControlStatus(this.groupBox1, false); break; } case FormStatus.First: { btnAdd.Enabled = true; btnEdit.Enabled = false; btnSave.Enabled = false; btnDel.Enabled = false; btnCanel.Enabled = false; btnResetPW.Enabled = false; SetControlStatus(this.groupBox1, false); break; } case FormStatus.Save: { btnAdd.Enabled = true; btnEdit.Enabled = true; btnSave.Enabled = false; btnDel.Enabled = true; btnCanel.Enabled = false; btnResetPW.Enabled = true; SetControlStatus(this.groupBox1, false); break; } case FormStatus.Del: { btnAdd.Enabled = true; btnEdit.Enabled = false; btnSave.Enabled = false; btnDel.Enabled = false; btnCanel.Enabled = false; btnResetPW.Enabled = false; SetControlStatus(this.groupBox1, false); ClearControlsText(this.groupBox1); break; } } } //验证数据 public override bool ValidateData() { bool result = false; if (string.IsNullOrEmpty(txtUserName.Text)) { MessageBox.Show("账号不能为空!"); return result; } if (string.IsNullOrEmpty(txtFullName.Text)) { MessageBox.Show("昵称不能为空!"); return result; } if (string.IsNullOrEmpty(DeptID.Text)) { MessageBox.Show("部门不能为空!"); return result; } result = true; return result; } /// /// 上级部门设置 /// private void SetParentMenu(List menus) { DeptID.Nodes.Clear(); List nodes = new List(); foreach (var menu in menus) { TreeNode node = new TreeNode(menu.DeptName); node.Tag = menu; node.Name = menu.ID.ToString(); nodes.Add(node); } foreach (var treeNode in nodes) { var menu = (sysDept)treeNode.Tag; treeNode.Nodes.AddRange(nodes.Where(p => menu.ID == ((sysDept)p.Tag).PDeptID).ToArray()); } DeptID.Nodes.Add(nodes.Where(p => ((sysDept)p.Tag).PDeptID == 0).FirstOrDefault()); } } }