From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期一, 14 十二月 2020 09:59:01 +0800 Subject: [PATCH] 请合并代码,完成晾衣架最终功能。 --- ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs | 463 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 463 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs new file mode 100755 index 0000000..faa609b --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs @@ -0,0 +1,463 @@ +锘縰sing Shared.Common; +using System; + +namespace Shared.Phone.UserCenter.UserMain +{ + /// <summary> + /// 涓汉淇℃伅鐢婚潰 + /// </summary> + public class UserInformationForm : EditorCommonForm + { + /// <summary> + /// 涓儴妗屽竷鎺т欢 + /// </summary> + private NormalFrameLayout frameMiddleBack = null; + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + public void ShowForm() + { + //璁颁綇瀹冨師鏉ョ殑鏄电О + UserCenterResourse.UserInfo.OldUserName = UserCenterResourse.UserInfo.UserName; + + //鍥犱负鍒殑鐢婚潰浼氳皟鐢ㄨ繖涓嚱鏁帮紝鐒跺悗鍒锋柊鐢婚潰 + this.ClearBodyFrame(); + + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPersonalInfo)); + + //鍒濆鍖栦笂閮ㄧ殑淇℃伅 + this.InitTopBodyFrame(); + + //鍒濆鍖栦腑閮ㄧ殑淇℃伅 + this.InitMiddleBodyFrame(); + + //鍒濆鍖栭��鍑鸿处鍙风殑FrameLayout + this.InitLogoutFrameLayout(); + } + + #endregion + + #region 鈻� 鍒濆鍖栦笂娈垫帶浠禵____________________ + + /// <summary> + /// 鍒濆鍖栦笂閮ㄧ殑淇℃伅 + /// </summary> + private void InitTopBodyFrame() + { + var specialTopFrame = new FrameLayout(); + specialTopFrame.Height = Application.GetRealHeight(340); + specialTopFrame.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(specialTopFrame); + + //鐢ㄦ埛鍥炬爣 + var btnUserIcon = new ImageView(); + btnUserIcon.Height = this.GetPictrueRealSize(251); + btnUserIcon.Width = this.GetPictrueRealSize(251); + btnUserIcon.Radius = (uint)this.GetPictrueRealSize(251) / 2; + btnUserIcon.Y = Application.GetRealHeight(46); + btnUserIcon.Gravity = Gravity.CenterHorizontal; + btnUserIcon.ImageBytes = Shared.IO.FileUtils.ReadFile(UserCenterResourse.UserInfo.UserIconFile); + specialTopFrame.AddChidren(btnUserIcon); + btnUserIcon.MouseUpEventHandler += (sender, e) => + { + //鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鑿滃崟 + this.ShowUserIconMenu(btnUserIcon); + }; + } + + #endregion + + #region 鈻� 鍒濆鍖栦腑娈垫帶浠禵____________________ + + /// <summary> + /// 鍒濆鍖栦腑閮ㄧ殑淇℃伅 + /// </summary> + private void InitMiddleBodyFrame() + { + if (this.frameMiddleBack == null) + { + frameMiddleBack = new NormalFrameLayout(); + frameMiddleBack.Y = Application.GetRealHeight(363); + frameMiddleBack.Height = Application.GetRealHeight(1008) - ControlCommonResourse.ListViewRowHeight - Application.GetRealHeight(12); + frameMiddleBack.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(frameMiddleBack); + } + else + { + frameMiddleBack.RemoveAll(); + } + + var listMidFrame = new FrameListControl(12); + listMidFrame.Y = Application.GetRealHeight(11); + listMidFrame.Height = Application.GetRealHeight(1008 - 11); + frameMiddleBack.AddChidren(listMidFrame); + + var rowName = new FrameRowControl(listMidFrame.rowSpace / 2); + //鍏抽棴鐐瑰嚮鐘舵�� + rowName.UseClickStatu = false; + listMidFrame.AddChidren(rowName); + //搴曠嚎 + var btnNameLine = rowName.AddBottomLine(); + //鍚嶇ОView + rowName.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uName), 350); + //鍚嶇О杈撳叆 + var txtName = new TextInputControl(700, true); + txtName.MaxByte = 36;//闄愬埗36涓瓧鑺� + txtName.UseFocusColor = true; + txtName.X = bodyFrameLayout.Width - Application.GetRealWidth(700) - ControlCommonResourse.XXLeft; + txtName.Gravity = Gravity.CenterVertical; + txtName.TextAlignment = TextAlignment.CenterRight; + txtName.Text = UserCenterResourse.UserInfo.UserName; + rowName.AddChidren(txtName, ChidrenBindMode.NotBind); + txtName.Y += listMidFrame.rowSpace / 2; + //杈撳叆缁撴潫浜嬩欢 + txtName.FinishInputEvent += (() => + { + //鏇存柊鐢ㄦ埛鍚� + this.SaveUserName(txtName, true); + }); + //杈撳叆鍊兼敼鍙樹簨浠�(2020.04.05:浠ュ墠閮藉畾姝昏鎸夊洖杞﹂敭鎵嶆洿鏂�,鐜板湪鍙堣鍚嶅瓧娌℃湁鍚屾 + //鎵�浠ユ墠鍑烘涓嬬瓥,娣诲姞杩欎釜浜嬩欢) + txtName.TextChangedEvent += (value) => + { + UserCenterResourse.UserInfo.UserName = value; + }; + //鍏夋爣鏀瑰彉浜嬩欢(2020.04.05:浠ュ墠閮藉畾姝昏鎸夊洖杞﹂敭鎵嶆洿鏂�,鐜板湪鍙堣鍚嶅瓧娌℃湁鍚屾 + //鎵�浠ユ墠鍑烘涓嬬瓥,娣诲姞杩欎釜浜嬩欢) + txtName.FoucsChanged += (sender, focusEvent) => + { + //鍏夋爣绂诲紑鏃�,鎵ц鍚嶅瓧淇敼 + if (focusEvent.Focus == false) + { + //鏇存柊鐢ㄦ埛鍚� + this.SaveUserName(txtName, false); + } + }; + + //鑱斿姩绾跨殑鐘舵�� + txtName.btnLine = btnNameLine; + + var rowQrCode = new FrameRowControl(listMidFrame.rowSpace / 2); + listMidFrame.AddChidren(rowQrCode); + //搴曠嚎 + rowQrCode.AddBottomLine(); + //浜岀淮鐮� + rowQrCode.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uQRCode), 350); + var btnQrCode = rowQrCode.AddMostRightEmptyIcon(92, 92); + btnQrCode.UnSelectedImagePath = "Item/QRCode.png"; + rowQrCode.ButtonClickEvent += (sender, e) => + { + var form = new QRCodeForm(); + form.AddForm(); + }; + + var rowEmail = new FrameRowControl(listMidFrame.rowSpace / 2); + listMidFrame.AddChidren(rowEmail); + //搴曠嚎 + rowEmail.AddBottomLine(); + //閭View + rowEmail.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uEmail), 350); + //娣诲姞鍚戝彸鍥炬爣 + rowEmail.AddRightArrow(); + //閭 + var btnEmail = rowEmail.AddMostRightView(UserCenterResourse.UserInfo.Email, 500); + if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Email) == true) + { + //鏈缃�,璇风粦瀹� + btnEmail.TextID = R.MyInternationalizationString.uNotSettionAndPleaseBind; + } + rowEmail.ButtonClickEvent += (sender, e) => + { + if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Email) == true) + { + var form = new Password.CheckNewEmailForm(); + form.AddForm(); + } + else + { + var form = new Password.CheckOldEmailForm(); + form.AddForm(); + } + }; + + var rowPhone = new FrameRowControl(listMidFrame.rowSpace / 2); + listMidFrame.AddChidren(rowPhone); + //搴曠嚎 + rowPhone.AddBottomLine(); + //鎵嬫満鍙稸iew + rowPhone.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uPhone), 350); + //娣诲姞鍚戝彸鍥炬爣 + rowPhone.AddRightArrow(); + //鎵嬫満鍙� + var btnPhone = rowPhone.AddMostRightView(UserCenterResourse.UserInfo.Phone, 500); + if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Phone) == true) + { + //鏈缃�,璇风粦瀹� + btnPhone.TextID = R.MyInternationalizationString.uNotSettionAndPleaseBind; + } + else + { + string phoneNum = UserCenterResourse.UserInfo.Phone; + if (phoneNum.Length >= 11) + { + phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 7, '*') + phoneNum.Substring(phoneNum.Length - 4, 4); + } + else if (phoneNum.Length >= 5) + { + //鎴栬杩欐槸鍥藉鐨勬墜鏈哄惂 + phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 5, '*') + phoneNum.Substring(phoneNum.Length - 2, 2); + } + btnPhone.Text = "+" + UserCenterResourse.UserInfo.AreaCode + " " + phoneNum; + } + rowPhone.ButtonClickEvent += (sender, e) => + { + if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Phone) == true) + { + var form = new Password.CheckNewPhoneForm(); + form.AddForm(); + } + else + { + var form = new Password.CheckOldPhoneForm(); + form.AddForm(); + } + }; + + + var rowOther = new FrameRowControl(listMidFrame.rowSpace / 2); + //listMidFrame.AddChidren(rowOther); + //绗笁鏂硅处鍙� + rowOther.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAuthenticatedOtherPartyAccount), 400); + //搴曠嚎 + rowOther.AddBottomLine(); + //娣诲姞鍚戝彸鍥炬爣 + rowOther.AddRightArrow(); + //寰俊銆丵Q + //var btnQQ = rowOther.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uWebChatAndQQ), 500); + var btnQQ = rowOther.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uWebChat), 500); + rowOther.ButtonClickEvent += (sender, e) => + { + var form = new OtherParty.OtherPartyAccountMenuForm(); + form.AddForm(); + }; + + var rowSysPsw = new FrameRowControl(listMidFrame.rowSpace / 2); + listMidFrame.AddChidren(rowSysPsw); + //娣诲姞搴曠嚎 + rowSysPsw.AddBottomLine(); + //绯荤粺瀵嗙爜 + rowSysPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSystemPassword), 350); + //娣诲姞鍚戝彸鍥炬爣 + rowSysPsw.AddRightArrow(); + //鍘讳慨鏀� + var btnPsw = rowSysPsw.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uGotoEditor), 350); + rowSysPsw.ButtonClickEvent += (sender, e) => + { + var form = new Password.EditorAccountPasswordForm(); + form.AddForm(); + }; + + var rowSecond = new FrameRowControl(listMidFrame.rowSpace / 2); + listMidFrame.AddChidren(rowSecond); + //浜屾瀹夊叏楠岃瘉 + rowSecond.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSecondAuthentication), 350); + //娣诲姞鍚戝彸鍥炬爣 + rowSecond.AddRightArrow(); + //瀵嗙爜銆佹墜鍔裤�佹寚绾� + var btnSecand = rowSecond.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uPasswordGestureFingerPrint), 400); + rowSecond.ButtonClickEvent += (sender, e) => + { + var form = new SecondAuthenticationForm(); + form.AddForm(); + }; + } + #endregion + + #region 鈻� 鍒濆鍖栦笅娈垫帶浠禵____________________ + + /// <summary> + /// 鍒濆鍖栭��鍑鸿处鍙风殑FrameLayout + /// </summary> + private void InitLogoutFrameLayout() + { + var specialFrame = new FrameLayout(); + specialFrame.Height = ControlCommonResourse.ListViewRowHeight; + specialFrame.Y = Application.GetRealHeight(1394) - ControlCommonResourse.ListViewRowHeight - Application.GetRealHeight(12); + specialFrame.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(specialFrame); + + //閫�鍑虹櫥闄� + var btnLogout = new NormalClickButton(specialFrame.Width, specialFrame.Height); + btnLogout.clickStatuColor = 0xfffbfbfb; + btnLogout.TextID = R.MyInternationalizationString.uLogoutAccount; + btnLogout.TextColor = 0xff666666; + btnLogout.BackgroundColor = UserCenterColor.Current.White; + specialFrame.AddChidren(btnLogout); + + btnLogout.ButtonClickEvent += (sender, e) => + { + //纭畾閫�鍑哄綋鍓嶈处鍙凤紵 + string msg = Language.StringByID(R.MyInternationalizationString.uLogoutAccountMsg); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //閫�鍑鸿处鍙� + UserCenterLogic.ReLoginAgain(Common.Config.Instance.Account); + }); + }; + } + + #endregion + + #region 鈻� 鏇存柊鐢ㄦ埛鍚峗________________________ + + /// <summary> + /// 鏇存柊鐢ㄦ埛鍚� + /// </summary> + /// <param name="txtName"></param> + private void SaveUserName(TextInputControl txtName, bool showMsg) + { + if (UserCenterResourse.UserInfo.UserName == string.Empty) + { + //鎶婂悕绉拌繕鍘熷洖鍘� + txtName.Text = UserCenterResourse.UserInfo.OldUserName; + UserCenterResourse.UserInfo.UserName = UserCenterResourse.UserInfo.OldUserName; + return; + } + if (UserCenterResourse.UserInfo.OldUserName == UserCenterResourse.UserInfo.UserName) + { + //鏃犻渶淇敼 + return; + } + var pra = new SaveUserNamePra(); + pra.UserName = UserCenterResourse.UserInfo.UserName; + + bool result = UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UpdateUserName", false, pra); + if (result == false) + { + return; + } + + if (showMsg == true) + { + //鐢ㄦ埛鍚嶇О淇敼鎴愬姛! + string msg = Language.StringByID(R.MyInternationalizationString.uUserNameSaveSuccess); + this.ShowMassage(ShowMsgType.Tip, msg); + } + + UserCenterResourse.UserInfo.OldUserName = UserCenterResourse.UserInfo.UserName; + } + + #endregion + + #region 鈻� 鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鑿滃崟_______________ + + /// <summary> + /// 鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鑿滃崟 + /// </summary> + /// <param name="btnUser"></param> + private void ShowUserIconMenu(ImageView btnUser) + { + var menuContr = new BottomMenuSelectForm(); + menuContr.AddForm(2); + //鎷嶇収 + menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uTakePictrue), () => + { + //閫氳繃鐩告満鎷嶇収瑁佸壀 + CropImage.TakePicture((imagePath) => + { + if (string.IsNullOrEmpty(imagePath) == false) + { + //绉诲姩鐢ㄦ埛澶村儚鏂囦欢 + if (this.MoveUserIconFile(imagePath) == true) + { + //涓婁紶鐢ㄦ埛澶村儚鏂囦欢 + this.UpLoadUserIconFile(btnUser, UserCenterResourse.UserInfo.UserIconFile); + } + } + }, "HdlPicture"); + }); + //浠庣浉鍐屼腑閫夋嫨 + menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uGetPictrueFromAlbum), () => + { + //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀 + CropImage.SelectPicture((imagePath) => + { + if (string.IsNullOrEmpty(imagePath) == false) + { + //绉诲姩鐢ㄦ埛澶村儚鏂囦欢 + if (this.MoveUserIconFile(imagePath) == true) + { + //涓婁紶鐢ㄦ埛澶村儚鏂囦欢 + this.UpLoadUserIconFile(btnUser, UserCenterResourse.UserInfo.UserIconFile); + } + } + }, "HdlPicture"); + }); + } + + /// <summary> + /// 涓婁紶鐢ㄦ埛澶村儚鏂囦欢 + /// </summary> + /// <param name="btnUser"></param> + /// <param name="imagePath"></param> + private void UpLoadUserIconFile(ImageView btnUser, string imagePath) + { + var pra = new { HeadImage = Shared.IO.FileUtils.ReadFile(imagePath) }; + var result = UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UpdateHeadImage", false, pra); + if (result == true) + { + UserCenterResourse.UserInfo.UserIconFileChanged = true; + btnUser.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); + } + } + + /// <summary> + /// 绉诲姩鐢ㄦ埛澶村儚鏂囦欢 + /// </summary> + /// <param name="imagePath"></param> + /// <returns></returns> + private bool MoveUserIconFile(string imagePath) + { + try + { + if (System.IO.File.Exists(UserCenterResourse.UserInfo.UserIconFile) == true) + { + System.IO.File.Delete(UserCenterResourse.UserInfo.UserIconFile); + } + //绉诲姩鏂囦欢 + System.IO.File.Move(imagePath, UserCenterResourse.UserInfo.UserIconFile); + return true; + } + catch (Exception ex) + { + //鍑虹幇鏈煡閿欒 + var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError)); + alert.Show(); + //Log + HdlLogLogic.Current.WriteLog(ex); + return false; + } + } + + #endregion + + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + + /// <summary> + /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� + /// </summary> + public override int FormActionAgainEvent() + { + //鍒濆鍖栦腑閮ㄧ殑淇℃伅 + this.InitMiddleBodyFrame(); + + return 1; + } + + #endregion + } +} -- Gitblit v1.8.0