“虞渠成” dda8163ac4 debug
2026-06-26 14:15:49 +08:00

92 lines
3.0 KiB
C#

using System.Threading.Tasks;
using Kill.Managers;
using Kill.Utils;
using UnityEngine;
using UnityEngine.UI;
namespace Kill.UI.Pages
{
/// <summary>
/// 注册页面
/// </summary>
public class RegisterPanel : LoginSubPageBase
{
[Header("输入组件")]
public InputField emailInput;
public Toggle privacyToggle;
[Header("显示组件")]
public Text errorText;
[Header("按钮")]
public Button nextBtn;
public Button toLoginBtn;
public Button privacyLinkBtn;
protected override void OnInitialize()
{
// 绑定按钮事件
if (nextBtn != null)
nextBtn.onClick.AddListener(OnGetCodeAsync);
if (toLoginBtn != null)
toLoginBtn.onClick.AddListener(() => ShowPage(LoginPageCtrl.SubPageType.Login));
if (privacyLinkBtn != null)
privacyLinkBtn.onClick.AddListener(() => LoginPageCtrl.Instance.ShowPrivacyAgreementPlane());
}
protected override void OnShow()
{
// 页面显示时初始化隐私协议链接的显示状态
emailInput.text="";
privacyToggle.isOn = true;
errorText.text = "";
}
private async void OnGetCodeAsync()
{
string email = emailInput != null ? emailInput.text : "";
if (string.IsNullOrEmpty(email) || !ValidationUtils.IsValidEmailStrict(email))
{
errorText.text = LanguageManager.Instance.GetLanguage("100006");
return;
}
if (!privacyToggle.isOn)
{
LoginPageCtrl.Instance.ShowPrivacyAgreementTip(() =>
{
privacyToggle.isOn = true;
OnGetCodeAsync();
});
return;
}
// 保存邮箱到登录控制器
LoginPageCtrl.Instance.SetCurrentEmail(email);
// 验证邮箱是否已注册
await LoginPageCtrl.Instance.CheckEmailRegistered(email,
onSuccess: async (data) =>
{
if (data)
{
errorText.text = LanguageManager.Instance.GetLanguage("100007");
}
else
{
// 设置验证码页面为注册场景
var verifyPanel = GetSubPage(LoginPageCtrl.SubPageType.VerificationCode) as VerificationCodePanel;
if (verifyPanel != null)
{
verifyPanel.SetSceneType(VerificationCodePanel.CodeSceneType.Register);
}
ShowPage(LoginPageCtrl.SubPageType.VerificationCode);
}
},
onError: (code, message) =>
{
errorText.text = message;
}
);
}
}
}