From a9d1161b1df96e7ddad566335989a1444e433ef5 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 28 三月 2023 11:54:45 +0800
Subject: [PATCH] 2023年03月28日11:52:02

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs |  155 +++++++++++++++++++++++++++------------------------
 1 files changed, 81 insertions(+), 74 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
index f7b44a0..85ff3c3 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
@@ -9,22 +9,13 @@
     {
         public FunTpye(string str)
         {
-            if_type = str;
+            if_Type = str;
         }
-        /// <summary>
-        /// 榛樿閫変腑鏄埧闂存椂锛氬叏閮ㄥ尯鍩�
-        /// </summary>
-        //public static Entity.Room selectedRoom = new Entity.Room { roomId ="6688" };
-
-        /// <summary>
-        /// 榛樿閫変腑鏄澶囩被鍨嬫椂锛氬叏閮ㄥ姛鑳�
-        /// </summary>
-        //public static Entity.Room selectedRoom = new Entity.Room { roomId = "6688" };
         /// <summary>
         /// 琛ㄧず鏄�(鏉′欢/鐩爣)
         /// </summary>
-        private string if_type;
-
+        private string if_Type;
+        Loading loading = new Loading();
         /// <summary>
         /// 璁惧鍔熻兘ui
         /// </summary>
@@ -32,18 +23,21 @@
         /// <param name="bottm"></param>
         /// <param name="funCount">鏀寔鍔熻兘绫诲瀷涓暟<琛ㄧず涓婇潰鎵�鍗犻珮搴�></param>
         public void FunTypeView(FrameLayout viewLayout,int bottm,int funCount) {
+            viewLayout.AddChidren(loading);
             LogicView.FunAllAreaView funAllAreaView = new LogicView.FunAllAreaView();
             funAllAreaView.frameLayout.Y = bottm + Application.GetRealHeight(8);
             viewLayout.AddChidren(funAllAreaView.FLayoutView());
             VerticalScrolViewLayout vv = new VerticalScrolViewLayout
             {
                 Y = funAllAreaView.frameLayout.Bottom,
-                Height = Application.GetRealHeight(667 - 64 - 50 * funCount - 8),
+                Height = Application.GetRealHeight(667 - 64 - 50 * funCount - 8-50),
             };
             viewLayout.AddChidren(vv);
             if (!MainView.IsGatewayType)
             {
+                //濡傛灉鏄痓us缃戝叧閲嶇疆楂樺害;
                 funAllAreaView.frameLayout.Y = Application.GetRealHeight(0);
+                vv.Y = funAllAreaView.frameLayout.Bottom;
             }
             //鎴块棿鐐瑰嚮浜嬩欢
             EventHandler<MouseEventArgs> roomClick = (sender, e) =>
@@ -83,7 +77,7 @@
                     Width = Application.GetRealWidth(144),
                     Height = Application.GetRealHeight(44 * 5),
                 };
-                var roomList = LogicMethod.CurrLogicMethod.GetGatewayRoomList(Language.StringByID(StringId.allAreas));
+                var roomList = LogicMethod.Current.GetGatewayRoomList(Language.StringByID(StringId.allAreas));
 
                 if (roomList.Count > 5)
                 {
@@ -124,11 +118,12 @@
                         funAllAreaView.btnText2.Text = Language.StringByID(StringId.allFun);
                         //selectedRoom = (areaView.btnClick.Tag as Entity.Room);
                         UserInfo.Current.logicselectedRoom = (areaView.btnClick.Tag as Entity.Room);
-                        UserInfo.Current.logicselectedFunction = "";
+                        ///鍒囨崲鎴块棿榛樿:鍏ㄩ儴鍔熻兘
+                        UserInfo.Current.logicselectedFunction = Language.StringByID(StringId.allFun);
                         ///鑾峰彇鏄剧ず璁惧鍒楄〃
-                        var list = LogicMethod.CurrLogicMethod.GetFunctionDeviceList(areaView.btnClick.Tag as Entity.Room, if_type);
+                        var list = LogicMethod.Current.GetFunctionDeviceList(areaView.btnClick.Tag as Entity.Room, if_Type);
 
-                        DeviceListView(vv, list);
+                        this.LoadingDeviceListView(vv, list);
                     };
                     if (roomList.Count - 1 == i)
                     {
@@ -139,14 +134,14 @@
             };
             funAllAreaView.btnText1.MouseUpEventHandler += roomClick;
             funAllAreaView.btnIcon1.MouseUpEventHandler += roomClick;
-            //鍔熻兘鐐瑰嚮浜嬩欢
+            //鍔熻兘绫诲瀷鐐瑰嚮浜嬩欢
             EventHandler<MouseEventArgs> funClick = (sender3, e3) =>
             {
 
                 //鑾峰彇鏈�缁堟樉绀哄垪琛�
-                var functionList = LogicMethod.CurrLogicMethod.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_type);
+                var functionList = LogicMethod.Current.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_Type);
                 //鑾峰彇璁惧鍒楄〃鐨勭被鍨嬶紙渚嬪锛氱伅鍏夌被锛岀獥甯樼被銆傘�傘�傦級
-                var deviceTypeList = LogicMethod.CurrLogicMethod.GetDeviceTypeList(functionList);
+                var deviceTypeList = LogicMethod.Current.GetDeviceTypeList(functionList);
                 if (deviceTypeList.Count == 0)
                 {
                     //娌℃湁绫诲瀷鐩存帴杩斿洖鍘�;
@@ -224,13 +219,14 @@
                     areaView.btnClick.MouseUpEventHandler += (sender, e2) =>
                     {
                         fLayout.RemoveFromParent();
-                        funAllAreaView.btnText2.Text = areaView.btnClick.Tag.ToString();
-                        UserInfo.Current.logicselectedFunction = areaView.btnClick.Tag.ToString();
-                        ///鑾峰彇鍗曚釜绫诲瀷锛堜緥濡傦細鐏厜绫汇�傘�傦級璁惧FunctionType鍒楄〃
-                        var typeFunctionList = LogicMethod.CurrLogicMethod.GetDeviceTypeFunctionList(UserInfo.Current.logicselectedFunction);
-                        ///鑾峰彇鍗曚釜鐏厜绫诲瀷锛堜緥濡傦細鐏厜1,鐏厜2銆傘�傦級鏄剧ず璁惧鍒楄〃
-                        var lists2 = LogicMethod.CurrLogicMethod.GetShowDeviceList(typeFunctionList, functionList);
-                        DeviceListView(vv, lists2);
+                        string clickText = areaView.btnClick.Tag.ToString(); 
+                        funAllAreaView.btnText2.Text = clickText;
+                        UserInfo.Current.logicselectedFunction = clickText;
+                        ///鑾峰彇璁惧鍗曚釜澶х被spk鍒楄〃锛堜緥濡�:鐏厜绫�,绌鸿皟绫�...锛�
+                        var typeFunctionList2 = LogicMethod.Current.GetDeviceTypeFunctionList(clickText);
+                        ///鑾峰彇璁惧鍗曚釜灏忕被鍒楄〃锛堜緥濡傦細鐏厜1,鐏厜2...锛�
+                        var lists2 = LogicMethod.Current.GetShowDeviceList(typeFunctionList2, functionList);
+                       this.LoadingDeviceListView(vv, lists2);
 
                     };
                     if (deviceTypeList.Count - 1 == i)
@@ -242,67 +238,78 @@
             };
             funAllAreaView.btnText2.MouseUpEventHandler += funClick;
             funAllAreaView.btnIcon2.MouseUpEventHandler += funClick;
-            ///鑾峰彇鏄剧ず璁惧鍒楄〃
-            var deviceList = LogicMethod.CurrLogicMethod.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_type);
-
-            if (!string.IsNullOrEmpty(UserInfo.Current.logicselectedFunction))
+            ///鑾峰彇鎴块棿鏀寔鐨勮澶囧垪琛�
+            var deviceList = LogicMethod.Current.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_Type);
+            ///鑾峰彇璁惧鍗曚釜澶х被spk鍒楄〃锛堜緥濡�:鐏厜绫�,绌鸿皟绫�...锛�
+            var typeFunctionList = LogicMethod.Current.GetDeviceTypeFunctionList(UserInfo.Current.logicselectedFunction);
+            ///鑾峰彇璁惧鍗曚釜灏忕被鍒楄〃锛堜緥濡傦細鐏厜1,鐏厜2...锛�
+            var lists = LogicMethod.Current.GetShowDeviceList(typeFunctionList, deviceList);
+            if (string.IsNullOrEmpty(UserInfo.Current.logicselectedRoom.roomName))
             {
-
-                ///鑾峰彇鍗曚釜绫诲瀷锛堜緥濡傦細鐏厜绫汇�傘�傦級璁惧FunctionType鍒楄〃
-                var typeFunctionList = LogicMethod.CurrLogicMethod.GetDeviceTypeFunctionList(UserInfo.Current.logicselectedFunction);
-                ///鑾峰彇鍗曚釜鐏厜绫诲瀷锛堜緥濡傦細鐏厜1,鐏厜2銆傘�傦級鏄剧ず璁惧鍒楄〃
-                var lists = LogicMethod.CurrLogicMethod.GetShowDeviceList(typeFunctionList, deviceList);
-
-                funAllAreaView.btnText2.Text = UserInfo.Current.logicselectedFunction;
-                DeviceListView(vv, lists);
+                UserInfo.Current.logicselectedRoom.roomName = Language.StringByID(StringId.allAreas);
             }
-            else
-            {
-                DeviceListView(vv, deviceList);
-            }
+            ///鎴块棿鍚嶇О
             funAllAreaView.btnText1.Text = UserInfo.Current.logicselectedRoom.roomName;
+            if (string.IsNullOrEmpty(UserInfo.Current.logicselectedFunction))
+            {
+                UserInfo.Current.logicselectedFunction = Language.StringByID(StringId.allFun);
+            }
+            ///璁惧澶х被鍚嶇О<鐏厜绫汇�傘�傘�傘�傘��>
+            funAllAreaView.btnText2.Text = UserInfo.Current.logicselectedFunction;
+            this.LoadingDeviceListView(vv, lists);
+            
         }
-
-
         /// <summary>
         /// 鏄剧ず璁惧鐨刅iew
         /// </summary>
         /// <param name="verticalScrolView">涓婁笅婊戝姩</param>
         /// <param name="deviceList"></param>
-        public void DeviceListView(VerticalScrolViewLayout verticalScrolView, List<HDL_ON.Entity.Function> deviceList)
+        private void LoadingDeviceListView(VerticalScrolViewLayout verticalScrolView, List<HDL_ON.Entity.Function> deviceList)
         {
 
-            verticalScrolView.RemoveAll();
-            foreach (var dev in deviceList)
+            loading.Start();
+            System.Threading.Tasks.Task.Run(() =>
             {
-                LogicView.SelectTypeView funView = new LogicView.SelectTypeView();
-                funView.btnText.Visible = false;
-                funView.btnDeviceName.Visible = true;
-                funView.btnRoomName.Visible = true;
-                funView.btnLine.X = Application.GetRealWidth(16);
-                funView.btnLine.Width = Application.GetRealWidth(343);
-                verticalScrolView.AddChidren(funView.FLayoutView());
-                funView.btnIcon.UnSelectedImagePath = LogicMethod.CurrLogicMethod.GetIconPath(dev.spk);
-                funView.btnDeviceName.Text = dev.name;
-                funView.btnRoomName.Text = dev.GetRoomListName();
-                funView.btnClick.MouseUpEventHandler += (sen, e) => {
-                    if (if_type == LogicMethod.condition_if)
+                Application.RunOnMainThread(() =>
+                {
+                    loading.Hide();
+                    verticalScrolView.RemoveAll();
+                    foreach (var dev in deviceList)
                     {
-                        ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList();
-                        MainPage.BasePageView.AddChidren(conditionDeviceFunList);
-                        conditionDeviceFunList.Show(dev, 0, false);
-                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                    }
-                    else
-                    {
-                        TargetDeviceFunList targetDeviceFunList = new TargetDeviceFunList();
-                        MainPage.BasePageView.AddChidren(targetDeviceFunList);
-                        targetDeviceFunList.Show(dev, 0, false);
-                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                    }
+                        LogicView.SelectTypeView funView = new LogicView.SelectTypeView();
+                        funView.btnText.Visible = false;
+                        funView.btnDeviceName.Visible = true;
+                        funView.btnRoomName.Visible = true;
+                        funView.btnLine.X = Application.GetRealWidth(16);
+                        funView.btnLine.Width = Application.GetRealWidth(343);
+                        verticalScrolView.AddChidren(funView.FLayoutView());
+                        funView.btnIcon.UnSelectedImagePath = LogicMethod.Current.GetDeviceIconPath(dev);
+                        funView.btnDeviceName.Text = dev.name;
+                        funView.btnRoomName.Text = dev.GetRoomListName();
 
-                };
-            }
+                        funView.btnClick.MouseUpEventHandler += (sen, e) =>
+                        {
+                            if (if_Type == LogicMethod.condition_if)
+                            {
+                                ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList();
+                                MainPage.BasePageView.AddChidren(conditionDeviceFunList);
+                                conditionDeviceFunList.Show(dev, 0, false);
+                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                            }
+                            else
+                            {
+                                TargetDeviceFunList targetDeviceFunList = new TargetDeviceFunList();
+                                MainPage.BasePageView.AddChidren(targetDeviceFunList);
+                                targetDeviceFunList.Show(dev, 0, false);
+                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                            }
+
+                        };
+                    }
+                   
+                });
+
+            });
         }
     }
 

--
Gitblit v1.8.0