using System; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using TMPro; using UnityEngine; using UnityEngine.UI; public class LostPwdManager : MonoBehaviour { public const string PasswordRegex = @"^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,24}$"; public TMP_InputField PhoneInput; public TMP_InputField NameInput; public TMP_InputField PwdInput; public TMP_InputField PwdSureInput; public Button SureBtn; public Button CancelBtn; private string NowAccount = ""; private string Api = "/api/SSO/ForgetPassword"; private LostPasswordData data = new LostPasswordData(); void Start() { SureBtn.onClick.AddListener(SureBtn_Click); CancelBtn.onClick.AddListener(Cancel_Click); } private void Cancel_Click() { PanelsManager.Instance.GotoLoginWindow(); } private void SureBtn_Click() { if (string.IsNullOrEmpty(PhoneInput.text.Trim())) { TipPanelManager.GetInstance.Show("手机号不能为空!"); return; } if (string.IsNullOrEmpty(NameInput.text.Trim())) { TipPanelManager.GetInstance.Show("姓名不能为空!"); return; } if (!string.IsNullOrEmpty(PwdInput.text) && !Regex.IsMatch(PwdInput.text, PasswordRegex)) { var errormsg = PanelsManager.Instance.LoginErrorHintsDic[LoginErrorHints.pwdInvalid]; TipPanelManager.GetInstance.Show(errormsg); return; } if (PwdInput.text != PwdSureInput.text) { var errormsg = PanelsManager.Instance.LoginErrorHintsDic[LoginErrorHints.pwdNeedSame]; TipPanelManager.GetInstance.Show(errormsg); return; } data.phoneNumber = PhoneInput.text.Trim(); data.realName = NameInput.text.Trim(); data.newPassword = PwdInput.text; HTTPRequestManager.Instance.PatchJson( Api, data, LostPwdSuccessed, LostPwdError); } private void LostPwdError(int code, string message) { TipPanelManager.GetInstance.Show("重置密码失败!是否继续?", cancel: () => { PanelsManager.Instance.GotoLoginWindow(); }); } private void LostPwdSuccessed() { TipPanelManager.GetInstance.Show($"密码修改成功!,请重新登录", () => { PanelsManager.Instance.GotoLoginWindow(); }); } internal void OnShow(string account) { NowAccount = account; PhoneInput.text = ""; PhoneInput.ActivateInputField(); NameInput.text = ""; PwdInput.text = ""; PwdSureInput.text = ""; } }