From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期二, 21 七月 2020 09:46:53 +0800 Subject: [PATCH] 请合并最新多功能面板代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs | 266 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 266 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs new file mode 100755 index 0000000..25bdf6f --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs @@ -0,0 +1,266 @@ +锘縰sing System; +using System.Collections.Generic; +using Shared.Common; +using Shared.Phone.UserCenter.Device; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter.DoorLock +{ + /// <summary> + /// 闂ㄩ攣绠$悊 + /// </summary> + public class UserManagement : DoorLockCommonLayout + { + /// 鏋勯�犲嚱鏁� + /// </summary> + /// <param name="doorLock"></param> + public UserManagement(ZigBee.Device.DoorLock doorLock) + { + this.doorLock = doorLock; + localAllAccountListTemp = doorLock.localAllAccountList; + localDoorLockUserListTemp = doorLock.localDoorLockUserList; + } + + #region 鈼� 鍙橀噺鐢虫槑__________________________ + ZigBee.Device.DoorLock doorLock; + VerticalRefreshLayout midVerticalScrolViewLayout; + public List<Shared.Phone.UserCenter.MemberInfoRes> localAllAccountListTemp = new List<Shared.Phone.UserCenter.MemberInfoRes> { }; + public Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj> localDoorLockUserListTemp = new Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj>(); + + + #endregion + + /// <summary> + /// 鏁版嵁鍒锋柊 + /// </summary> + void ReadAccountDoorLockInfoList() + { + System.Threading.Tasks.Task.Run(async () => + { + try + { + var localAccountListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.LocalAccountList(); + if (localAccountListTemp != null) + { + doorLock.localAllAccountList.Clear(); + doorLock.localAllAccountList = localAccountListTemp; + localAllAccountListTemp = doorLock.localAllAccountList; + + //鍒濆鍖栨潈闄愪俊鎭� + foreach (var sub in localAccountListTemp) + { + if (doorLock.IsFreezeAccount.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.IsFreezeAccount.Add(sub.SubAccountDistributedMark, false); + } + if (doorLock.HasRemoteUnlockAccess.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.HasRemoteUnlockAccess.Add(sub.SubAccountDistributedMark, false); + } + if (doorLock.IsFailedToGetDoorLockInfo.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.IsFailedToGetDoorLockInfo.Add(sub.SubAccountDistributedMark, false); + } + } + + //鑾峰彇鏈湴闂ㄩ攣鍒楄〃 + if (localDoorLockUserListTemp.Count == 0) + { + var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock); + localDoorLockUserListTemp = doorLock.localDoorLockUserList; + } + doorLock.ReSave(); + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + MidFrameLayoutContent(); + CommonPage.Loading.Hide(); + midVerticalScrolViewLayout.EndHeaderRefreshing(); + }); + } + }); + } + + /// <summary> + /// 鏄剧ず鐣岄潰 + /// </summary> + public void Show() + { + this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.UserManagement)); + + EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => + { + RemoveFromParent(); + }; + this.btnBack.MouseUpEventHandler += eHandlerBack; + this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; + this.MidFrameLayout(this); + + var btnAddFrameLayout = new FrameLayout + { + X = Application.GetRealWidth(829 - 116), + Height = Application.GetRealHeight(72), + Width = Application.GetRealWidth(190), + }; + this.titleFrameLayout.AddChidren(btnAddFrameLayout); + + var btnUndistributeIcon = new Button + { + Height = Application.GetRealHeight(69), + Width = Application.GetRealWidth(69), + UnSelectedImagePath = "DoorLock/UndistributeIcon.png", + }; + btnAddFrameLayout.AddChidren(btnUndistributeIcon); + + var btnUndistributeText = new Button + { + Height = Application.GetRealHeight(72), + Width = Application.GetRealWidth(150), + TextID = R.MyInternationalizationString.Undistributed, + TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, + X = btnUndistributeIcon.Right, + IsBold = true, + TextSize = 13, + TextAlignment = TextAlignment.CenterLeft, + }; + btnAddFrameLayout.AddChidren(btnUndistributeText); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + btnAddFrameLayout.Width = 0; + btnUndistributeIcon.Width = 0; + btnUndistributeText.Width = 0; + } + EventHandler<MouseEventArgs> eHandler = (sender, e) => + { + var undistributeDoorlockUserPage = new Shared.Phone.UserCenter.DoorLock.UndistributeDoorlockUserPage(doorLock, doorLock.localAllAccountList); + Shared.Phone.UserView.HomePage.Instance.AddChidren(undistributeDoorlockUserPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + undistributeDoorlockUserPage.Show(); + }; + btnAddFrameLayout.MouseDownEventHandler += eHandler; + btnUndistributeText.MouseDownEventHandler += eHandler; + btnUndistributeIcon.MouseDownEventHandler += eHandler; + midVerticalScrolViewLayout = new VerticalRefreshLayout() { }; + this.midFrameLayout.AddChidren(midVerticalScrolViewLayout); + + if (localAllAccountListTemp.Count == 0) + { + CommonPage.Loading.Start("Loading..."); + ReadAccountDoorLockInfoList(); + } + else + { + MidFrameLayoutContent(); + } + + midVerticalScrolViewLayout.BeginHeaderRefreshingAction += () => + { + midVerticalScrolViewLayout.BeginHeaderRefreshing(); + ReadAccountDoorLockInfoList(); + }; + } + + /// <summary> + /// 涓儴甯冨眬鏄剧ず + /// </summary> + async void MidFrameLayoutContent() + { + midVerticalScrolViewLayout.RemoveAll(); + for (int i = 0; i < doorLock.localAllAccountList.Count; i++) + { + var currentAccount = doorLock.localAllAccountList[i]; + var RowView = new FrameLayout() + { + Height = Application.GetRealHeight(127 + 23), + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, + }; + midVerticalScrolViewLayout.AddChidren(RowView); + + var btnText = new Button() + { + X = Application.GetRealWidth(58), + Width = Application.GetRealWidth(300), + TextAlignment = TextAlignment.CenterLeft, + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, + Gravity = Gravity.CenterVertical, + TextSize = 14, + }; + RowView.AddChidren(btnText); + + var btnRightFrameLayout = new FrameLayout() + { + Height = Application.GetRealHeight(110), + Width = Application.GetRealWidth(110), + X = Application.CurrentWidth - Application.GetRealWidth(150), + Y = Application.GetRealHeight(25), + }; + RowView.AddChidren(btnRightFrameLayout); + + var btnRight = new Button() + { + Height = Application.GetRealHeight(58), + Width = Application.GetRealWidth(58), + UnSelectedImagePath = "DoorLock/RightIcon.png", + Gravity = Gravity.Center, + }; + btnRightFrameLayout.AddChidren(btnRight); + + var line2 = new Button() + { + Y = RowView.Height - 1, + X = Application.GetRealWidth(58), + Width = Application.GetRealWidth(965), + Height = 1, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + }; + RowView.AddChidren(line2); + int currentIndex = i; + if (currentIndex == doorLock.localAllAccountList.Count - 1) + { + line2.Visible = false; + } + + if (!string.IsNullOrEmpty(currentAccount.UserName)) + { + btnText.Text = currentAccount.UserName; + } + else + { + btnText.Text = currentAccount.Account; + } + + EventHandler<MouseEventArgs> eHandler = (sender, e) => + { + if (currentIndex == 0) + { + var masterManagementPage = new Shared.Phone.UserCenter.DoorLock.MasterManagementPage(doorLock, currentAccount); + Shared.Phone.UserView.HomePage.Instance.AddChidren(masterManagementPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + masterManagementPage.Show(); + } + else + { + var memberFrozenPage = new Shared.Phone.UserCenter.DoorLock.MemberFrozenPage(doorLock, currentAccount); + Shared.Phone.UserView.HomePage.Instance.AddChidren(memberFrozenPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + memberFrozenPage.Show(); + } + }; + btnRight.MouseUpEventHandler += eHandler; + RowView.MouseUpEventHandler += eHandler; + btnText.MouseUpEventHandler += eHandler; + } + } + } +} -- Gitblit v1.8.0