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 } }