From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 14 十二月 2020 09:59:01 +0800
Subject: [PATCH] 请合并代码,完成晾衣架最终功能。

---
 ZigbeeApp/Shared/Phone/UserView/UserPage.cs |  409 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 409 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
new file mode 100755
index 0000000..e3904ea
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
@@ -0,0 +1,409 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using System.Text;
+using Shared.Phone.UserCenter;
+
+namespace Shared.Phone.UserView
+{
+    /// <summary>
+    /// User page.
+    /// </summary>
+    public class UserPage : FrameLayout
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勮彍鍗�
+        /// </summary>
+        private MenuSelectEnum nowSelectMenu = MenuSelectEnum.A鏈�夋嫨;
+        /// <summary>
+        /// 鐢ㄦ埛鐣岄潰
+        /// </summary>
+        private static UserPage userMenuPage = null;
+        /// <summary>
+        /// 鐢ㄦ埛鐣岄潰
+        /// </summary>
+        /// <value>The instance.</value>
+        public static UserPage Instance
+        {
+            get
+            {
+                if (userMenuPage == null)
+                {
+                    userMenuPage = new UserPage { };
+                }
+                return userMenuPage;
+            }
+        }
+
+        /// <summary>
+        /// 鐢ㄦ埛涓讳綋鐣岄潰锛堜腑闂撮儴鍒嗭級
+        /// </summary>
+        private NormalFrameLayout bodyFrameView = null;
+        /// <summary>
+        /// 鐣岄潰缂撳瓨(2020.05.07:鍒囨崲鏃朵笉绉婚櫎鐣岄潰,鐩存帴闅愯棌)
+        /// </summary>
+        private List<EditorCommonForm> listForm = new List<EditorCommonForm>() { null, null, null };
+        /// <summary>
+        /// 鎺т欢缂撳瓨(鐪嬩笉鎳傜殑璇�,涓嶈鍔ㄥ畠)
+        /// </summary>
+        private List<ButtonBase> listButton = new List<ButtonBase>();
+        /// <summary>
+        /// 濡傛灉璁剧疆姝ゅ彉閲忎负true,鍒欏湪鍗曞嚮搴曢儴鑿滃崟鏃�,寮哄埗鏃犳潯浠跺叏閮ㄥ埛鏂�
+        /// </summary>
+        public bool RefreshAllForm = false;
+        /// <summary>
+        /// 鍒锋柊涓婚〉
+        /// </summary>
+        public bool RefreshMainPageForm = false;
+        /// <summary>
+        /// 鍒锋柊鍒嗙被
+        /// </summary>
+        public bool RefreshCategoryForm = false;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒濆鍖�
+        /// </summary>
+        public UserPage()
+        {
+            BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
+            Shared.Application.LocationAction += (lon, lat) =>
+            {
+                //涓婃姤缁忕含搴�
+                Login.AccountLogic.Instance.ReceiveAppLatAndLon(lon.ToString(), lat.ToString());
+            };
+        }
+
+        /// <summary>
+        /// 鍒濆鍖�
+        /// </summary>
+        public void InitPage()
+        {
+            if (this.ChildrenCount > 0)
+            {
+                return;
+            }
+#if iOS
+            if (Shared.Application.IsFullScreen == true)
+            {
+                //楂樼増鏈殑鑻规灉鏈哄瀷锛屽睆骞曞簳閮ㄤ細鏈変竴涓粦鑹茬殑鏉�
+                ControlCommonResourse.BottomFrameHeight = Application.GetRealHeight(180);
+            }
+#endif
+            //鐢ㄦ埛涓讳綋鐣岄潰锛堜腑闂撮儴鍒嗭級
+            this.bodyFrameView = new NormalFrameLayout();
+            bodyFrameView.Height = this.Height - UserCenter.ControlCommonResourse.BottomFrameHeight;
+            bodyFrameView.BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
+            this.AddChidren(bodyFrameView);
+
+            //鐢ㄦ埛鑿滃崟鐣岄潰锛堝簳閮ㄩ儴鍒嗭級
+            var bottomMenuFrame = new FrameLayout();
+            bottomMenuFrame.Gravity = Gravity.BottomCenter;
+            bottomMenuFrame.Height = ControlCommonResourse.BottomFrameHeight;
+            bottomMenuFrame.BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCBottomColor;
+            this.AddChidren(bottomMenuFrame);
+            //搴曢儴鑿滃崟鐨勫ご閮ㄧ嚎
+            var bottomLine = new NormalViewControl(bottomMenuFrame.Width, ControlCommonResourse.BottomLineHeight, false);
+            bottomLine.BackgroundColor = 0xffc8c8c9;
+            bottomMenuFrame.AddChidren(bottomLine);
+
+            //涓婚〉瀹瑰櫒
+            var frameHomePage = new FrameLayout();
+            frameHomePage.Width = bottomMenuFrame.Width / 3;
+            frameHomePage.Height = bottomMenuFrame.Height;
+            bottomMenuFrame.AddChidren(frameHomePage);
+            //涓婚〉鍥炬爣
+            var btnHomeIcon = new PicViewControl(138, 98);
+            btnHomeIcon.Y = Application.GetRealHeight(3);
+            btnHomeIcon.UnSelectedImagePath = "Navigation/Home.png";
+            btnHomeIcon.SelectedImagePath = "Navigation/HomeSelected.png";
+            btnHomeIcon.Gravity = Gravity.CenterHorizontal;
+            frameHomePage.AddChidren(btnHomeIcon);
+            this.listButton.Add(btnHomeIcon);
+            btnHomeIcon.ButtonClickEvent += (sender, e) =>
+            {
+                this.BottomMenuClickEvent(MenuSelectEnum.A涓婚〉, true);
+            };
+            //涓婚〉
+            var btnHomeName = new NormalViewControl(btnHomeIcon.Width, Application.GetRealHeight(40), false);
+            btnHomeName.Y = btnHomeIcon.Bottom;
+            btnHomeName.TextID = R.MyInternationalizationString.HomePage;
+            btnHomeName.TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor;
+            btnHomeName.SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2;
+            btnHomeName.TextSize = 10;
+            btnHomeName.Gravity = Gravity.CenterHorizontal;
+            btnHomeName.TextAlignment = TextAlignment.Center;
+            frameHomePage.AddChidren(btnHomeName);
+            this.listButton.Add(btnHomeName);
+            btnHomeName.ButtonClickEvent += (sender, e) =>
+            {
+                this.BottomMenuClickEvent(MenuSelectEnum.A涓婚〉, true);
+            };
+
+            //鍒嗙被瀹瑰櫒
+            var frameCategory = new FrameLayout();
+            frameCategory.X = frameHomePage.Right;
+            frameCategory.Width = bottomMenuFrame.Width / 3;
+            frameCategory.Height = bottomMenuFrame.Height;
+            bottomMenuFrame.AddChidren(frameCategory);
+            //鍒嗙被鍥炬爣
+            var btnCategoryIcon = new PicViewControl(138, 98);
+            btnCategoryIcon.Y = Application.GetRealHeight(3);
+            btnCategoryIcon.UnSelectedImagePath = "Navigation/Category.png";
+            btnCategoryIcon.SelectedImagePath = "Navigation/CategorySelected.png";
+            btnCategoryIcon.Gravity = Gravity.CenterHorizontal;
+            frameCategory.AddChidren(btnCategoryIcon);
+            this.listButton.Add(btnCategoryIcon);
+            btnCategoryIcon.ButtonClickEvent += (sender, e) =>
+            {
+                this.BottomMenuClickEvent(MenuSelectEnum.A鍒嗙被, true);
+            };
+            //鍒嗙被
+            var btnCategoryName = new NormalViewControl(btnCategoryIcon.Width, Application.GetRealHeight(40), false);
+            btnCategoryName.Y = btnCategoryIcon.Bottom;
+            btnCategoryName.TextID = R.MyInternationalizationString.Category;
+            btnCategoryName.TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor;
+            btnCategoryName.SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2;
+            btnCategoryName.TextSize = 10;
+            btnCategoryName.Gravity = Gravity.CenterHorizontal;
+            btnCategoryName.TextAlignment = TextAlignment.Center;
+            frameCategory.AddChidren(btnCategoryName);
+            this.listButton.Add(btnCategoryName);
+            btnCategoryName.ButtonClickEvent += (sender, e) =>
+            {
+                this.BottomMenuClickEvent(MenuSelectEnum.A鍒嗙被, true);
+            };
+
+
+            //鎴戠殑瀹瑰櫒
+            var frameSetting = new FrameLayout();
+            frameSetting.X = frameCategory.Right;
+            frameSetting.Width = bottomMenuFrame.Width / 3;
+            frameSetting.Height = bottomMenuFrame.Height;
+            bottomMenuFrame.AddChidren(frameSetting);
+            //鎴戠殑鍥炬爣
+            var btnSettingIcon = new PicViewControl(138, 98);
+            btnSettingIcon.Y = Application.GetRealHeight(3);
+            btnSettingIcon.UnSelectedImagePath = "Navigation/Setting.png";
+            btnSettingIcon.SelectedImagePath = "Navigation/SettingSelected.png";
+            btnSettingIcon.Gravity = Gravity.CenterHorizontal;
+            frameSetting.AddChidren(btnSettingIcon);
+            this.listButton.Add(btnSettingIcon);
+            btnSettingIcon.ButtonClickEvent += (sender, e) =>
+            {
+                this.BottomMenuClickEvent(MenuSelectEnum.A涓汉涓績, true);
+            };
+            //鎴戠殑
+            var btnSettingName = new NormalViewControl(btnCategoryIcon.Width, Application.GetRealHeight(40), false);
+            btnSettingName.Y = btnSettingIcon.Bottom;
+            btnSettingName.TextID = R.MyInternationalizationString.Me;
+            btnSettingName.TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor;
+            btnSettingName.SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2;
+            btnSettingName.TextSize = 10;
+            btnSettingName.Gravity = Gravity.CenterHorizontal;
+            btnSettingName.TextAlignment = TextAlignment.Center;
+            frameSetting.AddChidren(btnSettingName);
+            this.listButton.Add(btnSettingName);
+            btnSettingName.ButtonClickEvent += (sender, e) =>
+            {
+                this.BottomMenuClickEvent(MenuSelectEnum.A涓汉涓績, true);
+            };
+        }
+
+        /// <summary>
+        /// 鍒锋柊鎺т欢
+        /// </summary>
+        public void ReFreshControl()
+        {
+            //杩欓噷鍋氬叏鍒锋柊澶勭悊
+            this.listForm = new List<EditorCommonForm>() { null, null, null };
+            this.bodyFrameView.RemoveAll();
+
+            this.BottomMenuClickEvent(MenuSelectEnum.A涓婚〉, false);
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 搴曢儴鑿滃崟鐨勭偣鍑讳簨浠�
+        /// </summary>
+        /// <param name="selectEnum">鑿滃崟閫夋嫨鏋氫妇</param>
+        /// <param name="handClick">鏄惁鏄墜鍔ㄧ偣鍑�</param>
+        private void BottomMenuClickEvent(MenuSelectEnum selectEnum, bool handClick)
+        {
+            if (this.RefreshAllForm == false && selectEnum == this.nowSelectMenu && handClick == true)
+            {
+                //鎵嬪姩鐐瑰嚮鍚屼竴涓彍鍗�,鍒欎笉鍋氬鐞�
+                return;
+            }
+
+            //濡傛灉寮哄埗鎸囧畾鍒锋柊鐣岄潰鐨勮瘽
+            if (this.RefreshAllForm == true)
+            {
+                //鍏ㄩ儴鍒锋柊
+                this.listForm = new List<EditorCommonForm>() { null, null, null };
+                this.bodyFrameView.RemoveAll();
+
+                this.RefreshAllForm = false;
+            }
+
+            this.nowSelectMenu = selectEnum;
+
+            //涓婚〉
+            if (selectEnum == MenuSelectEnum.A涓婚〉)
+            {
+                //宸︽粦鑿滃崟鍙�
+                CommonPage.Instance.IsDrawerLockMode = false;
+                if (this.RefreshMainPageForm == true)
+                {
+                    //鍒锋柊涓婚〉
+                    listForm[0]?.CloseForm();
+                    listForm[0] = null;
+                    this.RefreshMainPageForm = false;
+                }
+                if (listForm[0] == null)
+                {
+                    var form = new MainPage.HomeMainPageForm();
+                    this.bodyFrameView.AddChidren(form);
+                    form.ShowForm();
+                    //鍔犵紦瀛�
+                    listForm[0] = form;
+                }
+            }
+            else if (selectEnum == MenuSelectEnum.A鍒嗙被)
+            {
+                //宸︽粦鑿滃崟涓嶅彲
+                CommonPage.Instance.IsDrawerLockMode = true;
+                if (this.RefreshCategoryForm == true)
+                {
+                    //鍒锋柊鍒嗙被
+                    listForm[1]?.CloseForm();
+                    listForm[1] = null;
+                    this.RefreshCategoryForm = false;
+                }
+                if (listForm[1] == null)
+                {
+                    var form = new Category.CategoryMainForm();
+                    this.bodyFrameView.AddChidren(form);
+                    form.ShowForm();
+                    //鍔犵紦瀛�
+                    listForm[1] = form;
+                }
+            }
+            else if (selectEnum == MenuSelectEnum.A涓汉涓績)
+            {
+                //宸︽粦鑿滃崟涓嶅彲
+                CommonPage.Instance.IsDrawerLockMode = true;
+                if (listForm[2] == null)
+                {
+                    var form = new UserCenter.UserMain.UserMainForm();
+                    this.bodyFrameView.AddChidren(form);
+                    form.ShowForm();
+                    //鍔犵紦瀛�
+                    listForm[2] = form;
+                }
+            }
+            //璁剧疆鍏ㄩ儴鎺т欢鐨勫悇绉嶇姸鎬佺姸鎬�
+            this.SetAllControlStatu();
+        }
+
+        /// <summary>
+        /// 璁剧疆鍏ㄩ儴鎺т欢鐨勫悇绉嶇姸鎬佺姸鎬�
+        /// </summary>
+        private void SetAllControlStatu()
+        {
+            int index = (int)this.nowSelectMenu - 1;
+            for (int i = 0; i < listForm.Count; i++)
+            {
+                if (i == index)
+                {
+                    //褰撳墠閫夋嫨鐨勮彍鍗曠殑璇�,鍒欏叏閮ㄥ彲瑙�
+                    listForm[i].Visible = true;
+                    //鎺т欢鍥剧墖鍜岄鑹插彉鏇�
+                    this.listButton[i * 2].IsSelected = true;
+                    this.listButton[i * 2 + 1].IsSelected = true;
+                }
+                else
+                {
+                    //涓嶆槸褰撳墠閫夋嫨鐨勮彍鍗曠殑璇�,鍏ㄩ儴涓嶅彲瑙�
+                    if (listForm[i] != null)
+                    {
+                        listForm[i].Visible = false;
+                    }
+                    //鎺т欢鍥剧墖鍜岄鑹插彉鏇�
+                    this.listButton[i * 2].IsSelected = false;
+                    this.listButton[i * 2 + 1].IsSelected = false;
+                }
+            }
+        }
+
+        /// <summary>
+        /// 寮哄埗鏄剧ず鑷姩鍖栧垪琛ㄧ晫闈�
+        /// </summary>
+        public void ShowCategoryAutoListForm()
+        {
+            //鍏抽棴鍏ㄩ儴鐣岄潰,鐩村埌涓婚〉涓烘
+            UserCenterLogic.CloseAllOpenForm(null, false);
+            //寮哄埗鏄剧ず鑷姩鍖栧垪琛ㄧ晫闈�
+            UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = 2;
+
+            this.nowSelectMenu = MenuSelectEnum.A鍒嗙被;
+
+            //宸︽粦鑿滃崟涓嶅彲
+            CommonPage.Instance.IsDrawerLockMode = true;
+            if (listForm[1] == null)
+            {
+                var form = new Category.CategoryMainForm();
+                this.bodyFrameView.AddChidren(form);
+                form.ShowForm();
+                //鍔犵紦瀛�
+                listForm[1] = form;
+            }
+            else
+            {
+                ((Category.CategoryMainForm)listForm[1]).RefreshBodyView();
+            }
+            //璁剧疆鍏ㄩ儴鎺т欢鐨勫悇绉嶇姸鎬佺姸鎬�
+            this.SetAllControlStatu();
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠婵�娲荤殑鐣岄潰
+        /// </summary>
+        /// <returns></returns>
+        public EditorCommonForm GetNowActionForm()
+        {
+            int index = ((int)this.nowSelectMenu) - 1;
+            if (index != -1)
+            {
+                //璋冪敤姝ょ晫闈㈢殑婵�娲诲嚱鏁�
+                return this.listForm[index];
+            }
+            return null;
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 鑿滃崟閫夋嫨鐨勬灇涓�
+        /// </summary>
+        private enum MenuSelectEnum
+        {
+            A鏈�夋嫨 = 0,
+            A涓婚〉 = 1,
+            A鍒嗙被 = 2,
+            A涓汉涓績 = 3
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0