using _29WxOrderWpf.BaseWindows; using _29WxOrderWpf.UserControls; using AllBase; using AllBase.DouYinModel.Param.LoginManage; using NaiBa.Util; using NaiBa.Util.Extension; using NaiBa.Util.Helper; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Forms; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using Work; using Work.BaseForms; using WxOrder.Framework.Commons; namespace _29WxOrderWpf.Windows.LoginWindows { /// /// LoginWindow.xaml 的交互逻辑 /// public partial class LoginWindow : BaseWindow { public static ConcurrentList UserParamList { get; set; } = new ConcurrentList(); public bool IsLogin { get; set; } = false; string[] argsuser; public LoginWindow(string[] args) { InitializeComponent(); if (!string.IsNullOrEmpty(BaseClass.ProgramName)) { lblAppName.Content = BaseClass.ProgramName; MainWindow.Instance.lblAppName.Content = BaseClass.ProgramName.Contains("-微信小店订单管理") ? BaseClass.ProgramName : BaseClass.ProgramName + "-微信小店订单管理"; } this.Title = "用户登录"; argsuser = args; } private void loginWindow_Loaded(object sender, RoutedEventArgs e) { #if DEBUG chkDebug.Visibility = Visibility.Visible; chkDebug.IsChecked = EnvironmentHelper.IsDevelopment; #endif GetUserList(); foreach (var user in UserParamList) { cmbUserNameMobile.Items.Insert(0, user.UserName); } this.Title = "登录"; if (BaseClass.Remember) { chkRemember.IsChecked = true; cmbUserNameMobile.Text = BaseClass.UserName; if (!string.IsNullOrEmpty(BaseClass.PassWord)) txtPassword.Password = "******"; } if (argsuser.Length > 1) { cmbUserNameMobile.Text = argsuser[0].Replace(" ", ""); txtPassword.Password = "******"; BaseClass.PassWord = argsuser[1].Replace(" ", ""); btnLogin_Click(null, null); } } private void BaseWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { //if (BaseMsgForm.ShowConfirm("是否关闭软件?\r\n必须登录账户才能使用,无账户请先注册一个", "请先登录或者注册").DialogResult == System.Windows.Forms.DialogResult.OK) // Process.GetCurrentProcess().Kill(); //else // e.Cancel = true; if (!IsLogin) { if (BaseMsgWindow.ShowConfirm("是否关闭软件?\r\n必须登录账户才能使用,无账户请先注册一个。", "请先登录或者注册", this).DialogResult == true) Process.GetCurrentProcess().Kill(); else e.Cancel = true; } } private void btnLogin_Click(object sender, RoutedEventArgs e) { UserLogin ul = new UserLogin(); ul.Mobile = cmbUserNameMobile.Text; ul.Password = txtPassword.Password; if (cmbUserNameMobile.Text.Length != 11) { BaseMsgWindow.ShowError("手机号不正确", "提示", this); cmbUserNameMobile.Focus(); return; } if (txtPassword.Password.Length < 6) { BaseMsgWindow.ShowError("密码长度不正确", "提示", this); txtPassword.Password = ""; txtPassword.Focus(); return; } string message = ""; int weakPassword = 0; int lockUserName = 0; string messageInfo = ""; bool ok = ul.Get(ref message, out lockUserName, out weakPassword, out messageInfo); if (!ok) { BaseMsgForm.ShowError(message, "登录失败"); return; } MainWindow.Instance.Balance = BaseClass.Balance.ToString("0.00"); if (BaseClass.Remember) { Initialization i = new Initialization(); i.SaveConfig(); var eUser = UserParamList.FirstOrDefault(u => u.UserName == BaseClass.UserName); if (eUser != null) UserParamList.Remove(eUser); UserParamList.Add(new UserParam() { UserName = BaseClass.UserName, PasswordMd5 = BaseClass.PassWord }); SaveUserList(); } #if DEBUG MainWindow.Instance.lblDebug.Visibility = Visibility.Visible; MainWindow.Instance.lblDebug.Content = "[Debug]"; MainWindow.Instance.lblDebug.Foreground = new SolidColorBrush(Color.FromRgb(100, 250, 255)); if (BaseClass.LoginApiUrl == BaseClass.DebugUrl) { MainWindow.Instance.lblDebug.Foreground = new SolidColorBrush(Color.FromRgb(0, 255, 100)); MainWindow.Instance.lblDebug.Content = "[Dev]"; } #endif this.IsLogin = true; this.Close(); } public static void SaveUserList() { ConfigHelper.SaveConfig("user_login_config", UserParamList); } public static void GetUserList() { #region 用户账户记忆功能 UserParamList = ConfigHelper.LoadConfig>("user_login_config"); if (UserParamList == null) UserParamList = new ConcurrentList(); #endregion } private void btnDeleteItem_Click(object sender, RoutedEventArgs e) { var imgButton = sender as UcImageButton; if (imgButton != null) { var userName = imgButton.Tag.ParseToString(); if (!string.IsNullOrEmpty(userName)) { UserParamList.RemoveAll(u => u.UserName == userName); SaveUserList(); foreach (var item in cmbUserNameMobile.Items.Cast().ToList()) { if (item.ParseToString() == userName) { cmbUserNameMobile.Items.Remove(item); } } //ShowUserDropDown(); } } } private void cmbUserNameMobile_SelectionChanged(object sender, SelectionChangedEventArgs e) { var userName = cmbUserNameMobile.SelectedItem.ParseToString(); var user = UserParamList.FirstOrDefault(u => u.UserName == userName); if (user != null) { BaseClass.UserName = user.UserName; BaseClass.PassWord = user.PasswordMd5; this.cmbUserNameMobile.Text = user.UserName; this.txtPassword.Password = "******"; } } private void chkRemember_Checked(object sender, RoutedEventArgs e) { BaseClass.Remember = chkRemember.IsChecked.ParseToBool(); } private void chkDebug_Checked(object sender, RoutedEventArgs e) { if (chkDebug.IsChecked == true) { BaseClass.LoginApiUrl = BaseClass.DebugUrl; } else { BaseClass.LoginApiUrl = BaseClass.ServerUrl; } } } }