using InSituLaboratory.Entities; using InSituLaboratory.IService; using InSituLaboratory.Models; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace InSituLaboratory.ViewModels.Pages.Dialogs { public class ModifyUserViewModel : DialogViewModelBase { public UserModel UserInfo { get; set; } = new UserModel(); /// /// 控制用户名是否可以更改 /// 默认False /// public bool IsReadOnlyUserName { get; set; } IUserService _userService; public ModifyUserViewModel(IUserService userService) { _userService = userService; } /// /// 新增或者编辑打开窗口 /// /// public override void OnDialogOpened(IDialogParameters parameters) { var model = parameters.GetValue("model"); if (model == null) { Title = "新增用户信息"; UserInfo = new UserModel(_userService); UserInfo.UserName = ""; UserInfo.Gender = 1; UserInfo.Password = "123456"; UserInfo.UserIcon = "a01.jpg"; } else { Title = "编辑菜单项"; IsReadOnlyUserName = true; var su = _userService.Find(model.UserId); UserInfo.UserId = su.UserId; UserInfo.UserName = su.UserName; UserInfo.RealName = su.RealName; UserInfo.Password = su.Password; UserInfo.UserIcon = su.UserIcon; UserInfo.Gender = su.Gender; UserInfo.Address = su.Address; UserInfo.Age = su.Age; UserInfo.Status = su.Status; UserInfo.Phone = su.Phone; UserInfo.Email = su.Email; UserInfo.QQ = su.QQ; UserInfo.WeChat = su.WeChat; } } /// /// 保存 /// public override void DoSave() { if (UserInfo.HasErrors) return; //保存逻辑 try { //查询当前用户的登录信息 var CurrentUser = _userService.Query(u => u.UserName == StaticInfo.LoginUserName).First(); if (UserInfo.UserId == 0) { //新增保存 //UserId的编码规则: //4个年份 2024 //3位序号 XXX int uid = DateTime.Now.Year * 1000; int num = _userService.Set().Max(x => x.UserId) % uid; uid += num + 1; _userService.Insert(new SysUser { UserId = uid, UserName = UserInfo.UserName, RealName = UserInfo.RealName, Password = UserInfo.Password, UserIcon = UserInfo.UserIcon, Address = UserInfo.Address, Age = UserInfo.Age, Status = 1, Phone = UserInfo.Phone, Gender = UserInfo.Gender, Email = UserInfo.Email, QQ = UserInfo.QQ, WeChat = UserInfo.WeChat, CreateTime = System.DateTime.Now, CreateId = CurrentUser.UserId }); } else { // 编辑保存 var user = _userService.Find(UserInfo.UserId); user.RealName = UserInfo.RealName; user.Gender = UserInfo.Gender; user.Address = UserInfo.Address; user.Age = UserInfo.Age; user.Phone = UserInfo.Phone; user.Email = UserInfo.Email; user.QQ = UserInfo.QQ; user.WeChat = UserInfo.WeChat; user.LastModifyTime = System.DateTime.Now; user.LastModifyId = CurrentUser.UserId; //还可以添加页面中可以进行修改的字段属性 _userService.Update(user); } // 保存成功后 ,需要关闭当前弹窗 base.DoSave(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }