using System.Threading.Tasks; using Kill.Managers; using Kill.Utils; using UnityEngine; using UnityEngine.UI; namespace Kill.UI.Pages { /// /// 注册页面 /// 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 { await LoginPageCtrl.Instance.SendCode(email, () => { // 设置验证码页面为注册场景 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; } ); } } }