From c1de48884fa145a16a0f8bcee93274dcfaa0ff82 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 07 五月 2020 10:40:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-2020xm --- ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs | 474 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 474 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs new file mode 100755 index 0000000..658ee39 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs @@ -0,0 +1,474 @@ +锘縰sing System; +using System.Collections.Generic; + +namespace Shared.Phone.UserCenter.Member +{ + /// <summary> + /// 鎴愬憳淇℃伅绠$悊 + /// </summary> + public class MemberManagementForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 鎴愬憳鐨勪俊鎭� + /// </summary> + private MemberInfoRes memberInfo = null; + /// <summary> + /// 绠$悊鍛樻潈闄愬浘鏍囨帶浠� + /// </summary> + private MostRightIconControl btnTopIcon = null; + /// <summary> + /// 鏉冮檺鐨勭炕璇戝悕鎺т欢 + /// </summary> + private NormalViewControl btnAuthority = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + /// <param name="info">鎴愬憳淇℃伅</param> + public void ShowForm(MemberInfoRes info) + { + this.memberInfo = info; + + //璁剧疆鏍囬淇℃伅 + string title = string.IsNullOrEmpty(info.UserName) == true ? info.Account : info.UserName; + base.SetTitleText(title); + + //鍒濆鍖栧彸涓婅鐨勫浘鏍� + this.InitTopRightIcon(); + + //鍒濆鍖栦腑閮ㄦ帶浠� + this.InitMiddleFrame(); + } + + /// <summary> + /// 鍒濆鍖栧彸涓婅鐨勫浘鏍� + /// </summary> + private void InitTopRightIcon() + { + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + return; + } + //绠$悊鍛樻潈闄愬浘鏍� + btnTopIcon = new MostRightIconControl(69, 69); + if (memberInfo.AccountType == 1) + { + btnTopIcon.UnSelectedImagePath = "Item/HadAuthority.png"; + } + else + { + btnTopIcon.UnSelectedImagePath = "Item/NotAuthority.png"; + } + topFrameLayout.AddChidren(btnTopIcon); + btnTopIcon.InitControl(); + btnTopIcon.ButtonClickEvent += (sender, e) => + { + //纭畾鍙栨秷銆寋0}銆嶇鐞嗗憳鏉冮檺锛� + string msg = Language.StringByID(R.MyInternationalizationString.uDownSubAccountLevel); + if (memberInfo.AccountType != 1) + { + //纭畾鎺堟潈銆寋0}銆嶆垚涓虹鐞嗗憳? + msg = Language.StringByID(R.MyInternationalizationString.uUpSubAccountLevel); + } + msg = msg.Replace("{0}", string.IsNullOrEmpty(memberInfo.UserName) == true ? memberInfo.Account : memberInfo.UserName); + + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //浜屾瀹夊叏楠岃瘉,濡傛灉娌℃湁璁剧疆鏈�,鐩存帴璺宠繃楠岃瘉 + HdlCheckLogic.Current.CheckSecondarySecurity( + () => { this.UpOrDownSubAccountLevel(); }, + () => { this.UpOrDownSubAccountLevel(); }); + }); + }; + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄦ帶浠� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + //鍒濆鍖栫敤鎴峰浘鏍� + this.InitMenberIconControl(); + + //鍒濆鍖栦俊鎭垪琛� + this.InitInfoList(); + } + + /// <summary> + /// 鍒濆鍖栫敤鎴峰浘鏍� + /// </summary> + private void InitMenberIconControl() + { + var frame = new FrameLayout(); + frame.Height = Application.GetRealHeight(372); + frame.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(frame); + + //鐢ㄦ埛鍥炬爣 + string iconPath = System.IO.Path.Combine(UserCenterResourse.AccountOption.UserPictruePath, memberInfo.DistributedMark + ".png"); + var btnUserIcon = new ImageView(); + btnUserIcon.Height = this.GetPictrueRealSize(207); + btnUserIcon.Width = this.GetPictrueRealSize(207); + btnUserIcon.Radius = (uint)this.GetPictrueRealSize(207) / 2; + if (System.IO.File.Exists(iconPath) == true) + { + btnUserIcon.ImageBytes = Shared.IO.FileUtils.ReadFile(iconPath); + } + else + { + btnUserIcon.ImagePath = "Center/Admin.png"; + } + btnUserIcon.Y = Application.GetRealHeight(45); + btnUserIcon.Gravity = Gravity.CenterHorizontal; + frame.AddChidren(btnUserIcon); + //鑾峰彇鎴愬憳澶村儚 + this.GetMemberIcon(btnUserIcon); + + //鏉冮檺 + btnAuthority = new NormalViewControl(800, 50, true); + btnAuthority.TextAlignment = TextAlignment.Center; + btnAuthority.TextSize = 12; + btnAuthority.Y = btnUserIcon.Bottom + Application.GetRealHeight(23); + btnAuthority.Gravity = Gravity.CenterHorizontal; + btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor1; + btnAuthority.TextID = R.MyInternationalizationString.uMember; + if (memberInfo.AccountType == 1) + { + //鎷ユ湁绠$悊鍛樻潈闄� + btnAuthority.TextID = R.MyInternationalizationString.uMemberHadActionAuthority; + } + frame.AddChidren(btnAuthority); + } + + #endregion + + #region 鈻� 鍒濆鍖栦俊鎭垪琛╛____________________ + + /// <summary> + /// 鍒濆鍖栦俊鎭垪琛� + /// </summary> + private void InitInfoList() + { + //鏍囬:鎴愬憳鏉冮檺 + var btnMenberTile = new NormalViewControl(800, 60, true); + btnMenberTile.X = ControlCommonResourse.XXLeft; + btnMenberTile.Y = Application.GetRealHeight(418); + btnMenberTile.TextColor = UserCenterColor.Current.TextColor2; + btnMenberTile.TextID = R.MyInternationalizationString.MenberAuthority; + btnMenberTile.TextSize = 15; + bodyFrameLayout.AddChidren(btnMenberTile); + + var frame = new FrameListControl(); + frame.Height = Application.GetRealHeight(311); + frame.BackgroundColor = UserCenterColor.Current.White; + frame.Y = Application.GetRealHeight(501); + bodyFrameLayout.AddChidren(frame); + + //濉炰竴涓┖鐧界殑杩涘幓鍗犵┖闂� + var rowTemp = new FrameRowControl(); + rowTemp.UseClickStatu = false; + rowTemp.Height = Application.GetRealHeight(23) - frame.rowSpace; + frame.AddChidren(rowTemp); + + //娣诲姞杩滅▼鎿嶄綔琛� + var rowRemote = new FrameRowControl(frame.rowSpace / 2); + rowRemote.UseClickStatu = false; + frame.AddChidren(rowRemote); + this.AddRemoteRow(rowRemote); + + //娣诲姞宸插叡浜唴瀹硅 + var rowShard = new FrameRowControl(frame.rowSpace / 2); + frame.AddChidren(rowShard); + this.AddShardContentRow(rowShard); + + //涓�鏃︾Щ闄よ瀹跺涵鎴愬憳锛屼粬/濂瑰皢鏃犳硶浣跨敤璇ョ綉鍏充笅鎵�缁戝畾鐨勮澶� + var btnNote1 = new NormalViewControl(613, 100, true); + btnNote1.X = Application.GetRealWidth(248); + btnNote1.Y = Application.GetRealHeight(1327); + btnNote1.TextSize = 12; + btnNote1.TextID = R.MyInternationalizationString.RemoveMenberAndDonotUserBindGatewayDevice; + btnNote1.IsMoreLines = true; + btnNote1.TextColor = UserCenterColor.Current.TextGrayColor1; + btnNote1.TextAlignment = TextAlignment.Center; + bodyFrameLayout.AddChidren(btnNote1); + + var btnIcon = new IconViewControl(58); + btnIcon.X = Application.GetRealWidth(167); + btnIcon.Y = btnNote1.Y; + btnIcon.UnSelectedImagePath = "Item/Tips.png"; + bodyFrameLayout.AddChidren(btnIcon); + + //娣诲姞绉婚櫎鎸夐挳 + var btnDelete = new BottomClickButton(); + btnDelete.TextID = R.MyInternationalizationString.RemoveBotton; + btnDelete.BackgroundColor = 0xfff75858; + bodyFrameLayout.AddChidren(btnDelete); + btnDelete.ButtonClickEvent += (sender, e) => + { + //纭畾瑕佺Щ闄よ瀹跺涵鎴愬憳鍚楋紵 + string msg = Language.StringByID(R.MyInternationalizationString.uConfirmRemoveMember); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //鍒犻櫎瀛愯处鍙� + this.DeleteSubAccount(); + }); + }; + } + + #endregion + + #region 鈻� 杩滅▼鎿嶄綔琛宊________________________ + + /// <summary> + /// 娣诲姞杩滅▼鎿嶄綔琛� + /// </summary> + /// <param name="row">Row.</param> + private void AddRemoteRow(FrameRowControl row) + { + //鍥炬爣 + var btnIcon = row.AddLeftIcon(81); + btnIcon.UnSelectedImagePath = "Item/Remote.png"; + + //鏂囧瓧:杩滅▼鎿嶄綔 + var btnName = row.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.RemoteManipulation), 500); + btnName.TextID = R.MyInternationalizationString.RemoteManipulation; + btnName.TextSize = 15; + + //寮�鍏� + var btnSwitch = row.AddMostRightSwitchIcon(); + if (this.memberInfo.IsAllowRemoteCtrl == true) + { + btnSwitch.IsSelected = true; + } + btnSwitch.ButtonClickEvent += (sender, e) => + { + HdlThreadLogic.Current.RunThread(async () => + { + var pra = new + { + HouseDistributedMark = Common.Config.Instance.Home.Id, + DistributedMark = this.memberInfo.DistributedMark, + IsAllowRemoteCtrl = !btnSwitch.IsSelected + }; + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + var result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/ChangeSubAccountIsAllowRemoteCtrl", false, pra); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + + if (result == false) + { + return; + } + this.memberInfo.IsAllowRemoteCtrl = !btnSwitch.IsSelected; + + Application.RunOnMainThread(() => + { + btnSwitch.IsSelected = !btnSwitch.IsSelected; + }); + }); + + }; + //搴曠嚎 + row.AddBottomLine(); + } + + #endregion + + #region 鈻� 宸插叡浜唴瀹硅_______________________ + + /// <summary> + /// 娣诲姞宸插叡浜唴瀹硅 + /// </summary> + /// <param name="row">Row.</param> + private void AddShardContentRow(FrameRowControl row) + { + //鍥炬爣 + var btnIcon = row.AddLeftIcon(81); + btnIcon.UnSelectedImagePath = "Item/ShardMenu.png"; + + //鍏变韩 + var btnName = row.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uShared2), 500); + btnName.TextID = R.MyInternationalizationString.uShared2; + btnName.TextSize = 15; + + //鍙冲浘鏍� + row.AddRightArrow(); + + var memberShardInfo = new MemberShardInfoData(); + row.ButtonClickEvent += (sender, e) => + { + var form = new SharedContent.LookSharedListRoomForm(); + form.AddForm(memberInfo, memberShardInfo); + }; + } + + #endregion + + #region 鈻� 鍗囩骇鎴栬�呴檷绾у瓙璐﹀彿_________________ + + /// <summary> + /// 鍗囩骇鎴栬�呴檷绾у瓙璐﹀彿 + /// </summary> + public async void UpOrDownSubAccountLevel() + { + //寮�鍚繘搴︽潯 + this.ShowProgressBar(); + + var pra = new UpOrDownLevelPra(); + pra.DistributedMark = memberInfo.DistributedMark; + + bool result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UpSubAccount", false, pra); + if (result == false) + { + this.CloseProgressBar(); + return; + } + this.CloseProgressBar(); + + //鍙樻洿鏉冮檺 + memberInfo.AccountType = memberInfo.AccountType == 1 ? 0 : 1; + + Application.RunOnMainThread(() => + { + if (this.Parent == null) + { + return; + } + //鍙樻洿鏉冮檺鍥炬爣 + if (memberInfo.AccountType == 1) + { + btnTopIcon.UnSelectedImagePath = "Item/HadAuthority.png"; + } + else + { + btnTopIcon.UnSelectedImagePath = "Item/NotAuthority.png"; + } + //鍙樻洿鏉冮檺鏂囧瓧 + btnAuthority.TextID = memberInfo.AccountType == 1 ? R.MyInternationalizationString.uMemberHadActionAuthority : R.MyInternationalizationString.uMember; + + //鎵撳紑鏄剧ず鎴愬姛鐨勭敾闈� + var form = new SubAccountLevelUpSuccessForm(); + form.AddForm(memberInfo); + }); + } + + #endregion + + #region 鈻� 鍒犻櫎瀛愯处鍙穇________________________ + + /// <summary> + /// 鍒犻櫎瀛愯处鍙� + /// </summary> + private async void DeleteSubAccount() + { + //寮�鍚繘搴︽潯 + this.ShowProgressBar(); + + var pra = new DeleteSubAccountPra(); + pra.SubAccount = memberInfo.SubAccountDistributedMark; + + bool result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/DeletedSubAccount", false, pra); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + + if (result == false) + { + return; + } + + //绉婚櫎缂撳瓨 + UserCenterResourse.ListMemberInfo.RemoveAll((obj) => + { + if (obj.SubAccountDistributedMark == memberInfo.SubAccountDistributedMark) + { + return true; + } + return false; + }); + UserCenterLogic.SaveLocalMemberListInfo(); + + //浠庢垚鍛樹竴瑙堢敾闈㈢Щ闄� + this.LoadFormMethodByName("MemberListForm", "DeleteRowByAccount", memberInfo.Account); + //鑷韩鍏抽棴 + this.CloseForm(); + } + + #endregion + + #region 鈻� 鑾峰彇鎴愬憳澶村儚_______________________ + + /// <summary> + /// 鑾峰彇鎴愬憳澶村儚 + /// </summary> + private void GetMemberIcon(ImageView btnUserIcon) + { + HdlThreadLogic.Current.RunThread(async () => + { + var pra = new AccountInfoPra(); + pra.Account = memberInfo.Account; + var result = await UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string>() { "NotSetAgain" }); + if (result == null) + { + return; + } + var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResponsePack>(System.Text.Encoding.UTF8.GetString(result)); + if (revertObj == null || revertObj.ResponseData == null) + { + return; + } + var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountInfoResult>(revertObj.ResponseData.ToString()); + if (infoResult.HeadImage != null) + { + //鍐欏叆澶村儚鍐呭 + string iconPath = System.IO.Path.Combine(UserCenterResourse.AccountOption.UserPictruePath, memberInfo.DistributedMark + ".png"); + Shared.IO.FileUtils.WriteFileByBytes(iconPath, infoResult.HeadImage); + HdlThreadLogic.Current.RunMain(() => + { + btnUserIcon.ImageBytes = Shared.IO.FileUtils.ReadFile(iconPath); + }); + } + }); + } + + #endregion + + #region 鈻� 缁撴瀯浣揰____________________________ + + /// <summary> + /// 鍗囩骇鎴栬�呴檷绾у瓙璐﹀彿鐨勫惎鍔ㄥ弬鏁� + /// </summary> + private class UpOrDownLevelPra : IfacePraCommon + { + /// <summary> + /// 閫氳繃銆婁綇瀹呯殑Guid鏌ヨ浣忓畢涓嬮潰鐨勫瓙璐﹀彿銆嬫帴鍙f椂锛岃繑鍥炵殑DistributedMark瀛楁 + /// </summary> + public string DistributedMark = string.Empty; + } + + /// <summary> + /// 鍒犻櫎瀛愯处鍙风殑鍚姩鍙傛暟 + /// </summary> + private class DeleteSubAccountPra : IfacePraCommon + { + /// <summary> + /// 閫氳繃銆婁綇瀹呯殑Guid鏌ヨ浣忓畢涓嬮潰鐨勫瓙璐﹀彿銆嬫帴鍙f椂锛岃繑鍥炵殑DistributedMark瀛楁 + /// </summary> + public string SubAccount = string.Empty; + /// <summary> + /// HouseDistributedMark + /// </summary> + public string HouseDistributedMark = Common.Config.Instance.HomeId; + } + #endregion + } +} -- Gitblit v1.8.0