From a715181089be0d31cd737a5367ffd02690b9d77f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 12 十一月 2020 13:36:01 +0800 Subject: [PATCH] 20201112 --- HDL_ON/UI/UI1-Login/RegisterPage.cs | 305 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 279 insertions(+), 26 deletions(-) diff --git a/HDL_ON/UI/UI1-Login/RegisterPage.cs b/HDL_ON/UI/UI1-Login/RegisterPage.cs index 82b2ddd..4f30528 100644 --- a/HDL_ON/UI/UI1-Login/RegisterPage.cs +++ b/HDL_ON/UI/UI1-Login/RegisterPage.cs @@ -1,5 +1,8 @@ 锘縰sing System; +using System.Collections.Generic; +using System.Threading; using HDL_ON.DAL.Server; +using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; @@ -8,6 +11,10 @@ public partial class RegisterPage : Dialog { #region 鎺т欢鍒楄〃 + /// <summary> + /// 绛夊緟鎻愮ず + /// </summary> + Loading waitPage; /// <summary> /// 褰撳墠鐣岄潰 /// </summary> @@ -43,7 +50,7 @@ /// <summary> /// 璐﹀彿瀛愬尯鍩熷簳閮ㄦí绾� /// </summary> - Button btnAccountViewBottomLine; + Button btnVerificationCodeViewBottomLine; /// <summary> /// 瀵嗙爜瀛愬尯鍩� /// </summary> @@ -112,11 +119,15 @@ /// <summary> /// 鑾峰彇楠岃瘉鐮佹寜閽� /// </summary> - Button btnGetVerificationCode; + Button btnGetVerificationCode_Phone; + /// <summary> + /// 鑾峰彇楠岃瘉鐮佹寜閽� + /// </summary> + Button btnGetVerificationCode_Mail; /// <summary> /// 楠岃瘉鐮佸瓙鍖哄煙搴曢儴鍒嗗壊绾� /// </summary> - Button btnVerificationCodeViewBottomLine; + Button btnAccountViewBottomLine; /// <summary> /// 娉ㄥ唽鎸夐挳 /// </summary> @@ -146,13 +157,16 @@ /// <summary> /// 鍥炶皟浜嬩欢 /// </summary> - Action<string> callbackAction; + //Action callbackAction; /// <summary> /// 娉ㄥ唽绫诲瀷 /// 0:鎵嬫満 /// 1:閭 /// </summary> int registerType; + + string registerPhone; + string registerEmail; #endregion public RegisterPage() { @@ -165,21 +179,21 @@ pm = new HttpServerRequest(); } - public RegisterPage(Action<string> action) - { - bodyView = new FrameLayout() - { - BackgroundColor = CSS_Color.MainBackgroundColor, - }; - AddChidren(bodyView); - - pm = new HttpServerRequest(); - callbackAction = action; - } + //public RegisterPage(Action action) + //{ + // bodyView = new FrameLayout() + // { + // BackgroundColor = CSS_Color.MainBackgroundColor, + // }; + // AddChidren(bodyView); + // pm = new HttpServerRequest(); + // callbackAction = action; + //} public void ShowDialog() { - new PublicAssmebly().LoadTopView(this, bodyView, Language.StringByID(R.InternationalizationString.Register)); + new TopViewDiv(this, bodyView, Language.StringByID(StringId.Register)).LoadTopView(); + //new PublicAssmebly().LoadTopView(this, bodyView, Language.StringByID(StringId.Register)); #region 娉ㄥ唽鏂瑰紡閫夋嫨 btnPhoneLogin = new Button() @@ -188,7 +202,7 @@ Y = Application.GetRealHeight(112), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(40), - TextID = R.InternationalizationString.LoginByPhone, + TextID = StringId.RegisterByPhone, TextColor = CSS_Color.MainColor, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, @@ -201,7 +215,7 @@ Y = Application.GetRealHeight(112), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(40), - TextID = R.InternationalizationString.LoginByEmail, + TextID = StringId.RegisterByEmail, TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.Center, TextSize = CSS_FontSize.TextFontSize, @@ -251,7 +265,7 @@ TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, - PlaceholderText = Language.StringByID(R.InternationalizationString.PlsEntryPhoneNumber), + PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber), }; accountView.AddChidren(etAccount); @@ -315,7 +329,7 @@ TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, - PlaceholderText = Language.StringByID(R.InternationalizationString.PlsRegisterPassword), + PlaceholderText = Language.StringByID(StringId.PlsRegisterPassword), SecureTextEntry = true, }; passwordView.AddChidren(etPassword); @@ -381,7 +395,7 @@ TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, - PlaceholderText = Language.StringByID(R.InternationalizationString.PlsRegisterRepeatPassword), + PlaceholderText = Language.StringByID(StringId.PlsRegisterRepeatPassword), SecureTextEntry = true, }; repeatPasswordView.AddChidren(etRepeatPassword); @@ -449,21 +463,34 @@ TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, - PlaceholderText = Language.StringByID(R.InternationalizationString.PlsEntryVerificationCode), + PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode), }; verificationCodeView.AddChidren(etVerificationCode); - btnGetVerificationCode = new Button() + btnGetVerificationCode_Phone = new Button() { X = Application.GetRealWidth(219), Width = Application.GetRealWidth(100), - TextID = R.InternationalizationString.GetVerificationCode, + TextID = StringId.GetVerificationCode, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterRight, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; - verificationCodeView.AddChidren(btnGetVerificationCode); + verificationCodeView.AddChidren(btnGetVerificationCode_Phone); + + btnGetVerificationCode_Mail = new Button() + { + X = Application.GetRealWidth(219), + Width = Application.GetRealWidth(100), + TextID = StringId.GetVerificationCode, + SelectedTextColor = CSS_Color.MainColor, + TextColor = CSS_Color.PromptingColor1, + TextAlignment = TextAlignment.CenterRight, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Visible = false + }; + verificationCodeView.AddChidren(btnGetVerificationCode_Mail); btnVerificationCodeViewBottomLine = new Button() { @@ -485,7 +512,7 @@ Radius = (uint)Application.GetRealHeight(22), SelectedBackgroundColor = CSS_Color.MainColor, BackgroundColor = CSS_Color.PromptingColor1, - TextID = R.InternationalizationString.Register, + TextID = StringId.Register, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.MainBackgroundColor, TextAlignment = TextAlignment.Center, @@ -494,5 +521,231 @@ LoadEventList(); } + + + /// <summary> + /// 娉ㄥ唽鎴愬姛涔嬪悗鑷姩鐧诲綍 + /// </summary> + void LoadEvent_AutoLogin(string account, string password) + { + Dialog dialog = new Dialog(); + + FrameLayout frame = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(198), + Width = Application.GetRealWidth(288), + Height = Application.GetRealHeight(206), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + BorderWidth = 0, + BorderColor = 0x00000000, + }; + dialog.AddChidren(frame); + + Button btnAccountText = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(40), + Height = Application.GetRealHeight(17 + 14 + 14), + IsMoreLines = true, + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + Text = account, + }; + frame.AddChidren(btnAccountText); + + Button btnTipRegisterSuccess = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(123), + Height = Application.GetRealHeight(30), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.CongratulationsRegistration, + }; + frame.AddChidren(btnTipRegisterSuccess); + + Button btnAutoLoginTip = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = btnTipRegisterSuccess.Bottom, + Height = Application.GetRealHeight(17 + 8), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.AutomaticallyLogin, + }; + frame.AddChidren(btnAutoLoginTip); + + Button btnHeadImage = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(150), + Width = Application.GetRealWidth(84), + Height = Application.GetRealWidth(84), + Radius = (uint)Application.GetRealWidth(42), + BorderColor = 0x00000000, + BorderWidth = 0, + UnSelectedImagePath = "LoginIcon/2.png", + }; + dialog.AddChidren(btnHeadImage); + + dialog.Show(); + + new Thread(() => + { + Thread.Sleep(1500); + Application.RunOnMainThread(() => + { + //鍒涘缓鐧诲綍绾跨▼ + var loginThread = LoadThread_Login(account, password); + waitPage = new Loading(); + new PublicAssmebly().LoadPage_WaitPage(loginThread, bodyView, waitPage); + dialog.Close(); + }); + }) + { IsBackground = true }.Start(); + } + + #region 鐧诲綍绾跨▼閮ㄥ垎 + /// <summary> + /// 鍔犺浇鐧诲綍绾跨▼ + /// </summary> + Thread LoadThread_Login(string account,string password) + { + var loginThread = new Thread(() => + { + try + { + //鐧诲綍 + var loginResult = LoadMethod_Login(account,password); + if (loginResult) + { + //鑾峰彇浣忓畢淇℃伅 + var getResidencesResult = LoadMethod_GetResidences(); + if (getResidencesResult) + { + /* + * Wait : 鎺ㄩ�佹敞鍐� + */ + + Application.RunOnMainThread(() => + { + waitPage.RemoveFromParent(); + waitPage = null; + + //璺宠浆椤甸潰---- + MainPage.GoUserPage(); + }); + } + } + } + catch (Exception ex) + { + MainPage.Log($"LoginPage : {ex.Message}"); + } + }) + { IsBackground = true }; + return loginThread; + } + + /// <summary> + /// 璋冪敤鐧诲綍鎺ュ彛鐧诲綍 + /// </summary> + bool LoadMethod_Login(string account, string password) + { + var result = false; + //璋冪敤鐧诲綍鎺ュ彛 + var loginResult = pm.LoginByPassword(account, password); + if (loginResult.StateCode.ToUpper() == "SUCCESS") + { + var loginDataStr = Newtonsoft.Json.Linq.JObject.FromObject(loginResult.ResponseData); + + //璁板綍鐢ㄦ埛鏁版嵁 + MainPage.LoginUser = new UserInfo + { + ID = (int)loginDataStr.GetValue("UserID"), + masterID = (int)loginDataStr.GetValue("MainUserID"), + accountType = (int)loginDataStr.GetValue("UserType"), + accountString = account, + password = password, + lastTime = DateTime.Now, + userName = loginDataStr.GetValue("Remark").ToString(), + }; + MainPage.LoginUser.SaveUserInfo(); + MainPage.Log("鐧诲綍鎴愬姛銆�"); + result = true; + + + } + //鐧诲綍澶辫触 + else + { + string tipStr = "Sever erorr"; + switch (loginResult.StateCode) + { + case "USERNAMEORPWDERROR": + tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError); + break; + case "Self:Net_Error": + tipStr = Language.StringByID(StringId.NetworkAnomaly); + break; + } + //璐﹀彿鎴栬�呭瘑鐮侀敊璇� + Application.RunOnMainThread(() => + { + //鎻愮ず鍘熷洜 + var tip = new Tip() + { + Text = tipStr, + CloseTime = 1, + Direction = AMPopTipDirection.None + }; + tip.Show(bodyView); + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); + }); + } + return result; + } + + /// <summary> + /// 鑾峰彇浣忓畢鍒楄〃 + /// </summary> + bool LoadMethod_GetResidences() + { + var result = false; + var responsePack = pm.GetHomePager(); + if (responsePack == "Success") + { + } + else + { + var tipStr = "Server erorr"; + switch (responsePack) + { + case "NoLogin": + tipStr = Language.StringByID(StringId.InvalidLoginCertificate); + break; + } + Application.RunOnMainThread(() => + { + //鎻愮ず鍘熷洜 + var tip = new Tip() + { + Text = tipStr, + CloseTime = 1, + Direction = AMPopTipDirection.None + }; + tip.Show(bodyView); + }); + + } + return result; + } + #endregion } } \ No newline at end of file -- Gitblit v1.8.0