From 5ec581e5d37b108fc9d59e89afd8e94e21b32080 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 17 十月 2023 17:33:36 +0800
Subject: [PATCH] 2023年10月17日17:33:33

---
 HDL_ON/UI/UI2/2-Classification/FunctionPage.cs |  125 +++++++++++++++++++++++++++++------------
 1 files changed, 88 insertions(+), 37 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
index 1b48b0d..c8891fe 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
@@ -12,7 +12,7 @@
         /// <summary>
         /// 褰撳墠绐椾綋
         /// </summary>
-        static FrameLayout bodyView;
+        public static FunctionPage bodyView;
         /// <summary>
         /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣
         /// </summary>
@@ -28,15 +28,39 @@
         #endregion
 
         List<Function> functionList;
+        int titleId;
 
+        public Action DelAction;
         public FunctionPage()
         {
             bodyView = this;
             functionList = new List<Function>();
+
         }
 
-        public void LoadPage(int titleId)
+        /// <summary>
+        /// 閲嶈浇鐣岄潰
+        /// </summary>
+        public void ReLoadPage()
         {
+            if (bodyView != null)
+            {
+                try
+                {
+                    bodyView.RemoveAll();
+                    LoadPage(this.titleId);
+                    functionList = new List<Function>();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"FunctionPage ReloadPage error :\r\n {ex.Message}");
+                }
+            }
+        }
+
+        public void LoadPage(int titleId_out)
+        {
+            this.titleId = titleId_out;
 
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
             if (titleId == StringId.Lights && !DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl)
@@ -141,21 +165,12 @@
 
             if (titleId == StringId.Lights)
             {
-                functionList.AddRange(FunctionList.List.groupControls);
+                //functionList.AddRange(FunctionList.List.groupControls);
                 functionList.AddRange(FunctionList.List.GetLightList());
-
-
-                var lightScene = FunctionList.List.scenes.FindAll((obj) => obj.sceneType == SceneType.LightScene);
-
-                foreach (var scene in lightScene)
-                {
-                    functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
-
-                    var sceneRow = new SceneControlZone(scene);
-                    functionListView.AddChidren(sceneRow);
-                    sceneRow.LoadView();
-                }
-
+            }
+            else if(titleId == StringId.HorseRaceLamp)
+            {
+                functionList.AddRange(FunctionList.List.GetSeries());
             }
             else if (titleId == StringId.AC)
             {
@@ -171,7 +186,9 @@
             }
             else if (titleId == StringId.Electric)
             {
+               
                 functionList.AddRange(FunctionList.List.GetElectricals());
+
             }
             else if (titleId == StringId.EnvironmentalScience)
             {
@@ -185,13 +202,17 @@
             {
                 functionList.AddRange(FunctionList.List.GetAirFreshList());
             }
-            else if(titleId == StringId.MechanicalArm)
+            else if (titleId == StringId.MechanicalArm)
             {
                 functionList.AddRange(FunctionList.List.GetMechanicalArmList());
             }
-            else if(titleId == StringId.SecurityMonitoring)
+            else if (titleId == StringId.SecurityMonitoring)
             {
                 functionList.AddRange(FunctionList.List.GetIpCamImouList());
+            }
+            else if(titleId == StringId.EnergyMonitoring)
+            {
+                functionList.AddRange(FunctionList.List.GetEnergyList());
             }
             functionList = functionList.OrderByDescending(o => o.controlCounter).ToList();
 
@@ -200,22 +221,7 @@
             LoadDialog_ChangeFloor();
 
 
-            #region 鍔犺浇缁勫悎璋冨厜鍦烘櫙
-            if (titleId == StringId.Lights)
-            {
-                foreach (var lightScene in FunctionList.List.scenes)
-                {
-                    if (lightScene.sceneType == SceneType.LightScene)
-                        if (lightScene != null)
-                        {
-                            functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
-                            var sceneRow = new SceneControlZone(lightScene);
-                            functionListView.AddChidren(sceneRow);
-                            sceneRow.LoadView();
-                        }
-                }
-            }
-            #endregion
+        
 
         }
         /// <summary>
@@ -241,8 +247,24 @@
                         {
                             showCount = -1;
                             functionListView.RemoveAll();
+                            #region 鍔犺浇缁勫悎璋冨厜鍦烘櫙
+                            if (titleId == StringId.Lights)
+                            {
+                                foreach (var lightScene in FunctionList.List.scenes)
+                                {
+                                    if (lightScene.sceneType == SceneType.LightScene)
+                                        if (lightScene != null)
+                                        {
+                                            var sceneRow = new SceneControlZone(lightScene);
+                                            functionListView.AddChidren(sceneRow);
+                                            sceneRow.LoadView();
+                                            functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
+                                        }
+                                }
+                            }
+                            #endregion
                         }
-                        for(var i = 0;i<50;i++)
+                        for (var i = 0;i<50;i++)
                         //foreach (var function in showList)
                         {
                             showCount++;
@@ -256,7 +278,7 @@
                             {
                                 continue;
                             }
-                            if (function.spk == SPK.LightRGBW || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
+                            if (function.spk == SPK.LightCCT || function.spk == SPK.LightRGBW || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                             {
                                 var functionDiv = new FunctionControlZone(function,null)
                                 {
@@ -290,9 +312,38 @@
                                 functionListView.AddChidren(functionDiv);
 
                             }
+                            else if (function.spk == SPK.ElectricalTvHisense)
+                            {
+                                Action deviceDelAction = () =>
+                                {
+                                    //鍒犻櫎璁惧鎴愬姛鍚庢洿鏂癠I
+                                    if (functionListView==null) {
+                                        return;
+                                    }
+                                    functionListView.RemoveAll();
+                                    showList.Remove(function);//鍏堢Щ闄�
+                                    ShowFunctionRow(showList,isAppend);
+                                    this.DelAction?.Invoke();
+
+                                };
+                                var functionDiv = new FunctionControlZone(function, deviceDelAction) 
+                                {
+                                    Gravity = Gravity.CenterHorizontal,
+                                    Width = Application.GetRealWidth(343),
+                                    Height = Application.GetRealHeight(96),
+                                    Radius = (uint)Application.GetMinRealAverage(12),
+                                    BorderColor = 0x00FFFFFF,
+                                    BorderWidth = 1,
+                                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                                    Tag = function.spk + function.sid
+                                };
+                                functionDiv.LoadFunctionDiv();
+                                functionDiv.OrderEvent = OrderEvent;
+                                functionListView.AddChidren(functionDiv);
+                            }
                             else
                             {
-                                var functionDiv = new FunctionControlZone(function,null)
+                                var functionDiv = new FunctionControlZone(function, null)
                                 {
                                     Gravity = Gravity.CenterHorizontal,
                                     Width = Application.GetRealWidth(343),

--
Gitblit v1.8.0