From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs |  207 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 173 insertions(+), 34 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs
index cbfe08e..3075b58 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs
@@ -15,6 +15,14 @@
         /// 鍒楄〃鎺т欢
         /// </summary>
         private VerticalListControl listView = null;
+        /// <summary>
+        /// 鎴愬憳澶村儚鎺т欢
+        /// </summary>
+        private Dictionary<string, ImageView> dicIconControl = new Dictionary<string, ImageView>();
+        /// <summary>
+        /// 鎴愬憳鐨勮处鍙�(鑾峰彇澶村儚鐢�)
+        /// </summary>
+        private Dictionary<string, string> dicMemberAccount = new Dictionary<string, string>();
 
         #endregion
 
@@ -34,13 +42,26 @@
             titleIcon.InitControl();
             titleIcon.ButtonClickEvent += (sender, e) =>
             {
-                var menuContr = new TopRightMenuControl(2, 449);
+                var menuContr = new TopRightMenuControl(2, 2);
                 //鎵弿浜岀淮鐮�
                 string msg1 = Language.StringByID(R.MyInternationalizationString.uScanQRcode);
                 menuContr.AddRowMenu(msg1, "Item/ScanQRcodeIcon.png", "Item/ScanQRcodeIconSelected.png", () =>
                 {
-                    var form = new AddMemberByIdForm();
-                    form.AddForm();
+                    QRCode.ScanQRcode((qrCode) =>
+                    {
+                        if (string.IsNullOrEmpty(qrCode) == true)
+                        {
+                            return;
+                        }
+                        //鎼滅储ID
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            this.SearchMemberInfo(qrCode);
+                        });
+                    }, 
+                    Language.StringByID(R.MyInternationalizationString.uCancel),
+                    Language.StringByID(R.MyInternationalizationString.uFlashlamp),
+                    msg1);
                 });
                 //杈撳叆璐﹀彿
                 string msg2 = Language.StringByID(R.MyInternationalizationString.uInputAccount);
@@ -86,11 +107,13 @@
             bodyFrameLayout.AddChidren(frameBack);
 
             //鐢ㄦ埛鍥炬爣
-            var btnUserIcon = new PicViewControl(207, 207);
+            var btnUserIcon = new ImageView();
+            btnUserIcon.Height = this.GetPictrueRealSize(207);
+            btnUserIcon.Width = this.GetPictrueRealSize(207);
+            btnUserIcon.Radius = (uint)this.GetPictrueRealSize(207) / 2;
+            btnUserIcon.ImagePath = UserCenterResourse.UserInfo.UserIconFile;
             btnUserIcon.Y = Application.GetRealHeight(46);
-            btnUserIcon.Radius = (uint)Application.GetMinRealAverage(207) / 2;
             btnUserIcon.Gravity = Gravity.CenterHorizontal;
-            btnUserIcon.UnSelectedImagePath = "Center/Admin.png";
             frameBack.AddChidren(btnUserIcon);
 
             //鏄电О
@@ -106,7 +129,7 @@
             btnAuthority.TextAlignment = TextAlignment.Center;
             btnAuthority.Y = btnName.Bottom + Application.GetRealHeight(10);
             btnAuthority.TextSize = 12;
-            btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor;
+            btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor1;
             btnAuthority.Text = UserCenterResourse.UserInfo.AuthorityText;
             frameBack.AddChidren(btnAuthority);
         }
@@ -142,7 +165,7 @@
             listView.Y = frameBack.Bottom;
             bodyFrameLayout.AddChidren(listView);
 
-            HdlThreadLogic.Current.RunMainInThread(() =>
+            HdlThreadLogic.Current.RunThread(() =>
             {
                 //鎬讳箣鍏堟竻绌哄叡浜枃浠跺す鍑嗘病閿�
                 HdlShardLogic.Current.ClearShardDirectory();
@@ -154,14 +177,14 @@
         /// <summary>
         /// 鍒濆鍖栨垚鍛樺垪琛�
         /// </summary>
-        private async void InitMemberList()
+        private void InitMemberList()
         {
             //寮�鍚繘搴︽潯
             this.ShowProgressBar();
 
             var pra = new MemberListInfoPra();
-            string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
-            if (result == null)
+            string result = UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
+            if (string.IsNullOrEmpty(result) == true)
             {
                 //鍏抽棴杩涘害鏉�
                 this.CloseProgressBar(ShowReLoadMode.YES);
@@ -184,10 +207,8 @@
             //鍏抽棴杩涘害鏉�
             this.CloseProgressBar();
 
-            //鍏堟竻绌烘垚鍛樺垪琛ㄤ俊鎭�
-            UserCenterResourse.ListMemberInfo.Clear();
-
             List<string> listCheck = new List<string>();
+            List<MemberInfoRes> listShowInfo = new List<MemberInfoRes>();
             foreach (MemberInfoRes infoRes in listInfo)
             {
                 if (listCheck.Contains(infoRes.DistributedMark) == true
@@ -205,30 +226,28 @@
 
                 listCheck.Add(infoRes.DistributedMark);
                 //娣诲姞鎴愬憳淇℃伅鐨勭紦瀛�
-                UserCenterResourse.ListMemberInfo.Add(infoRes);
+                listShowInfo.Add(infoRes);
             }
-            listInfo.Clear();
-            //淇濆瓨鎴愬憳淇℃伅鐨勭紦瀛樺埌鏈湴鏂囦欢
-            UserCenterLogic.SaveLocalMemberListInfo();
-            if (UserCenterResourse.ListMemberInfo.Count == 0)
+            if (listShowInfo.Count == 0)
             {
                 return;
             }
-
-            //娣诲姞鎴愬憳鍒楄〃
-            this.AddMemberListRowByData();
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //娣诲姞鎴愬憳鍒楄〃
+                this.AddMemberListRowByData(listShowInfo);
+            });
         }
 
         /// <summary>
         /// 娣诲姞鎴愬憳鍒楄〃
         /// </summary>
-        private void AddMemberListRowByData()
+        private void AddMemberListRowByData(List<MemberInfoRes> listNewInfo)
         {
             if (this.Parent == null)
             {
                 return;
             }
-            var listNewInfo = UserCenterResourse.ListMemberInfo;
 
             int count = listNewInfo.Count - 1;
             for (int i = 0; i < listNewInfo.Count; i++)
@@ -238,6 +257,8 @@
             }
             //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
             listView.AdjustRealHeight(Application.GetRealHeight(23));
+            //鑾峰彇鎴愬憳澶村儚
+            this.GetMemberIcon();
         }
 
         #endregion
@@ -257,14 +278,29 @@
             listView.AddChidren(rowlayout);
 
             //鎴愬憳澶村儚鍥炬爣
-            var btnIcon = rowlayout.AddLeftIcon(115);
-            btnIcon.Radius = (uint)btnIcon.IconSize / 2;
-            btnIcon.UnSelectedImagePath = "Center/Admin.png";
+            string iconPath = System.IO.Path.Combine(UserCenterResourse.AccountOption.UserPictruePath, info.DistributedMark + ".png");
+            var btnIcon = new ImageView();
+            btnIcon.X = ControlCommonResourse.XXLeft;
+            btnIcon.Gravity = Gravity.CenterVertical;
+            btnIcon.Height = this.GetPictrueRealSize(115);
+            btnIcon.Width = this.GetPictrueRealSize(115);
+            btnIcon.Radius = (uint)this.GetPictrueRealSize(115) / 2;
+            if (System.IO.File.Exists(iconPath) == true)
+            {
+                btnIcon.ImagePath = iconPath;
+            }
+            else
+            {
+                btnIcon.ImagePath = "Center/Admin.png";
+                this.dicIconControl[info.DistributedMark] = btnIcon;
+                this.dicMemberAccount[info.DistributedMark] = info.Account;
+            }
             rowlayout.AddChidren(btnIcon);
 
             //鎴愬憳鏄电О
             string memberName = string.IsNullOrEmpty(info.UserName) == true ? info.Account : info.UserName;
             var btnName = rowlayout.AddLeftCaption(memberName, 600, true);
+            btnName.X = ControlCommonResourse.XXLeft + btnIcon.Height + Application.GetRealWidth(35);
             btnName.TextSize = 15;
             rowlayout.AddChidren(btnName);
 
@@ -282,12 +318,77 @@
             };
         }
 
+        /// <summary>
+        /// 娣诲姞鎴愬憳琛�(澶栭儴璋冪敤)
+        /// </summary>
+        /// <param name="info"></param>
+        public void AddRowLayoutByOtherForm(MemberInfoRes info)
+        {
+            var myRow = listView.GetChildren(listView.ChildrenCount - 1);
+            if (myRow != null)
+            {
+                //鏈�鍚庝竴琛屽姞搴曠嚎
+                ((FrameRowControl)myRow).AddBottomLine();
+            }
+            this.AddRowLayout(info, false);
+            //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
+            listView.AdjustRealHeight(Application.GetRealHeight(23));
+        }
+
+        #endregion
+
+        #region 鈻� 鑾峰彇鎴愬憳澶村儚_______________________
+
+        /// <summary>
+        /// 鑾峰彇鎴愬憳澶村儚
+        /// </summary>
+        private void GetMemberIcon()
+        {
+            if (dicIconControl.Count == 0)
+            {
+                return;
+            }
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                var pra = new AccountInfoPra();
+                foreach (var keys in dicMemberAccount.Keys)
+                {
+                    if (this.Parent == null)
+                    {
+                        return;
+                    }
+                    pra.Account = dicMemberAccount[keys];
+                    var result = UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string> { "NotCheck" }, false);
+                    if (result == null)
+                    {
+                        continue;
+                    }
+                    var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResponsePack>(System.Text.Encoding.UTF8.GetString(result));
+                    if (revertObj == null || revertObj.ResponseData == null)
+                    {
+                        continue;
+                    }
+                    var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountInfoResult>(revertObj.ResponseData.ToString());
+                    if (infoResult.HeadImage != null)
+                    {
+                        //鍐欏叆澶村儚鍐呭
+                        string iconPath = System.IO.Path.Combine(UserCenterResourse.AccountOption.UserPictruePath, keys + ".png");
+                        Shared.IO.FileUtils.WriteFileByBytes(iconPath, infoResult.HeadImage);
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            dicIconControl[keys].ImageBytes = Shared.IO.FileUtils.ReadFile(iconPath);
+                        });
+                    }
+                }
+            });
+        }
+
         #endregion
 
         #region 鈻� 鍒犻櫎鎸囧畾琛宊________________________
 
         /// <summary>
-        /// 鍒犻櫎鎸囧畾琛�
+        /// 鍒犻櫎鎸囧畾琛�(澶栭儴璋冪敤)
         /// </summary>
         /// <param name="accountId"></param>
         public void DeleteRowByAccount(string accountId)
@@ -302,9 +403,53 @@
                 if (row.MainKeys == accountId)
                 {
                     row.RemoveFromParent();
+                    //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
+                    listView.AdjustRealHeight(Application.GetRealHeight(23));
+
                     break;
                 }
             }
+        }
+
+        #endregion
+
+        #region 鈻� 鎼滅储ID_____________________________
+
+        /// <summary>
+        /// 鎼滅储鎸囧畾ID鐨勪俊鎭�
+        /// </summary>
+        /// <param name="accountId">鎴愬憳ID</param>
+        /// <param name="txtMsg">淇℃伅鎺т欢</param>
+        private void SearchMemberInfo(string accountId)
+        {
+            var pra = new AccountInfoPra();
+            pra.Account = accountId;
+            var byteData = UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string>() { "AccountNoExists" });
+            if (byteData == null)
+            {
+                //寮傚父
+                return;
+            }
+            var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResponsePack>(System.Text.Encoding.UTF8.GetString(byteData));
+            if (revertObj.StateCode == "AccountNoExists")
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鎴愬憳涓嶅瓨鍦�
+                    var form = new MemberNotEsixtForm();
+                    form.AddForm(Language.StringByID(R.MyInternationalizationString.uMemberInformation));
+                });
+                return;
+            }
+
+            var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountInfoResult>(revertObj.ResponseData.ToString());
+            infoResult.Account = accountId;
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                var form = new AddMemberInfoForm();
+                form.AddForm(infoResult);
+            });
         }
 
         #endregion
@@ -318,12 +463,6 @@
         {
             //娓呯┖鍏变韩鏂囦欢澶�
             HdlShardLogic.Current.ClearShardDirectory();
-
-            this.listView.RemoveAll();
-            listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(567);
-
-            //娣诲姞鎴愬憳鍒楄〃
-            this.AddMemberListRowByData();
 
             return 1;
         }

--
Gitblit v1.8.0