using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Shared.Phone.UserCenter.Member
{
///
/// 成员管理★
///
public class MemberListForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 列表控件
///
private VerticalListControl listView = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
public void ShowForm()
{
//设置标题信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.MenberManagement));
var titleIcon = new MostRightIconControl(69, 69);
titleIcon.UnSelectedImagePath = "Item/Add.png";
topFrameLayout.AddChidren(titleIcon);
titleIcon.InitControl();
titleIcon.ButtonClickEvent += (sender, e) =>
{
var menuContr = new TopRightMenuControl(this, 2);
//扫描二维码
string msg1 = Language.StringByID(R.MyInternationalizationString.uScanQRcode);
menuContr.AddRowMenu(msg1,"","", () =>
{
var form = new AddMemberByIdForm();
form.AddForm();
});
//输入账号
string msg2 = Language.StringByID(R.MyInternationalizationString.uInputAccount);
menuContr.AddRowMenu(msg2,"","", () =>
{
var form = new AddMemberByIdForm();
form.AddForm();
});
};
//初始化中部控件
this.InitMiddleFrame();
}
///
/// 初始化中部控件
///
private void InitMiddleFrame()
{
//清空bodyFrame
this.ClearBodyFrame();
//初始化用户图标
this.InitUserIconControl();
//初始化列表控件
this.InitMemberListControl();
//总之先清空共享文件夹准没错
HdlShardLogic.Current.ClearShardDirectory();
}
#endregion
#region ■ 初始化用户图标_____________________
///
/// 初始化用户图标
///
private void InitUserIconControl()
{
var frameBack = new FrameLayout();
frameBack.BackgroundColor = UserCenterColor.Current.White;
frameBack.Height = Application.GetRealHeight(438);
bodyFrameLayout.AddChidren(frameBack);
//用户图标
var btnUserIcon = new PicViewControl(207, 207);
btnUserIcon.Y = Application.GetRealHeight(46);
btnUserIcon.Radius = (uint)Application.GetMinRealAverage(207) / 2;
btnUserIcon.Gravity = Gravity.CenterHorizontal;
btnUserIcon.UnSelectedImagePath = "Center/Admin.png";
frameBack.AddChidren(btnUserIcon);
//昵称
var btnName = new NormalViewControl(frameBack.Width, Application.GetRealHeight(60), false);
btnName.TextAlignment = TextAlignment.Center;
btnName.Y = btnUserIcon.Bottom + Application.GetRealHeight(20);
btnName.TextSize = 16;
btnName.Text = UserCenterResourse.UserInfo.UserName; ;
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
#region ■ 初始化成员列表_____________________
///
/// 初始化成员列表
///
private void InitMemberListControl()
{
//标题:成员列表
var btnMenberTile = new NormalViewControl(800, 60, true);
btnMenberTile.X = ControlCommonResourse.XXLeft;
btnMenberTile.Y = Application.GetRealHeight(480);
btnMenberTile.TextColor = UserCenterColor.Current.TextColor1;
btnMenberTile.TextID = R.MyInternationalizationString.MenberList;
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 VerticalListControl(12);
listView.Height = bodyFrameLayout.Height - frameBack.Bottom;
listView.BackgroundColor = UserCenterColor.Current.White;
listView.Y = frameBack.Bottom;
bodyFrameLayout.AddChidren(listView);
//初始化成员列表
this.InitMemberList();
}
///
/// 初始化成员列表
///
private async void InitMemberList()
{
//开启进度条
this.ShowProgressBar();
var pra = new MemberListInfoPra();
string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
if (result == null)
{
//关闭进度条
this.CloseProgressBar(ShowReLoadMode.YES);
return;
}
if (this.Parent == null)
{
//关闭进度条
this.CloseProgressBar();
return;
}
List listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject>(result);
if (listInfo == null)
{
//关闭进度条
this.CloseProgressBar(ShowReLoadMode.YES);
return;
}
//关闭进度条
this.CloseProgressBar();
//先清空成员列表信息
UserCenterResourse.ListMemberInfo.Clear();
List listCheck = new List();
foreach (MemberInfoRes infoRes in listInfo)
{
if (listCheck.Contains(infoRes.DistributedMark) == true
|| infoRes.Account == UserCenterResourse.UserInfo.Phone
|| infoRes.Account == UserCenterResourse.UserInfo.Email
|| infoRes.AccountType != 0)
{
//如果是它自己的话,或者权限等级比他高的,不显示
continue;
}
listCheck.Add(infoRes.DistributedMark);
//添加成员信息的缓存
UserCenterResourse.ListMemberInfo.Add(infoRes);
}
listInfo.Clear();
//保存成员信息的缓存到本地文件
UserCenterLogic.SaveLocalMemberListInfo();
if (UserCenterResourse.ListMemberInfo.Count == 0)
{
return;
}
//添加成员列表
this.AddMemberListRowByData();
}
///
/// 添加成员列表
///
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));
}
#endregion
#region ■ 添加成员行_________________________
///
/// 添加成员行
///
/// Info.
/// addLine
private void AddRowLayout(MemberInfoRes info, bool addLine)
{
var rowlayout = new FrameRowControl(listView.rowSpace / 2);
rowlayout.Height = Application.GetRealHeight(138);
rowlayout.MainKeys = info.Account;
listView.AddChidren(rowlayout);
//成员头像图标
var btnIcon = rowlayout.AddLeftIcon(115);
btnIcon.Radius = (uint)btnIcon.IconSize / 2;
btnIcon.UnSelectedImagePath = "Center/Admin.png";
rowlayout.AddChidren(btnIcon);
//成员昵称
string memberName = string.IsNullOrEmpty(info.UserName) == true ? info.Account : info.UserName;
var btnName = rowlayout.AddLeftCaption(memberName, 600, true);
btnName.TextSize = 15;
rowlayout.AddChidren(btnName);
if (addLine == true)
{
//底线
rowlayout.AddBottomLine();
}
//右图标
rowlayout.AddRightArrow();
rowlayout.ButtonClickEvent += (sender, e) =>
{
var form = new MemberManagementForm();
form.AddForm(info);
};
}
#endregion
#region ■ 删除指定行_________________________
///
/// 删除指定行
///
///
public void DeleteRowByAccount(string accountId)
{
for (int i = 0; ; i++)
{
var row = (FrameRowControl)listView.GetChildren(i);
if (row == null)
{
break;
}
if (row.MainKeys == accountId)
{
row.RemoveFromParent();
break;
}
}
}
#endregion
#region ■ 界面重新激活事件___________________
///
/// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
///
public override int FormActionAgainEvent()
{
//清空共享文件夹
HdlShardLogic.Current.ClearShardDirectory();
this.listView.RemoveAll();
listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(567);
//添加成员列表
this.AddMemberListRowByData();
return 1;
}
#endregion
}
}