using System; using System.Text.RegularExpressions; using System.Threading; using System.Collections.Generic; using HDL_ON.UI.CSS; using Shared; using HDL_ON.Entity; using HDL_ON.DAL.Server; namespace HDL_ON.UI.UI1Login { public partial class LoginPage { /// /// 加载事件 /// void LoadEventList() { LoadPage_SwitchLoginType(); LoadMethod_VisiblePassword(); LoadPage_SwitchLoginMode(); LoadEvent_Login(); LoadPage_SelectionEditText(); LoadPage_RegisterPage(); GetVerificationCode(); LoadMethod_ForgetPassword(); } /// /// 检测当前配置域名是否一致,不一致则替换 /// /// void CheckAndSetUserRequestHost(ResponsePackNew result) { try { var mGlobalRegionListObj = Newtonsoft.Json.JsonConvert.DeserializeObject(result.Data.ToString()); if (UserInfo.Current.RequestHttpsHost != mGlobalRegionListObj.regionUrl) { UserInfo.Current.RequestHttpsHost = mGlobalRegionListObj.regionUrl; UserInfo.Current.GlobalRegion = mGlobalRegionListObj; UserInfo.Current.SaveUserInfo(); } } catch { } } /// /// 点击按钮获取验证码 /// void GetVerificationCode() { btnGetVerificationCode.MouseUpEventHandler = (sender, e) => { if (btnGetVerificationCode.IsSelected) { string phoneNumber = etAccount.Text.Trim(); if (string.IsNullOrEmpty(phoneNumber)) { var tip = new Tip() { Text = Language.StringByID(StringId.PlsEntryPhoneNumber), CloseTime = 1, Direction = AMPopTipDirection.None }; tip.Show(bodyView); btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); return; } if (!Utlis.CheckPhoneNumber(phoneNumber, phoneZoneCode)) { var tip = new Tip() { Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), CloseTime = 1, Direction = AMPopTipDirection.None }; tip.Show(bodyView); btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); return; } int time = 60; new Thread(() => { //1.先检查账号是否注册过 var result = pm.GetRegionByAccount(account); if (result.Code != StateCode.SUCCESS) { IMessageCommon.Current.ShowErrorInfoAlter(result.Code); ShowBtnAccountViewBottomLineError(); return; } else { //检测当前配置域名是否一致,不一致则替换 CheckAndSetUserRequestHost(result); // Application.RunOnMainThread(() => { btnGetVerificationCode.IsSelected = false; btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1; }); new Thread(() => { while (time > 0) { time--; Application.RunOnMainThread(() => { btnGetVerificationCode.Text = time.ToString() + "s"; }); Thread.Sleep(1000); } Application.RunOnMainThread(() => { btnGetVerificationCode.IsSelected = true; btnGetVerificationCode.TextID = StringId.GetVerificationCode; }); }) { IsBackground = true }.Start(); //2.1请求获取验证码 var resultObj = pm.VerificationCodeSend(VerifyType.VERIFY_LOGIN, account, true, phoneZoneCode); if (resultObj.Code != StateCode.SUCCESS) { //2.2请求获取验证码失败 Application.RunOnMainThread(() => { btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); }); // 提示错误 IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code); } } }) { IsBackground = true }.Start(); // btnGetVerificationCode.IsSelected = false ; // btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1; // int time = 60; // new Thread(() => // { // while (time > 0) // { // time--; // Application.RunOnMainThread(() => // { // btnGetVerificationCode.Text = time.ToString() + "s"; // }); // Thread.Sleep(1000); // } // Application.RunOnMainThread(() => // { // btnGetVerificationCode.IsSelected = true; // btnGetVerificationCode.TextID = StringId.GetVerificationCode; // }); // }) // { IsBackground = true }.Start(); // new Thread(() => // { // //获取验证码 // var result = pm.GetLoginVerCode(phoneNumber); // if (result.StateCode.ToUpper() == StateCode.SUCCESS_CODE) // { // } // //登录失败 // else // { // string tipStr = "Sever erorr"; // switch (result.StateCode.ToUpper()) // { // case "USERNAMEORPWDERROR": // tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError); // Application.RunOnMainThread(() => // { // btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; // btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); // }); // break; // case "ACCOUNTNOEXISTS": // tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS); // Application.RunOnMainThread(() => // { // btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; // btnAccountViewBottomLine.Height = Application.GetRealHeight(2); // }); // break; // case "SENDFAIL": // tipStr = Language.StringByID(StringId.FailedToSendVerificationCode); // Application.RunOnMainThread(() => // { // btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; // btnAccountViewBottomLine.Height = Application.GetRealHeight(2); // }); // 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); // }); // } // }) // { IsBackground = true }.Start(); } }; } /// /// 切换登录类型 /// void LoadPage_SwitchLoginType() { //选择手机登录 btnPhoneLogin.MouseUpEventHandler = (sender, e) => { if (loginType == 0) return; etAccount.Text = registerPhone; etPassword.Text = ""; #region 切换选中按钮 btnEmailLogin.TextColor = CSS_Color.PromptingColor1; btnEmailLogin.TextSize = CSS_FontSize.TextFontSize; btnPhoneLogin.TextColor = CSS_Color.MainColor; btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary; etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber); #endregion #region 切换登录方式及图标 loginType = 0; if (btnAccountIcon.Parent != null) { btnAccountIcon.RemoveFromParent(); } accountView.AddChidren(btnGlobalRoaming); //显示验证码登录方式,手机登录有验证码登录 btnSwitchLoginMode.Visible = true; #endregion #region if (logintMode == 1) { if (Regex.IsMatch(account, @"^[1]+\d{10}") && (account.Length == 11) && btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode)) { btnGetVerificationCode.IsSelected = true; } btnSwitchLoginMode.TextID = StringId.PasswordLogin; //passwordView.AddChidren(btnGetVerificationCode); btnGetVerificationCode.Visible = true; etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode); btnPasswordIcon.IsSelected = true; if (btnVisiblePassword.Parent != null) { btnVisiblePassword.RemoveFromParent(); } if (btnDividingLineVertical_PasswordView2.Parent != null) { btnDividingLineVertical_PasswordView2.RemoveFromParent(); } if (btnForgetPassword.Parent != null) { btnForgetPassword.RemoveFromParent(); } //验证码不需要隐藏 etPassword.SecureTextEntry = false; } #endregion }; //选择邮箱登录 btnEmailLogin.MouseUpEventHandler += (sender, e) => { if (loginType == 1) return; etAccount.Text = registerEmail; etPassword.Text = ""; #region 切换选中按钮 btnPhoneLogin.TextColor = CSS_Color.PromptingColor1; btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize; btnEmailLogin.TextColor = CSS_Color.MainColor; btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary; etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryEmailAddress); #endregion #region 切换登录类型及图标 loginType = 1; if (btnGlobalRoaming.Parent != null) { btnGlobalRoaming.RemoveFromParent(); } accountView.AddChidren(btnAccountIcon); #endregion //邮箱只有密码登录模式 //logintMode = 0; //密码登录 btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin; passwordView.AddChidren(btnVisiblePassword); passwordView.AddChidren(btnDividingLineVertical_PasswordView2); passwordView.AddChidren(btnForgetPassword); btnPasswordIcon.IsSelected = false; //if (btnGetVerificationCode.Parent != null) //{ //btnGetVerificationCode.RemoveFromParent(); btnGetVerificationCode.Visible = false; //} //隐藏密码 etPassword.SecureTextEntry = true; //隐藏验证码登录方式,邮箱登录没有验证码登录 btnSwitchLoginMode.Visible = false; }; } /// /// 切换登录方式 /// 验证码/密码 /// void LoadPage_SwitchLoginMode() { btnSwitchLoginMode.MouseUpEventHandler = (sender, e) => { logintMode = logintMode == 0 ? 1 : 0; //清除密码框文本数据 etPassword.Text = ""; //密码登录 if (logintMode == 0) { btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin; passwordView.AddChidren(btnVisiblePassword); passwordView.AddChidren(btnDividingLineVertical_PasswordView2); etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryPassword); passwordView.AddChidren(btnForgetPassword); btnPasswordIcon.IsSelected = false; //if (btnGetVerificationCode.Parent != null) //{ //btnGetVerificationCode.RemoveFromParent(); btnGetVerificationCode.Visible = false; //} //隐藏密码 etPassword.SecureTextEntry = true; } //验证码登录 else if (logintMode == 1) { if (Regex.IsMatch(account, @"^[1]+\d{10}") && (account.Length == 11) && btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode)) { btnGetVerificationCode.IsSelected = true; } btnSwitchLoginMode.TextID = StringId.PasswordLogin; //passwordView.AddChidren(btnGetVerificationCode); btnGetVerificationCode.Visible = true; etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode); btnPasswordIcon.IsSelected = true; if (btnVisiblePassword.Parent != null) { btnVisiblePassword.RemoveFromParent(); } if (btnDividingLineVertical_PasswordView2.Parent != null) { btnDividingLineVertical_PasswordView2.RemoveFromParent(); } if (btnForgetPassword.Parent != null) { btnForgetPassword.RemoveFromParent(); } //验证码不需要隐藏 etPassword.SecureTextEntry = false; } }; } /// /// 文本框焦点变化事件 /// void LoadPage_SelectionEditText() { //当焦点在账号文本框时,文本框底线点亮 etAccount.FoucsChanged = (sender, e) => { if (etAccount.Foucs) { btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); } else { btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnAccountViewBottomLine.Height = Application.GetRealHeight(1); account = etAccount.Text.Trim(); if (loginType == 0) { registerPhone = account; } else { registerEmail = account; } if (account.Length == 0) return; if (loginType == 0) { if (!Utlis.CheckPhoneNumber(registerPhone, phoneZoneCode)) { var tip = new Tip() { Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), CloseTime = 1, Direction = AMPopTipDirection.None }; tip.Show(bodyView); btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); } else { if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode)) { btnGetVerificationCode.IsSelected = true; } } } else { if (!Utlis.CheckEmail(registerEmail)) { var tip = new Tip() { Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress), CloseTime = 1, Direction = AMPopTipDirection.None }; tip.Show(bodyView); btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); } } } }; //当焦点在密码文本框时,文本框底线点亮 etPassword.FoucsChanged = (sender, e) => { if (etPassword.Foucs) { btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); } else { btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnPasswordViewBottomLine.Height = Application.GetRealHeight(1); } }; //当焦点在账号文本框时,点击键盘回撤按键,触发的事件 etAccount.EditorEnterAction += (obj) => { etPassword.Foucs = true; }; //当焦点在密码文本框时,点击键盘回撤按键,触发的事件 etPassword.EditorEnterAction += (obj) => { Application.HideSoftInput(); }; etPassword.MouseUpEventHandler = (sender, e) => { etPassword.Foucs = true; }; } /// /// 隐藏/显示密码 /// void LoadMethod_VisiblePassword() { btnVisiblePassword.MouseUpEventHandler += (sender, e) => { btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected; if (btnVisiblePassword.IsSelected) { etPassword.SecureTextEntry = false; } else { etPassword.SecureTextEntry = true; } }; } /// /// 登录按钮点击事件 /// void LoadEvent_Login() { btnLogin.MouseUpEventHandler += (sender, e) => { if (btnLogin.IsSelected) { //判断是否同意了隐私政策 if (CheckPrivacyPolicy() == false) return; account = etAccount.Text.Trim(); password = etPassword.Text.Trim(); if (loginType == 0) { if (!Utlis.CheckPhoneNumber(account, phoneZoneCode)) { var tip = new Tip() { Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), CloseTime = 1, Direction = AMPopTipDirection.None }; tip.Show(bodyView); return; } } else { if (!Utlis.CheckEmail(account)) { var tip = new Tip() { Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress), CloseTime = 1, Direction = AMPopTipDirection.None }; tip.Show(bodyView); return; } } //创建登录线程 var loginThread = LoadThread_Login(); waitPage = new Loading(); new PublicAssmebly().LoadPage_WaitPage(loginThread, bodyView, waitPage); } }; #region 当账号密码都输入时,才能点击登录按钮 etAccount.TextChangeEventHandler = (sender, e) => { account = etAccount.Text.Trim(); if (account.Length > 0 && etPassword.Text.Trim().Length > 0) { btnLogin.IsSelected = true; } else { btnLogin.IsSelected = false; } if (Regex.IsMatch(account, @"^[1]+\d{10}"))//&& account.Length == 11) { btnGetVerificationCode.IsSelected = true; btnGetVerificationCode.TextColor = CSS_Color.MainBackgroundColor; } else { btnGetVerificationCode.IsSelected = false; btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1; } }; etPassword.TextChangeEventHandler += (sender, e) => { if (etAccount.Text.Trim().Length > 0 && etPassword.Text.Trim().Length > 0) { btnLogin.IsSelected = true; } else { btnLogin.IsSelected = false; } }; #endregion } /// /// 加载登录线程 /// Thread LoadThread_Login() { var loginThread = new Thread(() => { try { //如果是账号密码登录,先检查一次账号是否注册过 if (logintMode == 0) { //1.先检查账号是否注册过 var result = pm.GetRegionByAccount(account); if (result.Code != StateCode.SUCCESS) { IMessageCommon.Current.ShowErrorInfoAlter(result.Code); ShowBtnAccountViewBottomLineError(); return; } else { //设置用户所注册地区的域名,用户相关操作都用这个域名 CheckAndSetUserRequestHost(result); } } //登录 var loginResult = LoadMethod_Login(); if (!string.IsNullOrEmpty(verAccount))//验证登录账号 { Application.RunOnMainThread(() => { if (verAccount == etPassword.Text.Trim()) { //跳转页面---- MainPage.GoUserPage(); return; } }); } if (loginResult) { //获取住宅信息 var getResidencesResult = LoadMethod_GetResidences(); if (getResidencesResult) { /* * Wait : 推送注册 */ /* 查看本地是否存在数据 存在则导出 */ var isExis = FileUtils.IsExisFolder(DB_ResidenceData.residenceData.CurReginID); if (isExis) { FileUtils.DeleteAllFile(); string regionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID); FileUtils.RestoreRegionFiles(regionRootPath); DB_ResidenceData.residenceData.EixtAccount(); OnAppConfig.Instance.RefreshUserConfig(); DB_ResidenceData.InitRoomFunction(); } if (UserInfo.Current.userEmailInfo == "464027401@qq.com") { DB_ResidenceData.residenceData.floors.Add(new Floor() { name = "1F", sid = "09888" }); var r111 = new Room() { sid = "0001", name = "Room-1", floorId = "09888", backgroundImage = "Classification/Room/Roombg.png" }; DB_ResidenceData.rooms.Add(r111); DB_ResidenceData.residenceData.floors.Add(new Floor() { sid = "000022222", name = "1F" }); r111.SaveRoomData(); new AC() { sid = "030101123456780604010001ABCD", name = "空调", function = new List() { new Trait { name="on_off", max=1,min = 0, value_key= new List { "on","off"} }, new Trait { name="mode", max = 2,min =0,value_key = new List{ "auto", "heat", "cool","dry" } }, new Trait { name = "fan",max = 3,min =0,value_key = new List{ "low", "medium", "high" ,"auto"} }, new Trait { name = "set_temperature", max = 32,min=16,value_key = new List{"up","down" } }, }, roomIdList = new List() { "0001" }, lastState = "制冷 中风 18°C", bus_Data = new BusData { SubnetID = 42, DeviceID = 8, LoopID = 1, }, }.SaveFunctionData(); new Light() { sid = "030101123456780202020002ABCD", name = "调光灯", function = new List() { new Trait { name="brightness", max=100,min = 0, value_key= new List { "up","down"} }, },//"brightness", roomIdList = new List() { "0001" }, lastState = "20%", bus_Data = new BusData { SubnetID = 42, DeviceID = 9, LoopID = 1, }, }.SaveFunctionData(); new Curtain() { sid = "030101123456780303010003ABCD", name = "窗帘模块", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="on_off", max=2,min = 0, value_key= new List { "on","off","stop"} }, },// "curtain", lastState = "开", bus_Data = new BusData { SubnetID = 42, DeviceID = 7, LoopID = 1, }, }.SaveFunctionData(); new Curtain() { sid = "030101123456780303030011ABCD", name = "开合帘", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="on_off", max=100,min = 0, value_key= new List { "on","off","stop"} }, },//"curtaintype", lastState = "20%", bus_Data = new BusData { SubnetID = 42, DeviceID = 7, LoopID = 11, }, }.SaveFunctionData(); new Curtain() { sid = "030101123456780503040012ABCD", name = "卷帘", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="on_off", max=2,min = 0, value_key= new List { "on","off","stop"} }, new Trait { name="percent", max=100,min = 0, value_key= new List { "percent" } }, },// "rollingshutter", lastState = "20%", bus_Data = new BusData { SubnetID = 42, DeviceID = 17, LoopID = 1, }, }.SaveFunctionData(); new FloorHeating() { sid = "030101123456780404020004ABCD", name = "地热", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="on_off", max=1,min = 0, value_key= new List { "on","off"} }, new Trait { name="mode", max = 2,min =0,value_key = new List{ "normal", "day", "night","timer","away" } }, new Trait { name = "set_temperature", max = 32,min=5,value_key = new List{"up","down" } }, },// lastState = "自动 25°C", bus_Data = new BusData { SubnetID = 111, DeviceID = 12, LoopID = 1 } }.SaveFunctionData(); new Light() { sid = "030101123456780202010005ABCD", name = "吊灯", function = new List() { new Trait { name="on_off", max=100,min = 0, value_key= new List { "on","off"} }, },//"on_off", roomIdList = new List() { "0001" }, bus_Data = new BusData { SubnetID = 42, DeviceID = 6, LoopID = 1, }, }.SaveFunctionData(); new Light() { sid = "030101123456780202040006ABCD", name = "RGB灯", function = new List() { new Trait { name="brightness", max=100,min = 0, value_key= new List { "on","off"} }, new Trait { name="color", max=100,min = 0, value_key= new List { "255", "255", "255" } }, }, roomIdList = new List() { "0001" }, bus_Data = new BusData { SubnetID = 42, DeviceID = 4, LoopID = 1, }, }.SaveFunctionData(); new Fan() { sid = "030101123456781010020006ABCD", name = "风扇", function = new List() { new Trait { name="on_off", max=1,min = 0, value_key= new List { "on","off"} }, new Trait { name="percent", max=7,min = 0, value_key= new List { "percent" } }, }, roomIdList = new List() { "0001" }, bus_Data = new BusData { SubnetID = 142, DeviceID = 4, LoopID = 11, }, }.SaveFunctionData(); new TV() { sid = "030101123456781010020006ABCD", name = "电视", function = new List() { new Trait { name="on_off", max=1,min = 0, value_key= new List { "on","off"} }, }, roomIdList = new List() { "0001" }, bus_Data = new BusData { SubnetID = 142, DeviceID = 4, LoopID = 111, }, }.SaveFunctionData(); new SwitchSocket() { sid = "030101123456780101020006ABCD", name = "插座", function = new List() { new Trait { name="on_off", max=1,min = 0, value_key= new List { "on","off"} }, }, roomIdList = new List() { "0001" }, bus_Data = new BusData { SubnetID = 42, DeviceID = 6, LoopID = 1, }, }.SaveFunctionData(); new Sensor() { sid = "030101123456781005060006ABCD", name = "PM2.5", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="values", max=1,min = 0, value_key= new List { "22"} }, }, bus_Data = new BusData { SubnetID = 111, DeviceID = 15, LoopID = 1, }, }.SaveFunctionData(); new Sensor() { sid = "030101123456781005070006ABCD", name = "CO2", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="values", max=1,min = 0, value_key= new List { "1352"} }, }, bus_Data = new BusData { SubnetID = 111, DeviceID = 15, LoopID = 1, }, }.SaveFunctionData(); new Sensor() { sid = "030101123456781005020006ABCD", name = "温度", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="values", max=1,min = 0, value_key= new List { "28"} }, }, bus_Data = new BusData { SubnetID = 111, DeviceID = 15, LoopID = 1, }, }.SaveFunctionData(); new Sensor() { sid = "030101123456781005050006ABCD", name = "TVOC", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="values", max=1,min = 0, value_key= new List { "0.3"} }, }, bus_Data = new BusData { SubnetID = 111, DeviceID = 15, LoopID = 1, }, }.SaveFunctionData(); new Sensor() { sid = "030101123456781005030006ABCD", name = "湿度", roomIdList = new List() { "0001" }, function = new List() { new Trait { name="values", max=1,min = 0, value_key= new List { "15"} }, }, bus_Data = new BusData { SubnetID = 111, DeviceID = 15, LoopID = 1, }, }.SaveFunctionData(); DB_ResidenceData.residenceData.SaveResidenceData(); } Application.RunOnMainThread(() => { //跳转页面---- MainPage.GoUserPage(); }); } else { //2020-11-13 待确认 //获取住宅失败,重新标记为未登录状态 UserInfo.Current.lastTime = DateTime.MinValue; UserInfo.Current.SaveUserInfo(); //登录失败,请先添加住宅! Utlis.ShowAlertOnMainThread(Language.StringByID(StringId.FailedGetHomeList)); } } } catch (Exception ex) { MainPage.Log($"LoginPage : {ex.Message}"); } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }; return loginThread; } /// /// 调用登录接口登录 /// bool LoadMethod_Login() { var result = false; ResponsePackNew loginResult; if (logintMode == 0 || loginType == 1) { //调用登录接口 loginResult = pm.LoginByPassword(account, password); } else { //调用验证码登录接口 loginResult = pm.LoginValidCode(account, password); } if (loginResult.Code == StateCode.SUCCESS) { var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject(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; //获取用户信息 new Thread(() => { pm.GetUserInfo(); }) { IsBackground = true }.Start(); } //登录失败 else { //账号或者密码错误 Application.RunOnMainThread(() => { if (loginResult.Code == "10008") { //用户名或密码错误 btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); } else if (loginResult.Code == "10010") { //用户不存在 btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); } else if (loginResult.Code == "14") { btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); } waitPage.Hide(); }); IMessageCommon.Current.ShowErrorInfoAlter(loginResult.Code); } return result; } /// /// 获取住宅列表 /// 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; } //result = true; } else { // 提示错误 IMessageCommon.Current.ShowErrorInfoAlter(responsePack); } return result; } /// /// 加载注册界面 /// void LoadPage_RegisterPage() { btnRegister.MouseUpEventHandler += (sender, e) => { //回调事件 //Action callBackAction = () => //{ // Application.RunOnMainThread(() => // { // try // { // } // catch (Exception ex) // { // MainPage.Log($"login callBackAction : {ex.Message}"); // } // }); //}; //判断是否同意了隐私政策 if (CheckPrivacyPolicy() == false) return; var registerPage = new RegisterPage(); registerPage.Show(); registerPage.ShowDialog(); }; } /// /// 忘记密码 /// void LoadMethod_ForgetPassword() { btnForgetPassword.MouseUpEventHandler += (sender, e) => { Action callBackAction = (callBackPar_Action) => { Application.RunOnMainThread(() => { try { etAccount.Text = callBackPar_Action; } catch (Exception ex) { MainPage.Log($"login callBackAction : {ex.Message}"); } }); }; var forgetPasswordDialog = new ForgetPasswordPage(callBackAction); forgetPasswordDialog.Show(); forgetPasswordDialog.ShowDialog(); }; } /// /// 用户不存在 /// void ShowBtnAccountViewBottomLineError() { Application.RunOnMainThread(() => { //用户不存在 btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnAccountViewBottomLine.Height = Application.GetRealHeight(2); }); } } }