From 587c36e27131f2d028fcabc13b296a8de7470034 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期三, 08 一月 2020 08:59:19 +0800
Subject: [PATCH] 2019.1.8
---
ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs | 366 +++++++++++++++++++++++++++++++++++----------------
1 files changed, 248 insertions(+), 118 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs
index 31e639d..bf52d7e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs
@@ -7,18 +7,22 @@
/// <summary>
/// 鎴愬憳绠$悊鈽�
/// </summary>
- public class MemberListForm : UserCenterCommonForm
+ public class MemberListForm : EditorCommonForm
{
#region 鈻� 鍙橀噺澹版槑___________________________
/// <summary>
/// 鍒楄〃鎺т欢
/// </summary>
- private VerticalScrolViewLayout listView = null;
+ private VerticalListControl listView = null;
/// <summary>
- /// TopFrameLayout
+ /// 鎴愬憳澶村儚鎺т欢
/// </summary>
- private SpecialFrameLayout specialTopFrame = null;
+ private Dictionary<string, ImageView> dicIconControl = new Dictionary<string, ImageView>();
+ /// <summary>
+ /// 鎴愬憳鐨勮处鍙�(鑾峰彇澶村儚鐢�)
+ /// </summary>
+ private Dictionary<string, string> dicMemberAccount = new Dictionary<string, string>();
#endregion
@@ -32,29 +36,36 @@
//璁剧疆鏍囬淇℃伅
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.MenberManagement));
- //涓轰簡鑳藉鏄剧ず妯″潡鍥炬牱
- bodyFrameLayout.BackgroundColor = UserCenterColor.Current.TopFrameLayout;
-
- var titleIcon = new TopLayoutMostRightView();
+ var titleIcon = new MostRightIconControl(69, 69);
titleIcon.UnSelectedImagePath = "Item/Add.png";
- titleIcon.SelectedImagePath = "Item/AddSelected.png";
topFrameLayout.AddChidren(titleIcon);
- titleIcon.MouseUpEventHandler += (sender, e) =>
+ titleIcon.InitControl();
+ titleIcon.ButtonClickEvent += (sender, e) =>
{
- var menuContr = new TopRightMenuControl(this, 2);
+ var menuContr = new TopRightMenuControl(2, 2);
//鎵弿浜岀淮鐮�
string msg1 = Language.StringByID(R.MyInternationalizationString.uScanQRcode);
- menuContr.AddRowMenu(msg1, (obj) =>
+ menuContr.AddRowMenu(msg1, "Item/ScanQRcodeIcon.png", "Item/ScanQRcodeIconSelected.png", () =>
{
- var form = new AddMemberByIdForm();
- form.AddForm(form);
+ 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);
- menuContr.AddRowMenu(msg2, (obj) =>
+ menuContr.AddRowMenu(msg2, "Item/InputAccountIcon.png", "Item/InputAccountIconSelected.png", () =>
{
var form = new AddMemberByIdForm();
- form.AddForm(form);
+ form.AddForm();
});
};
@@ -68,14 +79,14 @@
/// </summary>
private void InitMiddleFrame()
{
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
+
//鍒濆鍖栫敤鎴峰浘鏍�
this.InitUserIconControl();
//鍒濆鍖栧垪琛ㄦ帶浠�
this.InitMemberListControl();
-
- //鎬讳箣鍏堟竻绌哄叡浜枃浠跺す鍑嗘病閿�
- HdlShardLogic.Current.ClearShardDirectory();
}
#endregion
@@ -87,33 +98,37 @@
/// </summary>
private void InitUserIconControl()
{
- this.specialTopFrame = new SpecialFrameLayout(400, 10);
- specialTopFrame.BackgroundColor = UserCenterColor.Current.BodyFrameLayout;
- bodyFrameLayout.AddChidren(specialTopFrame);
+ var frameBack = new FrameLayout();
+ frameBack.BackgroundColor = UserCenterColor.Current.White;
+ frameBack.Height = Application.GetRealHeight(438);
+ bodyFrameLayout.AddChidren(frameBack);
//鐢ㄦ埛鍥炬爣
- var btnUserIcon = new ProfilePhotoControl();
- btnUserIcon.Y = Application.GetRealHeight(40);
+ 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 = "Account/Admin.png";
- specialTopFrame.AddChidren(btnUserIcon);
-
- //韬唤
- var btnAuthority = new ViewNormalControl(specialTopFrame.Width);
- btnAuthority.TextAlignment = TextAlignment.Center;
- btnAuthority.Y = btnUserIcon.Bottom + Application.GetRealHeight(10);
- btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor;
- btnAuthority.Gravity = Gravity.CenterHorizontal;
- btnAuthority.Text = UserCenterResourse.UserInfo.AuthorityText;
- specialTopFrame.AddChidren(btnAuthority);
+ frameBack.AddChidren(btnUserIcon);
//鏄电О
- var btnName = new ViewNormalControl(800, true);
+ var btnName = new NormalViewControl(frameBack.Width, Application.GetRealHeight(60), false);
btnName.TextAlignment = TextAlignment.Center;
- btnName.Y = btnAuthority.Bottom + Application.GetRealHeight(10);
- btnName.Gravity = Gravity.CenterHorizontal;
+ btnName.Y = btnUserIcon.Bottom + Application.GetRealHeight(20);
+ btnName.TextSize = 16;
btnName.Text = UserCenterResourse.UserInfo.UserName; ;
- specialTopFrame.AddChidren(btnName, HeightAutoMode.IncreaseOnly);
+ frameBack.AddChidren(btnName);
+
+ //韬唤
+ var btnAuthority = new NormalViewControl(frameBack.Width, Application.GetRealHeight(55), false);
+ btnAuthority.TextAlignment = TextAlignment.Center;
+ btnAuthority.Y = btnName.Bottom + Application.GetRealHeight(10);
+ btnAuthority.TextSize = 12;
+ btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor;
+ btnAuthority.Text = UserCenterResourse.UserInfo.AuthorityText;
+ frameBack.AddChidren(btnAuthority);
}
#endregion
@@ -125,32 +140,35 @@
/// </summary>
private void InitMemberListControl()
{
- //鍒涘缓涓�涓狥rameLayout
- var frameLayout = new FrameLayout();
- frameLayout.Height = bodyFrameLayout.Height - specialTopFrame.Height - Application.GetRealHeight(50);
- frameLayout.BackgroundColor = UserCenterColor.Current.BodyFrameLayout;
- frameLayout.Y = this.specialTopFrame.Bottom + Application.GetRealHeight(50);
- bodyFrameLayout.AddChidren(frameLayout);
-
//鏍囬:鎴愬憳鍒楄〃
- var btnMenberTile = new ViewNormalControl(800, true);
+ var btnMenberTile = new NormalViewControl(800, 60, true);
btnMenberTile.X = ControlCommonResourse.XXLeft;
- btnMenberTile.Y = Application.GetRealHeight(20);
+ btnMenberTile.Y = Application.GetRealHeight(480);
+ btnMenberTile.TextColor = UserCenterColor.Current.TextColor1;
btnMenberTile.TextID = R.MyInternationalizationString.MenberList;
- frameLayout.AddChidren(btnMenberTile);
+ btnMenberTile.TextSize = 15;
+ bodyFrameLayout.AddChidren(btnMenberTile);
+
+ var frameBack = new FrameLayout();
+ frameBack.Y = btnMenberTile.Bottom + Application.GetRealHeight(23);
+ frameBack.Height = Application.GetRealHeight(11);
+ frameBack.BackgroundColor = UserCenterColor.Current.White;
+ bodyFrameLayout.AddChidren(frameBack);
//娣诲姞鍙互鍚戜笅婊氬姩鐨勬帶浠�
- listView = new VerticalScrolViewLayout();
- listView.Y = btnMenberTile.Bottom + Application.GetRealHeight(20);
- listView.Height = frameLayout.Height - btnMenberTile.Bottom - Application.GetRealHeight(20);
- frameLayout.AddChidren(listView);
+ listView = new VerticalListControl(12);
+ listView.Height = bodyFrameLayout.Height - frameBack.Bottom;
+ listView.BackgroundColor = UserCenterColor.Current.White;
+ listView.Y = frameBack.Bottom;
+ bodyFrameLayout.AddChidren(listView);
- new System.Threading.Thread(() =>
+ HdlThreadLogic.Current.RunThread(() =>
{
+ //鎬讳箣鍏堟竻绌哄叡浜枃浠跺す鍑嗘病閿�
+ HdlShardLogic.Current.ClearShardDirectory();
//鍒濆鍖栨垚鍛樺垪琛�
this.InitMemberList();
- })
- { IsBackground = true }.Start();
+ });
}
/// <summary>
@@ -162,7 +180,7 @@
this.ShowProgressBar();
var pra = new MemberListInfoPra();
- string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", pra);
+ string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
if (result == null)
{
//鍏抽棴杩涘害鏉�
@@ -181,7 +199,13 @@
{
//鍏抽棴杩涘害鏉�
this.CloseProgressBar(ShowReLoadMode.YES);
+ return;
}
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+
+ //鍏堟竻绌烘垚鍛樺垪琛ㄤ俊鎭�
+ UserCenterResourse.ListMemberInfo.Clear();
List<string> listCheck = new List<string>();
foreach (MemberInfoRes infoRes in listInfo)
@@ -190,18 +214,54 @@
|| infoRes.Account == UserCenterResourse.UserInfo.Phone
|| infoRes.Account == UserCenterResourse.UserInfo.Email)
{
+ //濡傛灉鏄畠鑷繁鐨勮瘽锛屼笉鏄剧ず
continue;
}
- listCheck.Add(infoRes.DistributedMark);
-
- Application.RunOnMainThread(() =>
+ if (UserCenterResourse.UserInfo.AuthorityNo != 1 && infoRes.AccountType != 0)
{
- //娣诲姞鎴愬憳琛�
- this.AddRowLayout(infoRes);
- });
+ //涓嶈兘澶熻幏鍙栨潈闄愮瓑绾ф瘮浠栭珮鐨�(涓讳汉鑷繁鍙互鏃犺杩欎釜鍒ゆ柇)
+ continue;
+ }
+
+ listCheck.Add(infoRes.DistributedMark);
+ //娣诲姞鎴愬憳淇℃伅鐨勭紦瀛�
+ UserCenterResourse.ListMemberInfo.Add(infoRes);
}
- //鍏抽棴杩涘害鏉�
- this.CloseProgressBar();
+ listInfo.Clear();
+ //淇濆瓨鎴愬憳淇℃伅鐨勭紦瀛樺埌鏈湴鏂囦欢
+ UserCenterLogic.SaveLocalMemberListInfo();
+ if (UserCenterResourse.ListMemberInfo.Count == 0)
+ {
+ return;
+ }
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //娣诲姞鎴愬憳鍒楄〃
+ this.AddMemberListRowByData();
+ });
+ }
+
+ /// <summary>
+ /// 娣诲姞鎴愬憳鍒楄〃
+ /// </summary>
+ private void AddMemberListRowByData()
+ {
+ if (this.Parent == null)
+ {
+ return;
+ }
+ var listNewInfo = UserCenterResourse.ListMemberInfo;
+
+ int count = listNewInfo.Count - 1;
+ for (int i = 0; i < listNewInfo.Count; i++)
+ {
+ //娣诲姞鎴愬憳琛�
+ this.AddRowLayout(listNewInfo[i], i != count);
+ }
+ //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
+ listView.AdjustRealHeight(Application.GetRealHeight(23));
+ //鑾峰彇鎴愬憳澶村儚
+ this.GetMemberIcon();
}
#endregion
@@ -212,52 +272,101 @@
/// 娣诲姞鎴愬憳琛�
/// </summary>
/// <param name="info">Info.</param>
- private void AddRowLayout(MemberInfoRes info)
+ /// <param name="addLine">addLine</param>
+ private void AddRowLayout(MemberInfoRes info, bool addLine)
{
- var rowlayout = new MemberRow();
- rowlayout.AccountId = info.Account;
+ var rowlayout = new FrameRowControl(listView.rowSpace / 2);
+ rowlayout.Height = Application.GetRealHeight(138);
+ rowlayout.MainKeys = info.Account;
listView.AddChidren(rowlayout);
//鎴愬憳澶村儚鍥炬爣
- var btnIcon = new IconViewControl();
- btnIcon.Radius = (uint)btnIcon.IconSize / 2;
+ string iconPath = System.IO.Path.Combine(UserCenterResourse.Option.UserPictruePath, info.DistributedMark + ".png");
+ var btnIcon = new ImageView();
btnIcon.X = ControlCommonResourse.XXLeft;
btnIcon.Gravity = Gravity.CenterVertical;
- btnIcon.UnSelectedImagePath = "Account/ProfilePhotoMember.png";
- btnIcon.SelectedImagePath = "Account/ProfilePhotoMemberSelected.png";
- rowlayout.AddChidren(btnIcon);
-
- //鎴愬憳鏄电О
- var btnName = new RowCenterView();
- btnName.Text = info.UserName;
- if (string.IsNullOrEmpty(info.UserName) == true)
+ btnIcon.Height = Application.GetMinRealAverage(115);
+ btnIcon.Width = Application.GetMinRealAverage(115);
+ btnIcon.Radius = (uint)Application.GetMinRealAverage(115) / 2;
+ if (System.IO.File.Exists(iconPath) == true)
{
- btnName.Text = info.Account;
- }
- rowlayout.AddChidren(btnName);
-
- //鏉冮檺
- var btnAuthority = new RowSecondRightTextView();
- btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor;
- if (info.AccountType == 1)
- {
- //绠$悊鍛�
- btnAuthority.TextID = R.MyInternationalizationString.Administrator;
+ btnIcon.ImagePath = iconPath;
}
else
{
- //鎴愬憳
- btnAuthority.TextID = R.MyInternationalizationString.uMember;
+ btnIcon.ImagePath = "Center/Admin.png";
+ this.dicIconControl[info.DistributedMark] = btnIcon;
+ this.dicMemberAccount[info.DistributedMark] = info.Account;
}
- rowlayout.AddChidren(btnAuthority);
+ 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);
+
+ if (addLine == true)
+ {
+ //搴曠嚎
+ rowlayout.AddBottomLine();
+ }
//鍙冲浘鏍�
- rowlayout.AddRightIconControl();
- rowlayout.MouseUpEvent += (sender, e) =>
+ rowlayout.AddRightArrow();
+ rowlayout.ButtonClickEvent += (sender, e) =>
{
var form = new MemberManagementForm();
- this.AddForm(form, info);
+ form.AddForm(info);
};
+ }
+
+ #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.Option.UserPictruePath, keys + ".png");
+ Shared.IO.FileUtils.WriteFileByBytes(iconPath, infoResult.HeadImage);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ dicIconControl[keys].ImageBytes = Shared.IO.FileUtils.ReadFile(iconPath);
+ });
+ }
+ }
+ });
}
#endregion
@@ -272,12 +381,12 @@
{
for (int i = 0; ; i++)
{
- var row = (MemberRow)listView.GetChildren(i);
+ var row = (FrameRowControl)listView.GetChildren(i);
if (row == null)
{
break;
}
- if (row.AccountId == accountId)
+ if (row.MainKeys == accountId)
{
row.RemoveFromParent();
break;
@@ -287,39 +396,60 @@
#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
+
#region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
/// <summary>
/// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
/// </summary>
- public override void FormActionAgainEvent()
+ public override int FormActionAgainEvent()
{
//娓呯┖鍏变韩鏂囦欢澶�
HdlShardLogic.Current.ClearShardDirectory();
this.listView.RemoveAll();
+ listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(567);
- new System.Threading.Thread(() =>
- {
- //鍒濆鍖栨垚鍛樺垪琛�
- this.InitMemberList();
- })
- { IsBackground = true }.Start();
- }
+ //娣诲姞鎴愬憳鍒楄〃
+ this.AddMemberListRowByData();
- #endregion
-
- #region 鈻� 缁撴瀯浣揰____________________________
-
- /// <summary>
- /// 鑷畾涔夋帶浠�
- /// </summary>
- private class MemberRow : StatuRowLayout
- {
- /// <summary>
- /// 璐﹀彿ID
- /// </summary>
- public string AccountId = string.Empty;
+ return 1;
}
#endregion
--
Gitblit v1.8.0