using System;
|
using System.Collections.Generic;
|
using System.Threading.Tasks;
|
|
namespace Shared.Phone.UserCenter.Member
|
{
|
/// <summary>
|
/// 成员管理★
|
/// </summary>
|
public class MemberListForm : EditorCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 列表控件
|
/// </summary>
|
private VerticalListControl listView = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
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();
|
}
|
|
|
/// <summary>
|
/// 初始化中部控件
|
/// </summary>
|
private void InitMiddleFrame()
|
{
|
//清空bodyFrame
|
this.ClearBodyFrame();
|
|
//初始化用户图标
|
this.InitUserIconControl();
|
|
//初始化列表控件
|
this.InitMemberListControl();
|
|
//总之先清空共享文件夹准没错
|
HdlShardLogic.Current.ClearShardDirectory();
|
}
|
|
#endregion
|
|
#region ■ 初始化用户图标_____________________
|
|
/// <summary>
|
/// 初始化用户图标
|
/// </summary>
|
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 ■ 初始化成员列表_____________________
|
|
/// <summary>
|
/// 初始化成员列表
|
/// </summary>
|
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);
|
|
//添加可以向下滚动的控件
|
listView = new VerticalListControl(12);
|
listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(567);
|
listView.BackgroundColor = UserCenterColor.Current.White;
|
listView.Y = Application.GetRealHeight(567);
|
bodyFrameLayout.AddChidren(listView);
|
|
//初始化成员列表
|
this.InitMemberList();
|
}
|
|
/// <summary>
|
/// 初始化成员列表
|
/// </summary>
|
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<MemberInfoRes> listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MemberInfoRes>>(result);
|
if (listInfo == null)
|
{
|
//关闭进度条
|
this.CloseProgressBar(ShowReLoadMode.YES);
|
return;
|
}
|
//关闭进度条
|
this.CloseProgressBar();
|
|
//先清空成员列表信息
|
UserCenterResourse.ListMemberInfo.Clear();
|
|
List<string> listCheck = new List<string>();
|
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();
|
}
|
|
/// <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);
|
}
|
if (listNewInfo.Count == 0)
|
{
|
return;
|
}
|
//调整列表控件的高度
|
var realHeight = listNewInfo.Count * listView.GetChildren(listView.ChildrenCount - 1).Height;
|
realHeight += Application.GetRealHeight(23) - listView.rowSpace + Application.GetRealHeight(23);
|
if (realHeight < listView.Height)
|
{
|
//缩小控件高度
|
listView.Height = realHeight;
|
}
|
}
|
|
#endregion
|
|
#region ■ 添加成员行_________________________
|
|
/// <summary>
|
/// 添加成员行
|
/// </summary>
|
/// <param name="info">Info.</param>
|
/// <param name="addLine">addLine</param>
|
private void AddRowLayout(MemberInfoRes info, bool addLine)
|
{
|
if (listView.ChildrenCount == 0)
|
{
|
//塞一个空白的进去占空间
|
var rowTemp = new FrameRowControl();
|
rowTemp.UseClickStatu = false;
|
rowTemp.Height = Application.GetRealHeight(23) - listView.rowSpace;
|
rowTemp.MainKeys = string.Empty;
|
listView.AddChidren(rowTemp);
|
}
|
|
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 ■ 删除指定行_________________________
|
|
/// <summary>
|
/// 删除指定行
|
/// </summary>
|
/// <param name="accountId"></param>
|
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 ■ 界面重新激活事件___________________
|
|
/// <summary>
|
/// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
|
/// </summary>
|
public override int FormActionAgainEvent()
|
{
|
//清空共享文件夹
|
HdlShardLogic.Current.ClearShardDirectory();
|
|
this.listView.RemoveAll();
|
listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(567);
|
|
//添加成员列表
|
this.AddMemberListRowByData();
|
|
return 1;
|
}
|
|
#endregion
|
}
|
}
|