You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

116 lines
3.0 KiB

using ButcherFactory.BO.Utils;
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;
using WinFormControl;
namespace ButcherFactory.Login
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();
userNameBox.Text = AppContext.User.Name;
pwdBox.Text = "123";
if (!string.IsNullOrEmpty(AppContext.User.Name))
pwdBox.Focus();
}
private Point mousePoint = new Point();
private void Login_MouseDown(object sender, MouseEventArgs e)
{
this.mousePoint.X = e.X;
this.mousePoint.Y = e.Y;
}
private void Login_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Top = Control.MousePosition.Y - mousePoint.Y;
this.Left = Control.MousePosition.X - mousePoint.X;
}
}
private async void loginBtn_Click(object sender, EventArgs e)
{
var username = userNameBox.Text.Trim();
var pwd = pwdBox.Text;
if (string.IsNullOrEmpty(username))
throw new Exception("请输入用户名");
if (LoginUtil.TestConnection(1000))
{
LoginUtil.InitRpcFacade();
await Task.Factory.StartNew(() => LoginUtil.Login(username, pwd));
}
else
{
if (AppContext.User.Name != username || string.Join("", LoginUtil.EncodePwd(pwd)) != string.Join("", AppContext.User.Password))
throw new Exception("离线时只能使用上次登录信息登录");
}
var form = FormUtil.CreateFrom();
if (form == null)
throw new Exception("权限不符");
form.FormClosing += delegate
{
SubFormClosing();
LoginUtil.LoginOut();
};
form.Show();
Hide();
}
void SubFormClosing()
{
foreach (Form form in Application.OpenForms)
{
if (form is Login)
{
form.Show();
return;
}
}
}
private void exitBtn_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
if (new SettingForm().ShowDialog() == DialogResult.OK)
LoginUtil.ReInitRpcFacade();
}
private void userNameBox_Click(object sender, EventArgs e)
{
LoginUtil.InitRpcFacade();
var keyBoard = new NumberPad();
if (keyBoard.ShowDialog() == true)
{
if (!LoginUtil.TestConnection(1000))
{
if (string.IsNullOrEmpty(AppContext.User.Name))
throw new Exception("请检查网络");
throw new Exception("离线时无法切换用户");
}
string errorInfo;
userNameBox.Text = LoginUtil.GetUserNameByCode(keyBoard.Result, out errorInfo);
if (string.IsNullOrEmpty(userNameBox.Text))
throw new Exception("工号输入错误");
if (!string.IsNullOrEmpty(errorInfo))
MessageBox.Show(errorInfo);
}
}
}
}