using Yw; using Yw.WinFrmUI; namespace PBS.Desktop { public partial class SystemLoginCtrl : DevExpress.XtraEditors.XtraUserControl, ILogin { public SystemLoginCtrl() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); } /// /// 登录开始事件 /// public event Action LoginStartEvent; /// /// 登录取消事件 /// public event Action LoginCancelEvent; /// /// 登录完成事件 /// public event Action LoginEndEvet; private bool _isInitialized = false;//初始化 private const string _software = "YW_PBS_DESKTOP";//软件编码 /// /// 初始化 /// public void Initial() { if (_isInitialized) { return; } _isInitialized = true; try { var settings = new UserLoginSettings(); this.txtLoginName.EditValue = settings.LoginName; if (settings.ExpireTime != null && settings.ExpireTime.Value > DateTime.Now) { this.txtLoginPwd.EditValue = settings.Password; this.ckRemember.Checked = true; } } catch { } } //取消登录 private void btnCancel_Click(object sender, EventArgs e) { this.LoginCancelEvent?.Invoke(); } //登录 private void btnLogin_Click(object sender, EventArgs e) { Login(); } // private void txtLoginName_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { this.txtLoginPwd.Focus(); } } // private void txtLoginPwd_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { Login(); } } //验证 private bool Valid() { this.dxErrorProvider1.ClearErrors(); var loginName = this.txtLoginName.Text.Trim(); if (string.IsNullOrEmpty(loginName)) { this.dxErrorProvider1.SetError(this.txtLoginName, "请输入用户名称"); return false; } var loginPwd = this.txtLoginPwd.Text.Trim(); if (string.IsNullOrEmpty(loginPwd)) { this.dxErrorProvider1.SetError(this.txtLoginPwd, "请输入密码"); return false; } return true; } //登录 private async void Login() { if (!Valid()) { return; } // 用户登录 this.LoginStartEvent?.Invoke(); var loginName = this.txtLoginName.Text.Trim(); var loginPwd = this.txtLoginPwd.Text.Trim(); var result = await BLLFactory.Instance.LoginSoftwareStandardBySystemAccount(loginName, loginPwd, _software, null); var settings = new UserLoginSettings(); settings.LoginName = loginName; settings.Password = null; settings.ExpireTime = DateTime.Now; if (this.ckRemember.Checked) { settings.Password = loginPwd; settings.ExpireTime = DateTime.Now.AddMonths(1); } settings.Save(); this.LoginEndEvet?.Invoke(result); } } }