using DevExpress.XtraEditors;
using Yw;
using Yw.WinFrmUI;
namespace HStation.Desktop
{
public partial class LoginFrm : DevExpress.XtraEditors.XtraForm
{
public LoginFrm()
{
InitializeComponent();
this.layoutControl1.SetupLayoutControl();
this.layoutControl2.SetupLayoutControl();
this.Load += LoginBigFrm_Load;
}
private void LoginBigFrm_Load(object sender, EventArgs e)
{
try
{
var settings = new UserLoginSettings();
this.txtLoginName.EditValue = settings.LoginName;
if (settings.ExpireTime != null && settings.ExpireTime.Value > DateTime.Now)
{
this.txtPwd.EditValue = settings.Password;
this.ckRemember.Checked = true;
}
}
catch
{
}
}
private void labSysTitle_MouseDown(object sender, MouseEventArgs e)
{
//this.DragMove();
}
private void btnLogin_Click(object sender, EventArgs e)
{
Login();
}
///
/// 新增绘制边框
///
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
//using (var pen = new Pen(Color.FromArgb(0, 122, 204), 1f))
//{
// e.Graphics.DrawRectangle(pen, 0.5f, 0.5f, this.Width - 1, this.Height - 1);
//}
}
//验证
private bool Valid()
{
this.itemForProgress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
if (string.IsNullOrEmpty(this.txtLoginName.Text.Trim()))
{
XtraMessageBox.Show("请输入用户名!");
this.itemForProgress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
return default;
}
if (string.IsNullOrEmpty(this.txtPwd.Text.Trim()))
{
XtraMessageBox.Show("请输入密码!");
this.itemForProgress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
return default;
}
return true;
}
//取消
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
//用户名Enter
private void txtLoginName_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
this.txtPwd.Focus();
}
}
//密码 Enter
private void txtPwd_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
Login();
}
}
//登录
private async void Login()
{
if (!Valid())
return;
// 用户登录
var loginModel = new Yw.Dto.UserLoginSoftwareBySystemAccountStandardInput();
loginModel.Software = "HStation_XHS_DESKTOP";
loginModel.LoginName = this.txtLoginName.Text.Trim();
loginModel.LoginPwd = this.txtPwd.Text.Trim();
var bll = new Yw.BLL.UserLogin();
var result = await bll.LoginSoftwareStandardBySystemAccount(loginModel);
if (result.Status != Yw.Auth.eLoginStatus.Success)
{
XtraMessageBox.Show($"登录失败,信息:{(int)result.Status}");
this.itemForProgress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
return;
}
Yw.JwtToken2Helper.Set(result.AccessToken, result.RefreshToken);
var settings = new UserLoginSettings();
settings.LoginName = this.txtLoginName.Text.Trim();
settings.Password = null;
settings.ExpireTime = DateTime.Now;
if (this.ckRemember.Checked)
{
settings.Password = this.txtPwd.Text.Trim();
settings.ExpireTime = DateTime.Now.AddMonths(1);
}
settings.Save();
var login = new GlobalParas(result);
var authTreelist = await BLLFactory.Instance.GetMenuTreeList(GlobalParas._GlobalParas.SoftwareID, GlobalParas._GlobalParas.UserID);
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}