using Kill.Managers; using UnityEngine; using UnityEngine.UI; using Kill.Utils; using Kill.UI.Components; using Kill.Network; namespace Kill.UI.Pages { /// /// 登录页面 /// public class LoginPanel : LoginSubPageBase { [Header("输入组件")] public InputField emailInput; public Toggle privacyToggle; [Header("显示组件")] public Text errorText; [Header("按钮")] public Button loginBtn; public Button toRegisterBtn; public Button thirdPartyLoginBtn; public Button privacyLinkBtn; protected override void OnInitialize() { // 绑定按钮事件 if (loginBtn != null) loginBtn.onClick.AddListener(OnLoginClick); if (toRegisterBtn != null) toRegisterBtn.onClick.AddListener(() => ShowPage(LoginPageCtrl.SubPageType.Register)); if (thirdPartyLoginBtn != null) thirdPartyLoginBtn.onClick.AddListener(() =>LoginPageCtrl.Instance.OnGoogleLogin()); if (privacyLinkBtn != null) privacyLinkBtn.onClick.AddListener(() => LoginPageCtrl.Instance.ShowPrivacyAgreementPlane()); } protected override void OnShow() { // 页面显示时初始化隐私协议链接的显示状态 privacyToggle.isOn = true; errorText.text = ""; emailInput.text = ""; } private async void OnLoginClick() { 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; OnLoginClick(); }); return; } // 保存邮箱到登录控制器 LoginPageCtrl.Instance.SetCurrentEmail(email); // 验证邮箱是否已注册 await LoginPageCtrl.Instance.CheckEmailRegistered(email, onSuccess: (data) => { if (data) { ShowPage(LoginPageCtrl.SubPageType.LoginPassword); } else { errorText.text = LanguageManager.Instance.GetLanguage("100035"); } }, onError: (code, message) => { errorText.text = message; } ); } } }