- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
159 lines
4.8 KiB
Plaintext
159 lines
4.8 KiB
Plaintext
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using XFramework;
|
|
|
|
public class LoginPanel : BasePanel
|
|
{
|
|
|
|
const string panelName = "Panel_LoginPublic";
|
|
|
|
private RunState runState;//运行模式 教员/学员
|
|
bool teacherLogin = true;
|
|
|
|
public Toggle toggleTeacher;
|
|
public Toggle toggleAdmin;
|
|
public InputField inputField_user;
|
|
public InputField inputField_password;
|
|
public Text loginErrorLog;
|
|
public Button loginButton;
|
|
User thisUser = new User();
|
|
// Start is called before the first frame update
|
|
|
|
public LoginPanel() :base(new UIType(panelName) )
|
|
{
|
|
|
|
}
|
|
|
|
protected override void InitEvent()
|
|
{
|
|
Start();
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
toggleTeacher = ActivePanel.transform.Find("Image_loginWindow/ToggleGroup/Toggle_teacher").GetComponent<Toggle>();
|
|
toggleAdmin = ActivePanel.transform.Find("Image_loginWindow/ToggleGroup/Toggle_admin").GetComponent<Toggle>();
|
|
inputField_user = ActivePanel.transform.Find("Image_loginWindow/InputField_user").GetComponent<InputField>();
|
|
inputField_password = ActivePanel.transform.Find("Image_loginWindow/InputField_password").GetComponent<InputField>();
|
|
loginErrorLog = ActivePanel.transform.Find("Image_loginWindow/Text_loginFailMess").GetComponent<Text>();
|
|
loginButton = ActivePanel.transform.Find("Image_loginWindow/Button_login").GetComponent<Button>();
|
|
|
|
runState = GameMain.Instance.runState;
|
|
switch (runState)
|
|
{
|
|
case RunState.teacher:
|
|
thisUser.userType = UserType.Teacher;
|
|
break;
|
|
case RunState.student:
|
|
thisUser.userType = UserType.student;
|
|
EventCenter.Instance.AddEventListener<bool>("LoginResult", StudentLoginResult);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
toggleTeacher.onValueChanged.AddListener(TeacherToggleOn);
|
|
loginButton.onClick.AddListener(LoginButtonClick);
|
|
InitPanel();
|
|
}
|
|
|
|
void InitPanel()
|
|
{
|
|
if (runState == RunState.student)
|
|
{
|
|
toggleTeacher.gameObject.SetActive(false);
|
|
toggleAdmin.gameObject.SetActive(false);
|
|
}
|
|
loginErrorLog.gameObject.SetActive(false);
|
|
}
|
|
// 登陆按钮按下
|
|
void LoginButtonClick()
|
|
{
|
|
string user = inputField_user.text;
|
|
string password = inputField_password.text;
|
|
if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(password))
|
|
{
|
|
loginErrorLog.gameObject.SetActive(true);
|
|
loginErrorLog.text = "未输入有效的用户名/密码!";
|
|
return;
|
|
}
|
|
|
|
thisUser.user = inputField_user.text.Trim();
|
|
thisUser.password = inputField_password.text.Trim();
|
|
if (runState == RunState.teacher)
|
|
{
|
|
if (teacherLogin)//教师登录时通过数据库查询登录名称是否正确
|
|
{
|
|
bool result= DBManager.Instance.CheckUserLogin(thisUser);
|
|
if (result)
|
|
LoginSucceed(UserType.Teacher);
|
|
else
|
|
LoginMsgWrong();
|
|
}
|
|
else//管理员登录时 使用默认密码
|
|
{
|
|
if (user != "a" || password != "a")
|
|
{
|
|
LoginMsgWrong();
|
|
}
|
|
else
|
|
{
|
|
LoginSucceed( UserType.manager);
|
|
}
|
|
}
|
|
}
|
|
else//学员发送登陆请求
|
|
{
|
|
TCPManager.Instance.SendNetMsg<User>(thisUser, NetMsgName.Login);
|
|
//StudentLoginResult(true);//测试时调用
|
|
}
|
|
}
|
|
|
|
//登陆用户名或密码有误执行
|
|
void LoginMsgWrong()
|
|
{
|
|
loginErrorLog.gameObject.SetActive(true);
|
|
loginErrorLog.text = "用户名/密码不正确!";
|
|
}
|
|
|
|
//登录成功执行
|
|
void LoginSucceed(UserType userType)
|
|
{
|
|
loginErrorLog.gameObject.SetActive(false);
|
|
inputField_password.text = "";
|
|
inputField_user.text = "";
|
|
Pop();
|
|
switch (userType)
|
|
{
|
|
case UserType.student:
|
|
Push(new StudentWaitingPanel());
|
|
break;
|
|
case UserType.Teacher:
|
|
Push(new DaoHangPanel());
|
|
ChangeNextPanel((float)userType);
|
|
break;
|
|
case UserType.manager:
|
|
Push(new DaoHangPanel());
|
|
ChangeNextPanel((float)userType);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void TeacherToggleOn(bool isOn)
|
|
{
|
|
teacherLogin = isOn;
|
|
}
|
|
|
|
//学员登陆时需等待登陆结果判定信息
|
|
void StudentLoginResult(bool result)
|
|
{
|
|
if (result)
|
|
LoginSucceed(UserType.student);
|
|
else
|
|
LoginMsgWrong();
|
|
}
|
|
|
|
|
|
}
|