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 RegisterPage { /// /// 加载事件列表 /// void LoadEventList() { LoadPage_SwitchLoginType(); LoadEvent_EditTextFcousChange(); LoadEvent_ChangeTextVisble(); LoadEvent_GetVerificationCode(); LoadEvent_Register(); } /// /// 切换注册类型 /// void LoadPage_SwitchLoginType() { //选择手机注册 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(R.InternationalizationString.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(R.InternationalizationString.PlsEntryEmailAddress); #endregion #region 切换注册类型及图标 registerType = 1; if (btnGlobalRoaming.Parent != null) { btnGlobalRoaming.RemoveFromParent(); } accountView.AddChidren(btnAccountIcon); #endregion }; } /// /// 加载文本框焦点变化事件 /// 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("^\\d+$"); 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(R.InternationalizationString.PlsEntryCorrectMobilNeumber), Direction = AMPopTipDirection.None, }.Show(bodyView); } else { //标记手机号码有效 btnGetVerificationCode.IsSelected = true; //账号有效、密码有效、验证码输入了,才能点击注册 if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) { btnRegister.IsSelected = true; } } } 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(R.InternationalizationString.PlsEntryCorrectEmailAddress), Direction = AMPopTipDirection.None, }.Show(bodyView); } else { //标记手机号码有效 btnGetVerificationCode.IsSelected = true; //账号有效、密码有效、验证码输入了,才能点击注册 if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) { btnRegister.IsSelected = true; } } } } }; //密码文本框焦点变化事件 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(R.InternationalizationString.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(R.InternationalizationString.IncorrectRepeatPassword) }.Show(bodyView); } else { ValidPassword = true; //账号有效、密码有效、验证码输入了,才能点击注册 if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) { btnRegister.IsSelected = true; } } } }; //验证码文本框焦点变化事件 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) { //账号有效、密码有效、验证码输入了,才能点击注册 if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) { btnRegister.IsSelected = true; } } } }; } /// /// 更改密码可见性 /// 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) { //短信发送间隔60s btnGetVerificationCode.IsSelected = false; int time = 60; new Thread(() => { while (time == 0) { time--; Application.RunOnMainThread(() => { btnGetVerificationCode.Text = time.ToString() + "s"; }); 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); } else { //提示手机号码已经注册 new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, Text = Language.StringByID(R.InternationalizationString.AccountAlreadyExists) }.Show(bodyView); } } }; } /// /// 加载注册按钮事件 /// void LoadEvent_Register() { btnRegister.MouseUpEventHandler += (sender, e) => { //手机注册 if (registerType == 0) { //校验验证码 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); } } }; } } }