From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 25 七月 2024 17:25:59 +0800
Subject: [PATCH] 2024年07月25日17:24:45

---
 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs |  217 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 201 insertions(+), 16 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index db7cfe9..80844c1 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -38,12 +38,18 @@
         /// 鏄惁鍦ㄨ皟鍏�
         /// </summary>
         bool onDimmerBar;
+        /// <summary>
+        /// 鍒犻櫎璁惧鍚庡洖璋冪粰鐣岄潰鍒锋柊
+        /// </summary>
+        Action action;
+
         #endregion
-        public FunctionControlZone(Function func)
+        public FunctionControlZone(Function func,Action action)
         {
             bodyDiv = this;
             bodyDiv.Tag = func.sid;
             function = func;
+            this.action = action;
         }
 
         public override void RemoveFromParent()
@@ -57,17 +63,26 @@
         /// </summary>
         public void LoadFunctionDiv()
         {
-            //todo 澧炲姞璁惧锛屽鍔犲姛鑳藉垪琛ㄥ崱鐗�
             if (function == null)
             {
                 this.RemoveFromParent();
                 return;
             }
-            LoadDiv();
-
+            //if (function.spk == SPK.IpCam_Imou)
+            //{
+            //    InitIpCamDiv();
+            //}
+            //else
+            {
+                LoadDiv();
+            }
 
             btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png";
-            
+            if(function.spk == SPK.GroupControl || function.spk == SPK.CommonSeries)
+            {
+                //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/lightswitch.png";
+                btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/groupControl.png";
+            }
             if (SPK.CurtainSpkList().Contains(function.spk))
             {//绐楀笜娌℃湁寮�鍏虫寜閽�
                 CurtainFragment();
@@ -86,7 +101,7 @@
                         Button btnTipPowerLow = new Button()
                         {
                             X = Application.GetRealWidth(307),
-                            Y = Application.GetRealHeight(25),
+                            Y = Application.GetRealHeight(45),
                             Width = Application.GetRealWidth(24),
                             Height = Application.GetRealWidth(24),
                             UnSelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png",
@@ -98,7 +113,7 @@
 
 
 
-                else if (function.spk == SPK.SenesorMegahealth)
+                else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose  )
                 {
                     var btnStatus = new Button()
                     {
@@ -122,7 +137,7 @@
                         switch (tempStatus.state)
                         {//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔�
                             case "0":
-                                btnStatus.TextID = StringId.SensorNormalState;
+                                btnStatus.TextID = StringId.wuren;
                                 btnStatus.TextColor = CSS_Color.MainColor;
                                 break;
                             case "1":
@@ -176,11 +191,94 @@
 
                 }
 
+                else if (SPK.ArmSensorSpkList().Contains(function.spk))
+                {
+                    var btnStatus = new Button()
+                    {
+                        X = Application.GetRealWidth(51),
+                        Y = Application.GetRealHeight(64),
+                        Height = Application.GetRealHeight(18),
+                        TextColor = CSS_Color.MainColor,
+                        TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
+                        Text = "",
+                        TextAlignment = TextAlignment.CenterLeft,
+                        Tag = function.sid + "_Sensor_Status"
+                    };
+                    bodyDiv.AddChidren(btnStatus);
+
+                    var alarm_status = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.AlarmStatus);
+                    if(alarm_status!= null)
+                    {
+                        if (alarm_status.curValue.ToString() == "normal")
+                        {
+                            btnStatus.TextID = StringId.SensorNormalState;
+                            btnStatus.TextColor = CSS_Color.MainColor;
+                        }
+                        else
+                        {
+                            btnStatus.TextID = StringId.InAlarm;
+                            btnStatus.TextColor = CSS_Color.WarningColor;
+                        }
+                    }
+                    else
+                    {
+                        alarm_status = function.attributes.Find((sta) => sta.key == "contact_status");
+                        if (alarm_status != null)
+                        {
+                            if (alarm_status.curValue.ToString() == "close")
+                            {
+                                btnStatus.TextID = StringId.Shut;
+                                btnStatus.TextColor = CSS_Color.MainColor;
+                            }
+                            else
+                            {
+                                if (function.spk == SPK.SensorDryContact || function.spk == SPK.SensorDryContact2)
+                                {
+                                    btnStatus.TextID = StringId.DryBreak;
+                                }
+                                else
+                                {
+                                    btnStatus.TextID = StringId.Open;
+                                }
+                                btnStatus.TextColor = CSS_Color.WarningColor;
+                            }
+                        }
+                        else
+                        {
+                            alarm_status = function.attributes.Find((sta) => sta.key == "people_status");
+                            if (alarm_status != null)
+                            {
+                                if (alarm_status.curValue.ToString() == "false")
+                                {
+                                    btnStatus.TextID = StringId.wuren;
+                                    btnStatus.TextColor = CSS_Color.MainColor;
+                                }
+                                else
+                                {
+                                    btnStatus.TextID = StringId.youren;
+                                    btnStatus.TextColor = CSS_Color.WarningColor;
+                                }
+                            }
+                        }
+                    }
+
+                }
+
             }
             else if (function.spk == SPK.DoorLock)
             {
                 btnIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/DoorLock.png";
             }
+            else if (function.spk == SPK.VideoDoorLock)
+            {
+                btnIcon.UnSelectedImagePath =UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockIcon(UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.function);
+            }
+            else if (function.spk == SPK.AvZkAiks)
+            {
+                //闅愯棌寮�鍏虫寜閽�
+                btnIcon.UnSelectedImagePath = "AksIcon/aks.png";
+            }
+            else if(function.spk == SPK.GroupControl) { }
             else if (function.spk == SPK.HvacCac)
             {
                 var btnHumidityIcon = new Button()
@@ -243,11 +341,17 @@
 
 
             }
+            else if (function.spk == SPK.AcstParent) {
+            }
             else
             {
                 if (function.spk == SPK.ClothesHanger)//鏅捐。鏋�
                 {
                     ClothesHangerFragment();
+                }
+                else if(function.spk == SPK.IpCam_Imou || function.spk == SPK.ElectricEnergy || function.spk ==SPK.AirSwitch || function.spk == SPK.AirSwitchP3)
+                {
+
                 }
                 else
                 {
@@ -257,7 +361,7 @@
                     /// 寮�鍏虫寜閽�
                     /// </summary>
                     Button btnSwitch;
-                    if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
+                    if (function.spk == SPK.LightRGBW || function.spk == SPK.LightCCT || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                     {
                         btnSwitch = new Button()
                         {
@@ -315,6 +419,58 @@
 
    
         }
+        /// <summary>
+        /// 鍔犺浇ip鎽勫儚澶村崱鐗�
+        /// </summary>
+        private void InitIpCamDiv()
+        {
+            btnIcon = new Button()
+            {
+                X = Application.GetRealWidth(10),
+                Y = Application.GetRealHeight(15),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+            };
+            bodyDiv.AddChidren(btnIcon);
+
+            btnName = new Button()
+            {
+                X = Application.GetRealWidth(8 + 10 + 32),
+                Y = Application.GetRealHeight(10),
+                Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(24),
+                Text = function.name,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.TextFontSize,
+            };
+            bodyDiv.AddChidren(btnName);
+
+            btnFromFloor = new Button()
+            {
+                X = Application.GetRealWidth(8 + 10 + 32),
+                Y = Application.GetRealHeight(10 + 24),
+                Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(18),
+                Text = function.GetRoomListName(),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.PromptingColor1,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+            };
+            bodyDiv.AddChidren(btnFromFloor);
+
+            btnCollectionIcon = new Button()
+            {
+                X = Application.GetRealWidth(299),
+                Y = Application.GetRealHeight(10),
+                Width = Application.GetMinRealAverage(40),
+                Height = Application.GetMinRealAverage(40),
+                SelectedImagePath = "Collection/CollectionIcon.png",
+                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
+                IsSelected = function.collect
+            };
+
+        }
 
         /// <summary>
         /// 鍔犺浇鎺у埗鍗$墖鍖哄煙
@@ -366,19 +522,20 @@
                 UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
                 IsSelected = function.collect
             };
-            if ( !SPK.ArmSensorSpkList().Contains(function.spk)
-                && function.spk != SPK.DoorLock
-                && !SPK.EnvironDeviceSpkList().Contains( function.spk))//!DB_ResidenceData.Instance.CurrentRegion.isOtherShare &&
+            if ( !SPK.ArmSensorSpkList().Contains(function.spk)&& 
+                function.spk != SPK.DoorLock
+                && function.spk != SPK.GroupControl
+                && !SPK.EnvironDeviceSpkList().Contains( function.spk))
             {
                 bodyDiv.AddChidren(btnCollectionIcon);
             }
 
-            if(function.spk == SPK.SenesorMegahealth)
+            if(function.spk == SPK.SensorPir || function.spk == SPK.SensorPirHold || function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
             {
                 bodyDiv.AddChidren(btnCollectionIcon);
             }
 
-            if (!function.online)
+            if (!function.isOnline())
             {
                 bodyDiv.BackgroundColor = CSS_Color.PromptingColor2;
                 btnOffline = new Button()
@@ -393,6 +550,19 @@
                 };
                 bodyDiv.AddChidren(btnOffline);
             }
+            //鎺掑簭
+            //btnIcon.MouseLongEventHandler = (sender, e) => {
+            //    OrderEvent();
+            //};
+            //btnName.MouseLongEventHandler = (sender, e) => {
+            //    OrderEvent();
+            //};
+            //btnFromFloor.MouseLongEventHandler = (sender, e) => {
+            //    OrderEvent();
+            //};
+            //bodyDiv.MouseLongEventHandler = (sender, e) => {
+            //    OrderEvent();
+            //};
         }
 
         /// <summary>
@@ -403,7 +573,9 @@
             switch (function.spk)
             {
                 case SPK.LightDimming:
+                case SPK.LightRGBW:
                 case SPK.LightRGB:
+                case SPK.LightCCT:
                     #region Dimmer
                     var btnDimmerMinValues = new Button()
                     {
@@ -461,6 +633,14 @@
         /// </summary>
         void CurtainFragment()
         {
+            var onoffString = function.GetAttrState(FunctionAttributeKey.OnOff);
+            var percent = onoffString == "off" ? 0 : 100;
+            if (function.GetAttributes().Contains(FunctionAttributeKey.Percent))
+            {
+                string percentString = function.GetAttrState(FunctionAttributeKey.Percent);
+                int.TryParse(percentString, out percent);
+            }
+
             #region Curtain
             var btnCurtainClose = new Button()
             {
@@ -470,7 +650,7 @@
                 Height = Application.GetMinRealAverage(32),
                 UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png",
                 SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png",
-                IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff) == "off",
+                IsSelected = percent == 0,
                 Tag = function.sid + "_off"
             };
             bodyDiv.AddChidren(btnCurtainClose);
@@ -501,7 +681,7 @@
                 UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png",
                 SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png",
                 Tag = function.sid + "_on",
-                IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff) == "on",
+                IsSelected = percent != 0,
             };
             bodyDiv.AddChidren(btnCurtainOpen);
             if (function.spk == SPK.CurtainRoller)
@@ -546,6 +726,11 @@
         }
 
         /// <summary>
+        /// 鎺掑簭浜嬩欢 
+        /// </summary>
+        public Action OrderEvent;
+
+        /// <summary>
         /// 鍔犺浇闊充箰鍔熻兘鎺у埗鍗$墖
         /// </summary>
         void MusicFragment()

--
Gitblit v1.8.0