New file |
| | |
| | | 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 |
| | | { |
| | | /// <summary> |
| | | /// 加载事件列表 |
| | | /// </summary> |
| | | void LoadEventList() |
| | | { |
| | | LoadPage_SwitchResetMode(); |
| | | LoadEvent_EditTextFcousChange(); |
| | | LoadEvent_ChangeTextVisble(); |
| | | LoadEvent_GetVerificationCode(); |
| | | LoadEvent_Reset(); |
| | | LoadEvent_TextChange(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 切换修改方式 |
| | | /// </summary> |
| | | void LoadPage_SwitchResetMode() |
| | | { |
| | | //选择手机方式 |
| | | btnPhoneLogin.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | if (registerType == 0) |
| | | return; |
| | | etAccount.IsNumberKeyboardType = true; |
| | | etAccount.Text = registerPhone; |
| | | etPassword.Text = ""; |
| | | etRepeatPassword.Text = ""; |
| | | #region 切换选中按钮 |
| | | btnGetVerificationCode_Phone.Visible = true; |
| | | btnGetVerificationCode_Mail.Visible = false; |
| | | 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.PlsEntryPhoneNumber); |
| | | #endregion |
| | | |
| | | #region 切换方式方式及图标 |
| | | registerType = 0; |
| | | if (btnAccountIcon.Parent != null) |
| | | { |
| | | btnAccountIcon.RemoveFromParent(); |
| | | } |
| | | accountView.AddChidren(btnGlobalRoaming); |
| | | #endregion |
| | | }; |
| | | |
| | | //选择邮箱方式 |
| | | btnEmailLogin.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | if (registerType == 1) |
| | | return; |
| | | etAccount.IsNumberKeyboardType = false; |
| | | etAccount.Text = registerEmail; |
| | | etPassword.Text = ""; |
| | | etRepeatPassword.Text = ""; |
| | | #region 切换选中按钮 |
| | | btnGetVerificationCode_Phone.Visible = false; |
| | | btnGetVerificationCode_Mail.Visible = true; |
| | | 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 |
| | | |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载文本变化事件 |
| | | /// </summary> |
| | | void LoadEvent_TextChange() |
| | | { |
| | | etAccount.TextChangeEventHandler += (sender, e) => |
| | | { |
| | | //Regex reg = new Regex(@"^[1]+\d{10}"); |
| | | //var mFalg = reg.Match(etAccount.Text.Trim()); |
| | | if (registerType == 0)//手机获取验证码按钮生效条件 |
| | | { |
| | | if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode)) |
| | | { |
| | | btnGetVerificationCode_Phone.IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | if (btnGetVerificationCode_Phone.Text == Language.StringByID(StringId.GetVerificationCode)) |
| | | btnGetVerificationCode_Phone.IsSelected = true; |
| | | } |
| | | } |
| | | else//邮箱获取验证码按钮生效条件 |
| | | { |
| | | if (!Utlis.CheckEmail(etAccount.Text.Trim())) |
| | | { |
| | | btnGetVerificationCode_Mail.IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode)) |
| | | btnGetVerificationCode_Mail.IsSelected = true; |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载文本框焦点变化事件 |
| | | /// </summary> |
| | | void LoadEvent_EditTextFcousChange() |
| | | { |
| | | //账号文本框焦点变化事件 |
| | | etAccount.FoucsChanged += (sender, e) => |
| | | { |
| | | if (etAccount.Foucs) |
| | | { |
| | | btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor; |
| | | btnAccountViewBottomLine.Height = Application.GetRealHeight(2); |
| | | } |
| | | else |
| | | { |
| | | //标记手机号码无效 |
| | | btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; |
| | | btnAccountViewBottomLine.Height = Application.GetRealHeight(1); |
| | | //手机方式-验证手机号码是否正确 |
| | | if (registerType == 0) |
| | | { |
| | | btnGetVerificationCode_Phone.IsSelected = false; |
| | | if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode)) |
| | | { |
| | | btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; |
| | | btnAccountViewBottomLine.Height = Application.GetRealHeight(2); |
| | | new Tip() |
| | | { |
| | | CloseTime = 1, |
| | | Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), |
| | | Direction = AMPopTipDirection.None, |
| | | }.Show(bodyView); |
| | | } |
| | | else |
| | | { |
| | | if (btnGetVerificationCode_Phone.Text == Language.StringByID( StringId.GetVerificationCode)) |
| | | { |
| | | btnGetVerificationCode_Phone.IsSelected = true; |
| | | } |
| | | LoadMothed_EnableResetButton(); |
| | | } |
| | | } |
| | | else if (registerType == 1) |
| | | { |
| | | btnGetVerificationCode_Mail.IsSelected = false; |
| | | //邮箱方式-验证邮箱是否正确 |
| | | if (!Utlis.CheckEmail(etAccount.Text.Trim())) |
| | | { |
| | | btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; |
| | | btnAccountViewBottomLine.Height = Application.GetRealHeight(2); |
| | | new Tip() |
| | | { |
| | | CloseTime = 1, |
| | | Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress), |
| | | Direction = AMPopTipDirection.None, |
| | | }.Show(bodyView); |
| | | } |
| | | else |
| | | { |
| | | if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode)) |
| | | { |
| | | btnGetVerificationCode_Mail.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 || etPassword.Text.Trim().Length > 13) |
| | | { |
| | | new Tip() |
| | | { |
| | | CloseTime = 1, |
| | | Direction = AMPopTipDirection.None, |
| | | Text = Language.StringByID(StringId.PasswordIsUnqualified) |
| | | }.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 = 1, |
| | | 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(); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 更改密码可见性 |
| | | /// </summary> |
| | | 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; |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 检测当前配置域名是否一致,不一致则替换 |
| | | /// </summary> |
| | | /// <param name="result"></param> |
| | | void CheckAndSetUserRequestHost(ResponsePackNew result) { |
| | | try |
| | | { |
| | | var mGlobalRegionListObj = Newtonsoft.Json.JsonConvert.DeserializeObject<GlobalRegionListRes>(result.Data.ToString()); |
| | | if (UserInfo.Current.RequestHttpsHost != mGlobalRegionListObj.regionUrl) |
| | | { |
| | | UserInfo.Current.RequestHttpsHost = mGlobalRegionListObj.regionUrl; |
| | | UserInfo.Current.GlobalRegion = mGlobalRegionListObj; |
| | | UserInfo.Current.SaveUserInfo(); |
| | | } |
| | | } |
| | | catch { } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取验证码 |
| | | /// </summary> |
| | | void LoadEvent_GetVerificationCode() |
| | | { |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | { |
| | | var account = etAccount.Text.Trim(); |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | //加载Loading效果 |
| | | var waitPage = new Loading(); |
| | | bodyView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | |
| | | int time = 60; |
| | | new Thread(() => |
| | | { |
| | | try |
| | | { |
| | | //1.先检查账号是否注册过 |
| | | var result = pm.GetRegionByAccount(account); |
| | | if (result.Code != StateCode.SUCCESS) |
| | | { |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result.Code); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | |
| | | //2.1检测当前配置域名是否一致,不一致则替换 |
| | | CheckAndSetUserRequestHost(result); |
| | | //2.2已经注册过,发送验证码找回密码 |
| | | ResponsePackNew resultObj; |
| | | //2.3请求获取验证码 |
| | | if (registerType == 1)//邮箱 |
| | | { |
| | | resultObj = pm.VerificationCodeSend(VerifyType.FIND_PASSWORD, account); |
| | | } |
| | | else |
| | | { |
| | | resultObj = pm.VerificationCodeSend(VerifyType.FIND_PASSWORD, account, true, phoneZoneCode); |
| | | } |
| | | |
| | | if (resultObj.Code != StateCode.SUCCESS) |
| | | { |
| | | // 提示错误 |
| | | IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code); |
| | | } |
| | | else |
| | | { |
| | | //3.发送验证码成功,开始计时 |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //短信发送间隔60s |
| | | (sender as Button).IsSelected = false; |
| | | etVerificationCode.Foucs = true; |
| | | }); |
| | | //2.1获取验证码倒计时 |
| | | new Thread(() => |
| | | { |
| | | while (time > 0) |
| | | { |
| | | time--; |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | (sender as Button).Text = time.ToString() + "s"; |
| | | }); |
| | | Thread.Sleep(1000); |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //回复获取短信按钮事件 |
| | | (sender as Button).IsSelected = true; |
| | | (sender as Button).TextID = StringId.GetVerificationCode; |
| | | }); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | } |
| | | } |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | }; |
| | | |
| | | btnGetVerificationCode_Mail.MouseUpEventHandler = eventHandler; |
| | | btnGetVerificationCode_Phone.MouseUpEventHandler = eventHandler; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载方式按钮事件 |
| | | /// </summary> |
| | | void LoadEvent_Reset() |
| | | { |
| | | btnReset.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | if (btnReset.IsSelected) |
| | | { |
| | | //创建修改密码线程 |
| | | var loginThread = LoadMothed_ResetThread(); |
| | | waitPage = new Loading(); |
| | | new PublicAssmebly().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 isPhone = registerType == 0; |
| | | var resultObj = pm.ForgetPassword(account, password, verCode, isPhone); |
| | | if (resultObj.Code == StateCode.SUCCESS) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.Hide(); |
| | | } |
| | | ShowAutoLoginDialog(account, password, isPhone); |
| | | }); |
| | | |
| | | } |
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.Hide(); |
| | | } |
| | | |
| | | // 验证码错误 警告提示 |
| | | if (resultObj.Code == StateCode.VERIFICATION_CODE_WRONG) |
| | | { |
| | | btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; |
| | | btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2); |
| | | } |
| | | }); |
| | | // 提示错误 |
| | | IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /// <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; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示自动自动登录事件 |
| | | /// </summary> |
| | | void ShowAutoLoginDialog(string account, string password, bool isPhone) |
| | | { |
| | | Dialog dialog = new Dialog(); |
| | | |
| | | FrameLayout dialogView = new FrameLayout(); |
| | | dialogView.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.Close(); |
| | | }; |
| | | dialog.AddChidren(dialogView); |
| | | |
| | | FrameLayout contentView = new FrameLayout() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealWidth(200), |
| | | Width = Application.GetRealWidth(288), |
| | | Height = Application.GetRealWidth(270), |
| | | Radius = (uint)Application.GetRealWidth(6), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | dialogView.AddChidren(contentView); |
| | | |
| | | contentView.Y = (dialogView.Height - contentView.Height) / 2; |
| | | |
| | | Button btnTitleIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(108), |
| | | Y = contentView.Y - Application.GetRealWidth(71), |
| | | Width = Application.GetRealWidth(160), |
| | | Height = Application.GetRealWidth(160), |
| | | UnSelectedImagePath = "Public/Dialog/DialogTipTitleIcon_1.png" |
| | | }; |
| | | dialogView.AddChidren(btnTitleIcon); |
| | | btnTitleIcon.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.Close(); |
| | | }; |
| | | |
| | | Button btnMsg = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealWidth(88), |
| | | Width = Application.GetRealWidth(220), |
| | | Height = Application.GetRealWidth(44), |
| | | TextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextID = StringId.ModifySuccess |
| | | }; |
| | | contentView.AddChidren(btnMsg); |
| | | |
| | | Button btnMsg2 = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = btnMsg.Bottom + Application.GetRealWidth(8), |
| | | Width = Application.GetRealWidth(220), |
| | | Height = Application.GetRealWidth(60), |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextID = StringId.YourPasswordHasBeenChanged, |
| | | TextAlignment = TextAlignment.TopCenter, |
| | | IsMoreLines = true |
| | | }; |
| | | contentView.AddChidren(btnMsg2); |
| | | |
| | | |
| | | Button btnSkipBindPage = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealWidth(194), |
| | | Width = Application.GetRealWidth(220), |
| | | Height = Application.GetRealWidth(44), |
| | | TextAlignment = TextAlignment.Center, |
| | | Radius = (uint)Application.GetRealWidth(22), |
| | | BackgroundColor = CSS_Color.MainColor, |
| | | TextID = StringId.Login, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | contentView.AddChidren(btnSkipBindPage); |
| | | |
| | | btnSkipBindPage.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.Close(); |
| | | this.Close(); |
| | | |
| | | AutoLoginAction?.Invoke(account, password, isPhone); |
| | | |
| | | }; |
| | | |
| | | dialog.Show(); |
| | | } |
| | | |
| | | } |
| | | } |