1. 新增账号注销全流程功能,包括注销页面、验证码校验和注销接口调用 2. 优化邮箱注册校验逻辑,区分已设置密码和未设置密码的账号 3. 重构个人页面登出逻辑,统一登出处理流程 4. 更新多语言文案,补充注销相关提示文本 5. 调整个人信息页面布局,添加注销账号入口
150 lines
6.0 KiB
C#
150 lines
6.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using Kill.Managers;
|
|
using Kill.Network;
|
|
using Kill.UI.Components;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
namespace Kill.UI.Pages
|
|
{
|
|
public class SelfPage : MonoBehaviour
|
|
{
|
|
public Button backButton;
|
|
public Button showQrCodeButton;
|
|
public Button showInfoButton;
|
|
public SelfInfoPage selfInfoPagePrefab;
|
|
public Button safetyTestButton;
|
|
public ChangeLanguagePage changeLanguagePagePrefab;
|
|
public Button languageSettingButton;
|
|
public Image avatarImage;
|
|
public Text nicknameText;
|
|
public Text emailText;
|
|
UserInfo userInfo;
|
|
public ShowImageText safeHighlightPagePrefab;
|
|
public ShowImageText statusPagePrefab;
|
|
public GameObject safetySettingPage;
|
|
public Button safetySettingButton;
|
|
async Task Start()
|
|
{
|
|
UIManager.Instance.RegisterBackAction(OnBack);
|
|
backButton.onClick.RemoveAllListeners();
|
|
backButton.onClick.AddListener(OnBack);
|
|
showQrCodeButton.onClick.RemoveAllListeners();
|
|
showQrCodeButton.onClick.AddListener(OnShowQrCode);
|
|
showInfoButton.onClick.RemoveAllListeners();
|
|
showInfoButton.onClick.AddListener(OnShowInfo);
|
|
safetyTestButton.onClick.RemoveAllListeners();
|
|
safetyTestButton.onClick.AddListener(OnSafetyTest);
|
|
languageSettingButton.onClick.RemoveAllListeners();
|
|
languageSettingButton.onClick.AddListener(OnChangeLanguage);
|
|
safetySettingButton.onClick.RemoveAllListeners();
|
|
safetySettingButton.onClick.AddListener(EnterSafetySettingPage);
|
|
signoutButton.onClick.RemoveAllListeners();
|
|
signoutButton.onClick.AddListener(ClickSignOut);
|
|
await RefreshAsync();
|
|
|
|
}
|
|
public void OnBack()
|
|
{
|
|
UIManager.Instance.OpenMainPage(UIManager.PageName.homePage);
|
|
}
|
|
public GameObject qrCodePanelPrefab;
|
|
public void OnShowQrCode()
|
|
{
|
|
GameObject qrCodePanel = Instantiate(qrCodePanelPrefab, transform);
|
|
qrCodePanel.GetComponent<SelfQrcodePage>().Init(userInfo);
|
|
}
|
|
public void OnShowInfo()
|
|
{
|
|
SelfInfoPage infoPage = Instantiate(selfInfoPagePrefab, transform);
|
|
infoPage.Init(userInfo);
|
|
}
|
|
public void OnSafetyTest()
|
|
{
|
|
UIManager.Instance.OpenPage(UIManager.PageName.safetylearningPage);
|
|
}
|
|
public void OnChangeLanguage()
|
|
{
|
|
ChangeLanguagePage languagePage = Instantiate(changeLanguagePagePrefab, transform);
|
|
}
|
|
public async Task RefreshAsync()
|
|
{
|
|
userInfo = DataManager.Instance.userInfo;
|
|
nicknameText.text = userInfo.username;
|
|
emailText.text = userInfo.email;
|
|
if (!string.IsNullOrEmpty(userInfo.avatar))
|
|
{
|
|
avatarImage.gameObject.SetActive(true);
|
|
await NetworkCtrl.Instance.LoadImageToUIImageAsync(userInfo.avatar, avatarImage);
|
|
avatarImage.transform.parent.GetComponent<Mask>().showMaskGraphic=false;
|
|
}
|
|
}
|
|
public void EnterSafePage()
|
|
{
|
|
ShowImageText safePage=Instantiate(safeHighlightPagePrefab,transform);
|
|
safePage.gameObject.SetActive(true);
|
|
safePage.Init(()=>{UIManager.Instance.RegisterBackAction(OnSafetySettingBack);});
|
|
}
|
|
public Button safetySettingBackButton;
|
|
public Button autoLockButton;
|
|
public GameObject autoLockSettingPanelPrefab;
|
|
public void EnterSafetySettingPage()
|
|
{
|
|
safetySettingPage.SetActive(true);
|
|
safetySettingBackButton.onClick.RemoveAllListeners();
|
|
safetySettingBackButton.onClick.AddListener(OnSafetySettingBack);
|
|
autoLockButton.onClick.RemoveAllListeners();
|
|
autoLockButton.onClick.AddListener(OnAutoLockSetting);
|
|
UIManager.Instance.RegisterBackAction(OnSafetySettingBack);
|
|
}
|
|
public void OnSafetySettingBack()
|
|
{
|
|
safetySettingPage.SetActive(false);
|
|
UIManager.Instance.RegisterBackAction(OnBack);
|
|
}
|
|
GameObject autoLockSettingPanel;
|
|
public void OnAutoLockSetting()
|
|
{
|
|
autoLockSettingPanel=Instantiate(autoLockSettingPanelPrefab,transform);
|
|
autoLockSettingPanel.gameObject.SetActive(true);
|
|
}
|
|
public void EnterStatusPage()
|
|
{
|
|
ShowImageText statusPage=Instantiate(statusPagePrefab,transform);
|
|
statusPage.gameObject.SetActive(true);
|
|
statusPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);});
|
|
}
|
|
public FAQPage fAQPagePrefab;
|
|
public void EnterFaqPage()
|
|
{
|
|
FAQPage fAQPage=Instantiate(fAQPagePrefab,transform);
|
|
fAQPage.gameObject.SetActive(true);
|
|
fAQPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);});
|
|
}
|
|
public DeviceTeachingPage[] deviceTeachingPagePrefabs;
|
|
public void EnterDeviceTeachingPage()
|
|
{
|
|
int type=(int)LanguageManager.Instance.languageType;
|
|
DeviceTeachingPage deviceTeachingPage=Instantiate(deviceTeachingPagePrefabs[type],transform);
|
|
deviceTeachingPage.gameObject.SetActive(true);
|
|
deviceTeachingPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);});
|
|
}
|
|
public Button signoutButton;
|
|
public WindowTipCtrl signoutTip;
|
|
public void ClickSignOut()
|
|
{
|
|
signoutTip.gameObject.SetActive(true);
|
|
signoutTip.Init(OnSignOut,()=>{signoutTip.gameObject.SetActive(false);});
|
|
}
|
|
public void OnSignOut()
|
|
{
|
|
// 清除用户数据
|
|
DataManager.Instance.ClearInfo();
|
|
// 返回登录页面
|
|
UIManager.Instance.OpenMainPage(UIManager.PageName.loginPage);
|
|
}
|
|
}
|
|
|
|
}
|