From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs |  180 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 159 insertions(+), 21 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs
index cbfe08e..72b2353 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,23 @@
             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
+                        this.SearchMemberInfo(qrCode);
+                    }, 
+                    Language.StringByID(R.MyInternationalizationString.uCancel),
+                    Language.StringByID(R.MyInternationalizationString.uFlashlamp),
+                    msg1);
                 });
                 //杈撳叆璐﹀彿
                 string msg2 = Language.StringByID(R.MyInternationalizationString.uInputAccount);
@@ -86,11 +104,13 @@
             bodyFrameLayout.AddChidren(frameBack);
 
             //鐢ㄦ埛鍥炬爣
-            var btnUserIcon = new PicViewControl(207, 207);
-            btnUserIcon.Y = Application.GetRealHeight(46);
+            var btnUserIcon = new ImageView();
+            btnUserIcon.Height = Application.GetMinRealAverage(207);
+            btnUserIcon.Width = Application.GetMinRealAverage(207);
             btnUserIcon.Radius = (uint)Application.GetMinRealAverage(207) / 2;
+            btnUserIcon.ImagePath = UserCenterResourse.UserInfo.UserIconFile;
+            btnUserIcon.Y = Application.GetRealHeight(46);
             btnUserIcon.Gravity = Gravity.CenterHorizontal;
-            btnUserIcon.UnSelectedImagePath = "Center/Admin.png";
             frameBack.AddChidren(btnUserIcon);
 
             //鏄电О
@@ -106,7 +126,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 +162,7 @@
             listView.Y = frameBack.Bottom;
             bodyFrameLayout.AddChidren(listView);
 
-            HdlThreadLogic.Current.RunMainInThread(() =>
+            HdlThreadLogic.Current.RunThread(() =>
             {
                 //鎬讳箣鍏堟竻绌哄叡浜枃浠跺す鍑嗘病閿�
                 HdlShardLogic.Current.ClearShardDirectory();
@@ -214,9 +234,11 @@
             {
                 return;
             }
-
-            //娣诲姞鎴愬憳鍒楄〃
-            this.AddMemberListRowByData();
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //娣诲姞鎴愬憳鍒楄〃
+                this.AddMemberListRowByData();
+            });
         }
 
         /// <summary>
@@ -238,6 +260,8 @@
             }
             //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
             listView.AdjustRealHeight(Application.GetRealHeight(23));
+            //鑾峰彇鎴愬憳澶村儚
+            this.GetMemberIcon();
         }
 
         #endregion
@@ -257,14 +281,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 = Application.GetMinRealAverage(115);
+            btnIcon.Width = Application.GetMinRealAverage(115);
+            btnIcon.Radius = (uint)Application.GetMinRealAverage(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 +321,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(async () =>
+            {
+                var pra = new AccountInfoPra();
+                foreach (var keys in dicMemberAccount.Keys)
+                {
+                    if (this.Parent == null)
+                    {
+                        return;
+                    }
+                    pra.Account = dicMemberAccount[keys];
+                    var result = await UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string>() { "NotSetAgain" });
+                    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 +406,49 @@
                 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 async void SearchMemberInfo(string accountId)
+        {
+            var pra = new AccountInfoPra();
+            pra.Account = accountId;
+            string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string>() { "AccountNoExists" });
+            if (result == null)
+            {
+                //寮傚父
+                return;
+            }
+            if (result == string.Empty)
+            {
+                //鎴愬憳涓嶅瓨鍦�
+                var form = new MemberNotEsixtForm();
+                form.AddForm();
+                return;
+            }
+
+            var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountInfoResult>(result);
+            infoResult.Account = accountId;
+
+            Application.RunOnMainThread(() =>
+            {
+                var form = new AddMemberInfoForm();
+                form.AddForm(infoResult);
+            });
         }
 
         #endregion
@@ -318,12 +462,6 @@
         {
             //娓呯┖鍏变韩鏂囦欢澶�
             HdlShardLogic.Current.ClearShardDirectory();
-
-            this.listView.RemoveAll();
-            listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(567);
-
-            //娣诲姞鎴愬憳鍒楄〃
-            this.AddMemberListRowByData();
 
             return 1;
         }

--
Gitblit v1.8.0