From 37c33341f75841dc39c535eb62a3603f596516a1 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 27 二月 2020 17:11:53 +0800 Subject: [PATCH] 20200227 --- HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs | 329 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 189 insertions(+), 140 deletions(-) diff --git a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs index 98fbf25..237a1e9 100644 --- a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs +++ b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs @@ -18,7 +18,8 @@ LoadEvent_EditTextFcousChange(); LoadEvent_ChangeTextVisble(); LoadEvent_GetVerificationCode(); - LoadEvent_Register(); + LoadEvent_Reset(); + LoadEvent_TextChange(); } /// <summary> @@ -34,8 +35,7 @@ btnEmailLogin.TextSize = CSS_FontSize.TextFontSize; btnPhoneLogin.TextColor = CSS_Color.MainColor; btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary; - btnChooseBottomLine.X = btnPhoneLogin.X + Application.GetRealWidth(27); - etAccount.PlaceholderText = Language.StringByID(R.InternationalizationString.PlsEntryCorrectMobilNeumber); + etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber); #endregion #region 鍒囨崲鏂瑰紡鏂瑰紡鍙婂浘鏍� @@ -56,8 +56,7 @@ btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize; btnEmailLogin.TextColor = CSS_Color.MainColor; btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary; - btnChooseBottomLine.X = btnEmailLogin.X + Application.GetRealWidth(27); - etAccount.PlaceholderText = Language.StringByID(R.InternationalizationString.PlsEntryEmailAddress); + etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryEmailAddress); #endregion #region 鍒囨崲淇敼鏂瑰紡鍙婂浘鏍� @@ -69,6 +68,26 @@ accountView.AddChidren(btnAccountIcon); #endregion + }; + } + + /// <summary> + /// 鍔犺浇鏂囨湰鍙樺寲浜嬩欢 + /// </summary> + 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; + } }; } @@ -94,7 +113,7 @@ //鎵嬫満鏂瑰紡-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘ if (registerType == 0) { - Regex reg = new Regex("^\\d+$"); + 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)) { @@ -103,19 +122,14 @@ new Tip() { CloseTime = 3, - Text = Language.StringByID(R.InternationalizationString.PlsEntryCorrectMobilNeumber), + Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), Direction = AMPopTipDirection.None, }.Show(bodyView); } else { - //鏍囪鎵嬫満鍙风爜鏈夋晥 btnGetVerificationCode.IsSelected = true; - //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡 - if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) - { - btnRegister.IsSelected = true; - } + LoadMothed_EnableResetButton(); } } else if (registerType == 1) @@ -130,26 +144,22 @@ new Tip() { CloseTime = 3, - Text = Language.StringByID(R.InternationalizationString.PlsEntryCorrectEmailAddress), + Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress), Direction = AMPopTipDirection.None, }.Show(bodyView); } else { - //鏍囪鎵嬫満鍙风爜鏈夋晥 btnGetVerificationCode.IsSelected = true; - //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡 - if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) - { - btnRegister.IsSelected = true; - } + LoadMothed_EnableResetButton(); } } } }; //瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� - etPassword.FoucsChanged += (sender, e) => { + etPassword.FoucsChanged += (sender, e) => + { if (etPassword.Foucs) { btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; @@ -166,14 +176,15 @@ { CloseTime = 3, Direction = AMPopTipDirection.None, - Text = Language.StringByID(R.InternationalizationString.IncorrectRepeatPassword) + Text = Language.StringByID(StringId.IncorrectRepeatPassword) }.Show(bodyView); } } }; //纭瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� - etRepeatPassword.FoucsChanged += (sender, e) => { + etRepeatPassword.FoucsChanged += (sender, e) => + { if (etRepeatPassword.Foucs) { btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; @@ -192,23 +203,19 @@ { CloseTime = 3, Direction = AMPopTipDirection.None, - Text = Language.StringByID(R.InternationalizationString.IncorrectRepeatPassword) + Text = Language.StringByID(StringId.IncorrectRepeatPassword) }.Show(bodyView); } else { - ValidPassword = true; - //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡 - if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) - { - btnRegister.IsSelected = true; - } + LoadMothed_EnableResetButton(); } } }; //楠岃瘉鐮佹枃鏈鐒︾偣鍙樺寲浜嬩欢 - etVerificationCode.FoucsChanged += (sender, e) => { + etVerificationCode.FoucsChanged += (sender, e) => + { if (etVerificationCode.Foucs) { btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor; @@ -220,15 +227,12 @@ btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1); if (etVerificationCode.Text.Length > 4) { - //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡 - if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) - { - btnRegister.IsSelected = true; - } + LoadMothed_EnableResetButton(); } } }; } + /// <summary> /// 鏇存敼瀵嗙爜鍙鎬� @@ -236,12 +240,14 @@ void LoadEvent_ChangeTextVisble() { //瀵嗙爜鏂囨湰鍙鎬у彉鍖� - btnVisiblePassword.MouseUpEventHandler += (sender, e) => { + btnVisiblePassword.MouseUpEventHandler += (sender, e) => + { btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected; etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected; }; //閲嶅瀵嗙爜鏂囨湰鍙鎬у彉鍖� - btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => { + btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => + { btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected; etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected; }; @@ -252,46 +258,59 @@ /// </summary> void LoadEvent_GetVerificationCode() { - btnGetVerificationCode.MouseUpEventHandler += (sender, e) => { + btnGetVerificationCode.MouseUpEventHandler += (sender, e) => + { if (btnGetVerificationCode.IsSelected) { - //鐭俊鍙戦�侀棿闅�60s - btnGetVerificationCode.IsSelected = false; - int time = 60; - new Thread(() => + //鑾峰彇楠岃瘉鐮� + var result = pm.SendSms(etAccount.Text.Trim()); + if (result.StateCode == "Success") { - while (time == 0) + //鐭俊鍙戦�侀棿闅�60s + btnGetVerificationCode.IsSelected = false; + etVerificationCode.Foucs = true; + int time = 60; + new Thread(() => { - time--; + while (time > 0) + { + time--; + Application.RunOnMainThread(() => + { + btnGetVerificationCode.Text = time.ToString() + "s"; + }); + Thread.Sleep(1000); + } Application.RunOnMainThread(() => { - btnGetVerificationCode.Text = time.ToString() + "s"; + //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢 + btnGetVerificationCode.IsSelected = true; + btnGetVerificationCode.TextID = StringId.GetVerificationCode; }); - Thread.Sleep(1000); - } - Application.RunOnMainThread(() => - { - //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢 - btnGetVerificationCode.IsSelected = true; - }); - }) - { IsBackground = true }.Start(); - //妫�鏌ユ墜鏈烘槸鍚﹀凡缁忚鏂瑰紡 - var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim()); - //鎵嬫満鏈鏂瑰紡 - if (checkPhoneResult.StateCode != HttpRequesResult.SUCCESS.ToString()) - { - //鑾峰彇楠岃瘉鐮� - pm.GetPhoneVerificationCode(etAccount.Text.Trim(), MainPage.Company); + }) + { 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 = Language.StringByID(R.InternationalizationString.AccountAlreadyExists) + Text = tipString }.Show(bodyView); } } @@ -301,88 +320,118 @@ /// <summary> /// 鍔犺浇鏂瑰紡鎸夐挳浜嬩欢 /// </summary> - void LoadEvent_Register() + void LoadEvent_Reset() { - btnRegister.MouseUpEventHandler += (sender, e) => + btnReset.MouseUpEventHandler += (sender, e) => { - //鎵嬫満鏂瑰紡 - if (registerType == 0) + if (btnReset.IsSelected) { - //鏍¢獙楠岃瘉鐮� - var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim()); - //楠岃瘉鐮佹牎楠屾垚鍔� - if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString()) - { - //楠岃瘉璐﹀彿 - var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage); - if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString()) - { - //楠岃瘉鎴愬姛 - //鎵ц鍥炶皟浜嬩欢 - callbackAction?.Invoke(etAccount.Text.Trim()); - } - else - { - //楠岃瘉澶辫触 - new Tip() - { - CloseTime = 3, - Text = registerPhoneResult.ErrorInfo, - Direction = AMPopTipDirection.None, - }.Show(bodyView); - } - } - else - { - //楠岃瘉鐮佹牎楠屽け璐� - new Tip() - { - CloseTime = 3, - Direction = AMPopTipDirection.None, - Text = Language.StringByID(R.InternationalizationString.VerificationCodeWrong) - }.Show(bodyView); - } - } - else if (registerType == 1) - { - //閭鏂瑰紡 - //鏍¢獙楠岃瘉鐮� - var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim()); - //楠岃瘉鐮佹牎楠屾垚鍔� - if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString()) - { - //鏂瑰紡璐﹀彿 - var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage); - if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString()) - { - //鏂瑰紡鎴愬姛 - //鎵ц鍥炶皟浜嬩欢 - callbackAction?.Invoke(etAccount.Text.Trim()); - } - else - { - //鏂瑰紡澶辫触 - new Tip() - { - CloseTime = 3, - Text = registerPhoneResult.ErrorInfo, - Direction = AMPopTipDirection.None, - }.Show(bodyView); - } - } - else - { - //楠岃瘉鐮佹牎楠屽け璐� - new Tip() - { - CloseTime = 3, - Direction = AMPopTipDirection.None, - Text = Language.StringByID(R.InternationalizationString.VerificationCodeWrong) - }.Show(bodyView); - } + //鍒涘缓淇敼瀵嗙爜绾跨▼ + var loginThread = LoadMothed_ResetThread(); + waitPage = new Loading(); + new WaitPageMothed().LoadPage_WaitPage(loginThread, bodyView, waitPage); } }; } + /// <summary> + /// 鍔犺浇閲嶇疆瀵嗙爜鏂规硶 + /// </summary> + 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); + }); + } + }); + } + + /// <summary> + /// 浣胯兘淇敼纭畾鎸夐挳 + /// </summary> + 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; + } + } + } } -- Gitblit v1.8.0