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)
|
{
|
int time = 60;
|
new Thread(() =>
|
{
|
//1.先检查账号是否注册过
|
var result = pm.GetRegionByAccount(account);
|
if (result.Code != StateCode.SUCCESS)
|
{
|
IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
|
return;
|
}
|
else
|
{
|
//2.1检测当前配置域名是否一致,不一致则替换
|
CheckAndSetUserRequestHost(result);
|
|
//2.2已经注册过,发送验证码找回密码
|
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();
|
|
ResponsePackNew resultObj;
|
//2.1请求获取验证码
|
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);
|
}
|
}
|
})
|
{ 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(() =>
|
{
|
LoadEvent_AutoLogin();
|
callbackAction?.Invoke(account);
|
});
|
|
}
|
else
|
{
|
// 2020-11-13 待修改 验证码错误 警告提示
|
//btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
|
//btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
|
Application.RunOnMainThread(() =>
|
{
|
waitPage.Hide();
|
});
|
// 提示错误
|
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 LoadEvent_AutoLogin()
|
{
|
Dialog dialog = new Dialog();
|
|
FrameLayout frame = new FrameLayout()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(198),
|
Width = Application.GetRealWidth(288),
|
Height = Application.GetRealHeight(206),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
BorderWidth = 0,
|
BorderColor = 0x00000000,
|
};
|
dialog.AddChidren(frame);
|
|
Button btnAccountText = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(40),
|
Height = Application.GetRealHeight(17 + 14 + 14),
|
IsMoreLines = true,
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.TextFontSize,
|
//Text = "s是生生世世",
|
};
|
frame.AddChidren(btnAccountText);
|
|
Button btnTipRegisterSuccess = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(123),
|
Height = Application.GetRealHeight(30),
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextID = StringId.PasswordChangeSuccessfully,
|
};
|
frame.AddChidren(btnTipRegisterSuccess);
|
|
Button btnAutoLoginTip = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = btnTipRegisterSuccess.Bottom,
|
Height = Application.GetRealHeight(17 + 8),
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
TextID = StringId.AutomaticallyLogin,
|
};
|
//frame.AddChidren(btnAutoLoginTip);
|
|
Button btnHeadImage = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(150),
|
Width = Application.GetRealWidth(84),
|
Height = Application.GetRealWidth(84),
|
Radius = (uint)Application.GetRealWidth(42),
|
BorderColor = 0x00000000,
|
BorderWidth = 0,
|
UnSelectedImagePath = "LoginIcon/2.png",
|
};
|
dialog.AddChidren(btnHeadImage);
|
|
dialog.Show();
|
|
new Thread(() =>
|
{
|
Thread.Sleep(1500);
|
Application.RunOnMainThread(() =>
|
{
|
dialog.Close();
|
this.Close();
|
});
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
|
}
|
}
|