using System; using System.Text.RegularExpressions; using System.Threading; using HDL_ON.DAL.Server; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI.UI1Login { public partial class ForgetPasswordPage { /// /// 加载事件列表 /// void LoadEventList() { LoadPage_SwitchResetMode(); LoadEvent_EditTextFcousChange(); LoadEvent_ChangeTextVisble(); LoadEvent_GetVerificationCode(); LoadEvent_Reset(); LoadEvent_TextChange(); } /// /// 切换修改方式 /// void LoadPage_SwitchResetMode() { //选择手机方式 btnPhoneLogin.MouseUpEventHandler += (sender, e) => { #region 切换选中按钮 btnEmailLogin.TextColor = CSS_Color.PromptingColor1; btnEmailLogin.TextSize = CSS_FontSize.TextFontSize; btnPhoneLogin.TextColor = CSS_Color.MainColor; btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary; etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber); #endregion #region 切换方式方式及图标 registerType = 0; if (btnAccountIcon.Parent != null) { btnAccountIcon.RemoveFromParent(); } accountView.AddChidren(btnGlobalRoaming); #endregion }; //选择邮箱方式 btnEmailLogin.MouseUpEventHandler += (sender, e) => { #region 切换选中按钮 btnPhoneLogin.TextColor = CSS_Color.PromptingColor1; btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize; btnEmailLogin.TextColor = CSS_Color.MainColor; btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary; etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryEmailAddress); #endregion #region 切换修改方式及图标 registerType = 1; if (btnGlobalRoaming.Parent != null) { btnGlobalRoaming.RemoveFromParent(); } accountView.AddChidren(btnAccountIcon); #endregion }; } /// /// 加载文本变化事件 /// void LoadEvent_TextChange() { etAccount.TextChangeEventHandler += (sender, e) => { Regex reg = new Regex(@"^[1]+\d{9}"); var mFalg = reg.Match(etAccount.Text.Trim()); if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11)) { btnGetVerificationCode.IsSelected = false; } else { btnGetVerificationCode.IsSelected = true; } }; } /// /// 加载文本框焦点变化事件 /// void LoadEvent_EditTextFcousChange() { //账号文本框焦点变化事件 etAccount.FoucsChanged += (sender, e) => { if (etAccount.Foucs) { btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); } else { //标记手机号码无效 btnGetVerificationCode.IsSelected = false; btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnAccountViewBottomLine.Height = Application.GetRealHeight(1); //手机方式-验证手机号码是否正确 if (registerType == 0) { Regex reg = new Regex(@"^[1]+\d{9}"); var mFalg = reg.Match(etAccount.Text.Trim()); if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11)) { btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); new Tip() { CloseTime = 3, Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), Direction = AMPopTipDirection.None, }.Show(bodyView); } else { btnGetVerificationCode.IsSelected = true; LoadMothed_EnableResetButton(); } } else if (registerType == 1) { //邮箱方式-验证邮箱是否正确 var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$"); var mFalg = reg.Match(etAccount.Text.Trim()); if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11)) { btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); new Tip() { CloseTime = 3, Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress), Direction = AMPopTipDirection.None, }.Show(bodyView); } else { btnGetVerificationCode.IsSelected = true; LoadMothed_EnableResetButton(); } } } }; //密码文本框焦点变化事件 etPassword.FoucsChanged += (sender, e) => { if (etPassword.Foucs) { btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); } else { btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnPasswordViewBottomLine.Height = Application.GetRealHeight(1); //校验密码是否符合要求 if (etPassword.Text.Trim().Length < 6) { new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, Text = Language.StringByID(StringId.IncorrectRepeatPassword) }.Show(bodyView); } } }; //确认密码文本框焦点变化事件 etRepeatPassword.FoucsChanged += (sender, e) => { if (etRepeatPassword.Foucs) { btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2); } else { btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1); //校验两次输入的密码是否一致 if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim()) { btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2); new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, Text = Language.StringByID(StringId.IncorrectRepeatPassword) }.Show(bodyView); } else { LoadMothed_EnableResetButton(); } } }; //验证码文本框焦点变化事件 etVerificationCode.FoucsChanged += (sender, e) => { if (etVerificationCode.Foucs) { btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor; btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2); } else { btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1); if (etVerificationCode.Text.Length > 4) { LoadMothed_EnableResetButton(); } } }; } /// /// 更改密码可见性 /// void LoadEvent_ChangeTextVisble() { //密码文本可见性变化 btnVisiblePassword.MouseUpEventHandler += (sender, e) => { btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected; etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected; }; //重复密码文本可见性变化 btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => { btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected; etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected; }; } /// /// 获取验证码 /// void LoadEvent_GetVerificationCode() { btnGetVerificationCode.MouseUpEventHandler += (sender, e) => { if (btnGetVerificationCode.IsSelected) { //获取验证码 var result = pm.SendSms(etAccount.Text.Trim()); if (result.StateCode == "Success") { //短信发送间隔60s btnGetVerificationCode.IsSelected = false; etVerificationCode.Foucs = true; int time = 60; new Thread(() => { while (time > 0) { time--; Application.RunOnMainThread(() => { btnGetVerificationCode.Text = time.ToString() + "s"; }); Thread.Sleep(1000); } Application.RunOnMainThread(() => { //回复获取短信按钮事件 btnGetVerificationCode.IsSelected = true; btnGetVerificationCode.TextID = StringId.GetVerificationCode; }); }) { IsBackground = true }.Start(); } else { string tipString = "Server error"; switch (result.StateCode) { case "Exist": tipString = Language.StringByID(StringId.AccountAlreadyExists); break; case "SendFail": tipString = Language.StringByID(StringId.FailedToSendVerificationCode); break; case "Self:Net_Error": tipString = Language.StringByID(StringId.NetworkAnomaly); break; } new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, Text = tipString }.Show(bodyView); } } }; } /// /// 加载方式按钮事件 /// void LoadEvent_Reset() { btnReset.MouseUpEventHandler += (sender, e) => { if (btnReset.IsSelected) { //创建修改密码线程 var loginThread = LoadMothed_ResetThread(); waitPage = new Loading(); new WaitPageMothed().LoadPage_WaitPage(loginThread, bodyView, waitPage); } }; } /// /// 加载重置密码方法 /// Thread LoadMothed_ResetThread() { string account = etAccount.Text.Trim(); string password = etPassword.Text.Trim(); string repeatPassword = etRepeatPassword.Text.Trim(); string verCode = etVerificationCode.Text.Trim(); int countryIndex = 0; try { countryIndex = Convert.ToInt32(btnGlobalRoaming.Text.Trim().Remove('+')); } catch { } return new Thread(() => { var verResult = pm.ValidatorCode(account, verCode, countryIndex); if (verResult.StateCode == "Success") { var resetResult = pm.ResetPassword(account, password, repeatPassword, countryIndex); if (resetResult.StateCode == "Success") { Application.RunOnMainThread(() => { waitPage.Hide(); this.Close(); callbackAction?.Invoke(account); }); } else { string erorrInfo = ""; switch (resetResult.StateCode) { case "PwdNoConfirm"://两次输入的密码不一致 erorrInfo = Language.StringByID(StringId.IncorrectRepeatPassword); break; case "AccountNoExists"://两次输入的密码不一致 erorrInfo = Language.StringByID(StringId.AccountNotExist); break; default: erorrInfo = "Server error"; break; } Application.RunOnMainThread(() => { waitPage.Hide(); new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, Text = erorrInfo, }.Show(bodyView); }); } } else { string erorrInfo = ""; switch (verResult.StateCode) { case "ValidCodeAndPhoneNoEqual"://验证码错误 erorrInfo = Language.StringByID(StringId.VerificationCodeWrong); break; default: erorrInfo = "Server error"; break; } Application.RunOnMainThread(() => { waitPage.Hide(); new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, Text = erorrInfo, }.Show(bodyView); }); } }); } /// /// 使能修改确定按钮 /// void LoadMothed_EnableResetButton() { if (!string.IsNullOrEmpty(etAccount.Text) && !string.IsNullOrEmpty(etPassword.Text) && !string.IsNullOrEmpty(etVerificationCode.Text) && (etPassword.Text.Trim() == etRepeatPassword.Text.Trim())) { btnReset.IsSelected = true; } else { btnReset.IsSelected = false; } } } }