From 0f2e0147e8990e913d16d99bc1b94fb6bc53abd7 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期四, 03 十二月 2020 15:35:42 +0800 Subject: [PATCH] 2020-12-03-1 --- HDL_ON/UI/UI1-Login/RegisterPage.cs | 391 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 362 insertions(+), 29 deletions(-) diff --git a/HDL_ON/UI/UI1-Login/RegisterPage.cs b/HDL_ON/UI/UI1-Login/RegisterPage.cs index fd4be00..6cdac76 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; @@ -24,6 +27,36 @@ /// 閫夋嫨閭鐧诲綍鎸夐挳 /// </summary> Button btnEmailLogin; + #region 鏈嶅姟鍣ㄩ�夋嫨 + /// <summary> + /// 鏈嶅姟鍣ㄥ尯鍩� + /// </summary> + FrameLayout serverView; + /// <summary> + /// 鏈嶅姟鍣↖con鎸夐挳 + /// </summary> + Button btnServerIcon; + /// <summary> + /// 鏈嶅姟鍣ㄦ枃鏈 + /// </summary> + Button btnServerText; + ///// <summary> + ///// 鏈嶅姟鍣ㄦ枃鏈 + ///// </summary> + //EditText etServer; + ///// <summary> + ///// 鏈嶅姟鍣ㄥ瓙鍖哄煙閲岄潰鐨勫垎鍓茬嚎1 + ///// </summary> + //Button btnLineVertical_server; + /// <summary> + ///鏈嶅姟鍣╣o鎸夐挳 + /// </summary> + Button btnServerGo; + /// <summary> + /// 鏈嶅姟鍣ㄥ瓙鍖哄煙搴曢儴妯嚎 + /// </summary> + Button btnServerBottomLine; + #endregion /// <summary> /// 璐﹀彿瀛愬尯鍩� /// </summary> @@ -47,7 +80,7 @@ /// <summary> /// 璐﹀彿瀛愬尯鍩熷簳閮ㄦí绾� /// </summary> - Button btnAccountViewBottomLine; + Button btnVerificationCodeViewBottomLine; /// <summary> /// 瀵嗙爜瀛愬尯鍩� /// </summary> @@ -116,11 +149,15 @@ /// <summary> /// 鑾峰彇楠岃瘉鐮佹寜閽� /// </summary> - Button btnGetVerificationCode; + Button btnGetVerificationCode_Phone; + /// <summary> + /// 鑾峰彇楠岃瘉鐮佹寜閽� + /// </summary> + Button btnGetVerificationCode_Mail; /// <summary> /// 楠岃瘉鐮佸瓙鍖哄煙搴曢儴鍒嗗壊绾� /// </summary> - Button btnVerificationCodeViewBottomLine; + Button btnAccountViewBottomLine; /// <summary> /// 娉ㄥ唽鎸夐挳 /// </summary> @@ -150,26 +187,26 @@ /// <summary> /// 鍥炶皟浜嬩欢 /// </summary> - Action<string> callbackAction; + //Action callbackAction; /// <summary> /// 娉ㄥ唽绫诲瀷 /// 0:鎵嬫満 /// 1:閭 /// </summary> int registerType; + /// <summary> + /// 鎵嬫満鍖哄彿 + /// </summary> + string phoneZoneCode = "86"; + /// <summary> + /// 鏄惁閫夋嫨杩囨湇鍔″櫒 + /// </summary> + bool isSelectServer; + + string registerPhone; + string registerEmail; #endregion public RegisterPage() - { - bodyView = new FrameLayout() - { - BackgroundColor = CSS_Color.BackgroundColor, - }; - AddChidren(bodyView); - - pm = new HttpServerRequest(); - } - - public RegisterPage(Action<string> action) { bodyView = new FrameLayout() { @@ -178,12 +215,23 @@ 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(StringId.Register)); + new TopViewDiv(this, bodyView, Language.StringByID(StringId.Register)).LoadTopView(); + //new PublicAssmebly().LoadTopView(this, bodyView, Language.StringByID(StringId.Register)); #region 娉ㄥ唽鏂瑰紡閫夋嫨 btnPhoneLogin = new Button() @@ -192,7 +240,7 @@ Y = Application.GetRealHeight(112), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(40), - TextID = StringId.LoginByPhone, + TextID = StringId.RegisterByPhone, TextColor = CSS_Color.MainColor, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, @@ -205,7 +253,7 @@ Y = Application.GetRealHeight(112), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(40), - TextID = StringId.LoginByEmail, + TextID = StringId.RegisterByEmail, TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.Center, TextSize = CSS_FontSize.TextFontSize, @@ -213,11 +261,66 @@ bodyView.AddChidren(btnEmailLogin); #endregion + #region 鏈嶅姟鍣ㄩ�夋嫨 + serverView = new FrameLayout() + { + X = Application.GetRealWidth(28), + Y = Application.GetRealHeight(167), + Width = Application.GetRealWidth(319), + Height = Application.GetRealHeight(44), + }; + bodyView.AddChidren(serverView); + + btnServerIcon = new Button() + { + X = Application.GetRealWidth(9), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(20), + Height = Application.GetMinRealAverage(20), + UnSelectedImagePath = "LoginIcon/Server.png", + + }; + serverView.AddChidren(btnServerIcon); + + btnServerText = new Button() + { + X = Application.GetRealWidth(49), + Width = Application.GetRealWidth(319 - 78), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.TextFontSize, + TextID = StringId.PleaseSelectCountryOrRegion, + }; + serverView.AddChidren(btnServerText); + + #region 瀵嗙爜鐧诲綍-鎺т欢鍔犺浇 + btnServerGo = new Button() + { + X = Application.GetRealWidth(303), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + UnSelectedImagePath = "Public/Right.png", + }; + serverView.AddChidren(btnServerGo); + + #endregion + btnServerBottomLine = new Button() + { + Y = Application.GetRealHeight(42), + BackgroundColor = CSS_Color.DividingLineColor, + SelectedBackgroundColor = CSS_Color.MainColor, + Height = Application.GetRealHeight(1), + }; + serverView.AddChidren(btnServerBottomLine); + #endregion + + int topPadding = Application.GetRealHeight(12); #region 璐﹀彿濉啓 accountView = new FrameLayout() { X = Application.GetRealWidth(28), - Y = Application.GetRealHeight(167), + Y = serverView.Bottom + topPadding, Width = Application.GetRealWidth(319), Height = Application.GetRealHeight(44), }; @@ -229,9 +332,22 @@ X = Application.GetRealWidth(9), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, - Text = "+86", + Text = "+" + phoneZoneCode, TextSize = CSS_FontSize.TextFontSize, }; + + //璺宠浆鍥藉鍖哄彿閫夋嫨鐣岄潰 + EventHandler<MouseEventArgs> eHandler = (sender, e) => { + JLCountrycode.CountryCodeView.Current.Show((countryName, code) => { + if (!string.IsNullOrEmpty(code)) + { + phoneZoneCode = code; + btnGlobalRoaming.Text = "+" + phoneZoneCode; + } + }); + }; + btnGlobalRoaming.MouseUpEventHandler += eHandler; + if (accountType == 0) { accountView.AddChidren(btnGlobalRoaming); @@ -256,6 +372,7 @@ TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber), + IsNumberKeyboardType = true }; accountView.AddChidren(etAccount); @@ -285,7 +402,7 @@ passwordView = new FrameLayout() { X = Application.GetRealWidth(28), - Y = Application.GetRealHeight(223), + Y = accountView.Bottom + topPadding, Width = Application.GetRealWidth(319), Height = Application.GetRealHeight(44), }; @@ -351,7 +468,7 @@ repeatPasswordView = new FrameLayout() { X = Application.GetRealWidth(28), - Y = Application.GetRealHeight(279), + Y = passwordView.Bottom + topPadding, Width = Application.GetRealWidth(319), Height = Application.GetRealHeight(44), }; @@ -419,7 +536,8 @@ verificationCodeView = new FrameLayout() { X = Application.GetRealWidth(28), - Y = Application.GetRealHeight(335), + Y = repeatPasswordView.Bottom + topPadding, + //Y = Application.GetRealHeight(335), Width = Application.GetRealWidth(319), Height = Application.GetRealHeight(44), }; @@ -457,7 +575,7 @@ }; verificationCodeView.AddChidren(etVerificationCode); - btnGetVerificationCode = new Button() + btnGetVerificationCode_Phone = new Button() { X = Application.GetRealWidth(219), Width = Application.GetRealWidth(100), @@ -467,7 +585,20 @@ 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() { @@ -483,10 +614,11 @@ btnRegister = new Button() { Gravity = Gravity.CenterHorizontal, - Y = Application.GetRealHeight(421), + Y = verificationCodeView.Bottom + Application.GetRealHeight(42), + //Y = Application.GetRealHeight(421), Width = Application.GetRealWidth(220), - Height = Application.GetRealHeight(44), - Radius = (uint)Application.GetRealHeight(22), + Height = Application.GetRealWidth(44), + Radius = (uint)Application.GetRealWidth(22), SelectedBackgroundColor = CSS_Color.MainColor, BackgroundColor = CSS_Color.PromptingColor1, TextID = StringId.Register, @@ -498,5 +630,206 @@ 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.Code == StateCode.SUCCESS) + { + var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(loginResult.Data.ToString()); + // UserInfo.Current = new UserInfo + //{ + // userType = revertData.userType, + // accountString = account, + // password = password, + // lastTime = DateTime.Now, + // ID = revertData.userId, + // loginTokenString = revertData.headerPrefix + revertData.accessToken, + // refreshToken = revertData.refreshToken, + // userName = revertData.name + //}; + UserInfo.Current.userType = revertData.userType; + UserInfo.Current.AccountString = account; + //UserInfo.Current.password = password; + UserInfo.Current.LastTime = DateTime.Now; + UserInfo.Current.ID = revertData.userId; + UserInfo.Current.LoginTokenString = revertData.headerPrefix + revertData.accessToken; + UserInfo.Current.RefreshToken = revertData.refreshToken; + UserInfo.Current.userName = revertData.name; + + UserInfo.Current.SaveUserInfo(); + MainPage.Log("鐧诲綍鎴愬姛銆�"); + result = true; + } + else + { + //鐧诲綍澶辫触 + IMessageCommon.Current.ShowErrorInfoAlter(loginResult.Code); + Application.RunOnMainThread(() => + { + 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 == StateCode.SUCCESS) + { + //2020-11-13 寰呯‘璁わ紝娌℃湁浣忓畢锛屼笉绠楃櫥褰曟垚鍔� + if (UserInfo.Current.regionList != null && UserInfo.Current.regionList.Count > 0) + { + result = true; + } + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(responsePack); + } + return result; + } + #endregion } } \ No newline at end of file -- Gitblit v1.8.0