wxr
2023-08-23 96e9ff2e5a54f54cdbb6b8b2f049fdf6a837de3c
OnPro/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -78,262 +78,64 @@
            }
            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();
            }
            else if (SPK.MusicSpkList().Contains(function.spk))
            {//音乐没有开关按钮
                MusicFragment();
            }
            else if (SPK.EvironmentSensorList().Contains(function.spk) || SPK.ArmSensorSpkList().Contains(function.spk)) //传感器没有开关按钮)
            {
                var powerLowTipAttr = function.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState);
                if (powerLowTipAttr != null)
                {
                    if (powerLowTipAttr.state.ToLower() == "low")
                    {
                        Button btnTipPowerLow = new Button()
                        {
                            X = Application.GetRealWidth(307),
                            Y = Application.GetRealHeight(25),
                            Width = Application.GetRealWidth(24),
                            Height = Application.GetRealWidth(24),
                            UnSelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png",
                            SelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png",
                        };
                        this.AddChidren(btnTipPowerLow);
                    }
                }
                else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose  )
                {
                    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 + "_SenesorMegahealth_Status"
                    };
                    bodyDiv.AddChidren(btnStatus);
                    var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus);
                    if (tempStatus != null)
                    {
                        switch (tempStatus.state)
                        {//0空,1走,2跑,3坐,4跌倒,5站
                            case "0":
                                btnStatus.TextID = StringId.SensorNormalState;
                                btnStatus.TextColor = CSS_Color.MainColor;
                                break;
                            case "1":
                                btnStatus.TextID = StringId.SomeoneIn;
                                btnStatus.TextColor = CSS_Color.WarningColor;
                                break;
                            case "2":
                                if (function.extSet.labModel)
                                {
                                    btnStatus.TextID = StringId.SomeoneRunning;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                else
                                {
                                    btnStatus.TextID = StringId.SomeoneIn;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                break;
                            case "3":
                                if (function.extSet.labModel)
                                {
                                    btnStatus.TextID = StringId.SomeoneSitting;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                else
                                {
                                    btnStatus.TextID = StringId.SomeoneIn;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                break;
                            case "4":
                                btnStatus.TextID = StringId.SomeoneFell;
                                btnStatus.TextColor = CSS_Color.WarningColor;
                                break;
                            case "5":
                                if (function.extSet.labModel)
                                {
                                    btnStatus.TextID = StringId.SomeoneStanding;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                else
                                {
                                    btnStatus.TextID = StringId.SomeoneIn;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                break;
                        }
                    }
                }
            }
            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.GroupControl) { }
            else if (function.spk == SPK.HvacCac)
            {
                var btnHumidityIcon = new Button()
                {
                    X = Application.GetRealWidth(120),
                    Y = Application.GetRealHeight(66),
                    Width = Application.GetMinRealAverage(16),
                    Height = Application.GetMinRealAverage(18),
                    UnSelectedImagePath = "FunctionIcon/CAC/HvacCacHumidityIcon.png",
                };
                bodyDiv.AddChidren(btnHumidityIcon);
                var btnHumidityValues = new TextButton()
                {
                    X = Application.GetRealWidth(140),
                    Y = Application.GetRealHeight(64),
                    Height = Application.GetRealHeight(18),
                    TextColor = 0xFF161616,
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = function.GetAttrState(FunctionAttributeKey.RoomHumidity) + "%",
                    TextAlignment = TextAlignment.CenterLeft,
                    Tag = function.sid + "_Humidity",
                };
                btnHumidityValues.Width = btnHumidityValues.GetTextWidth();
                bodyDiv.AddChidren(btnHumidityValues);
                Button btnTempIcon = new Button()
                {
                    X = Application.GetRealWidth(51),
                    Y = Application.GetRealHeight(66),
                    Width = Application.GetMinRealAverage(17),
                    Height = Application.GetMinRealAverage(17),
                    UnSelectedImagePath = "FunctionIcon/CAC/HvacCacTempIcon.png",
                };
                bodyDiv.AddChidren(btnTempIcon);
                var btnTempValues = new TextButton()
                {
                    X = Application.GetRealWidth(70),
                    Y = Application.GetRealHeight(64),
                    Height = Application.GetRealHeight(18),
                    TextColor = 0xFF161616,
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = function.GetAttrState(FunctionAttributeKey.RoomTemp) + "°C",
                    TextAlignment = TextAlignment.CenterLeft,
                    Tag = function.sid + "_Temp",
                };
                btnTempValues.Width = btnTempValues.GetTextWidth();
                bodyDiv.AddChidren(btnTempValues);
                var btnJinMaoIcon = new Button()
                {
                    X = Application.GetRealWidth(238),
                    Y = Application.GetRealHeight(64),
                    Width = Application.GetRealWidth(102),
                    Height = Application.GetRealHeight(29),
                    UnSelectedImagePath = "FunctionIcon/CAC/JinMaoIcon.png"
                };
                bodyDiv.AddChidren(btnJinMaoIcon);
            }
            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)
                {
                #region 加载开关按钮
                /// <summary>
                /// 开关按钮
                /// </summary>
                Button btnSwitch;
                if (function.spk == SPK.LightRGBW || function.spk == SPK.LightCCT || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                {
                    btnSwitch = new Button()
                    {
                        X = Application.GetRealWidth(303),
                        Y = Application.GetRealHeight(78),
                        Width = Application.GetMinRealAverage(32),
                        Height = Application.GetMinRealAverage(32),
                        UnSelectedImagePath = "Public/PowerClose.png",
                        SelectedImagePath = "Public/PowerOpen.png",
                        IsSelected = function.trait_on_off.curValue.ToString() == "on",
                        Tag = function.sid + "_Switch",
                    };
                    bodyDiv.AddChidren(btnSwitch);
                    //加载开关按钮事件
                    LoadEvent_SwitchFunction(btnSwitch, function.attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime));
                }
                else
                {
                    #region 加载开关按钮
                    /// <summary>
                    /// 开关按钮
                    /// </summary>
                    Button btnSwitch;
                    if (function.spk == SPK.LightRGBW || function.spk == SPK.LightCCT || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                    btnSwitch = new Button()
                    {
                        btnSwitch = new Button()
                        {
                            X = Application.GetRealWidth(303),
                            Y = Application.GetRealHeight(78),
                            Width = Application.GetMinRealAverage(32),
                            Height = Application.GetMinRealAverage(32),
                            UnSelectedImagePath = "Public/PowerClose.png",
                            SelectedImagePath = "Public/PowerOpen.png",
                            IsSelected = function.trait_on_off.curValue.ToString() == "on",
                            Tag = function.sid + "_Switch",
                        };
                        bodyDiv.AddChidren(btnSwitch);
                        //加载开关按钮事件
                        LoadEvent_SwitchFunction(btnSwitch, function.attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime));
                    }
                    else
                    {
                        btnSwitch = new Button()
                        {
                            X = Application.GetRealWidth(303),
                            Y = Application.GetRealHeight(58),
                            Width = Application.GetMinRealAverage(32),
                            Height = Application.GetMinRealAverage(32),
                            UnSelectedImagePath = "Public/PowerClose.png",
                            SelectedImagePath = "Public/PowerOpen.png",
                            IsSelected = function.trait_on_off.curValue.ToString() == "on",
                            Tag = function.sid + "_Switch",
                        };
                        bodyDiv.AddChidren(btnSwitch);
                        //加载开关按钮事件
                        LoadEvent_SwitchFunction(btnSwitch);
                    }
                    if (SPK.AcSpkList().Contains(function.spk) ||
                        SPK.FhSpkList().Contains(function.spk))
                    {
                        LoadLastStatesButton();
                    }
                    else if (SPK.LightSpkList().Contains(function.spk))
                    {
                        btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
                        LoadLightControl();
                    }
                    else if (SPK.ElectricalSpkList().Contains(function.spk))
                    {
                        btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
                    }
                    #endregion
                        X = Application.GetRealWidth(303),
                        Y = Application.GetRealHeight(58),
                        Width = Application.GetMinRealAverage(32),
                        Height = Application.GetMinRealAverage(32),
                        UnSelectedImagePath = "Public/PowerClose.png",
                        SelectedImagePath = "Public/PowerOpen.png",
                        IsSelected = function.trait_on_off.curValue.ToString() == "on",
                        Tag = function.sid + "_Switch",
                    };
                    bodyDiv.AddChidren(btnSwitch);
                    //加载开关按钮事件
                    LoadEvent_SwitchFunction(btnSwitch);
                }
                if (SPK.AcSpkList().Contains(function.spk) ||
                    SPK.FhSpkList().Contains(function.spk))
                {
                    LoadLastStatesButton();
                }
                else if (SPK.LightSpkList().Contains(function.spk))
                {
                    btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
                    LoadLightControl();
                }
                #endregion
            }
            LoadEvent_DivSkipEvent();
@@ -444,19 +246,6 @@
                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
                IsSelected = function.collect
            };
            if ( !SPK.ArmSensorSpkList().Contains(function.spk)
                && function.spk != SPK.DoorLock
                && function.spk != SPK.GroupControl
                && !SPK.EnvironDeviceSpkList().Contains( function.spk))//!DB_ResidenceData.Instance.CurrentRegion.isOtherShare &&
            {
                bodyDiv.AddChidren(btnCollectionIcon);
            }
            if(function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
            {
                bodyDiv.AddChidren(btnCollectionIcon);
            }
            if (!function.isOnline())
            {
                bodyDiv.BackgroundColor = CSS_Color.PromptingColor2;
@@ -472,19 +261,6 @@
                };
                bodyDiv.AddChidren(btnOffline);
            }
            //排序
            //btnIcon.MouseLongEventHandler = (sender, e) => {
            //    OrderEvent();
            //};
            //btnName.MouseLongEventHandler = (sender, e) => {
            //    OrderEvent();
            //};
            //btnFromFloor.MouseLongEventHandler = (sender, e) => {
            //    OrderEvent();
            //};
            //bodyDiv.MouseLongEventHandler = (sender, e) => {
            //    OrderEvent();
            //};
        }
        /// <summary>
@@ -614,87 +390,12 @@
            LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose);
            #endregion
        }
        /// <summary>
        /// 加载晾衣架功能控制卡片
        /// </summary>
        void ClothesHangerFragment()
        {
            #region ClothesHanger
            var btnClothesHangerUp = new Button()
            {
                X = Application.GetRealWidth(233),
                Y = Application.GetRealHeight(58),
                Width = Application.GetMinRealAverage(32),
                Height = Application.GetMinRealAverage(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon1.png",
                SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon1On.png",
            };
            bodyDiv.AddChidren(btnClothesHangerUp);
            var btnClothesHangerDown = new Button()
            {
                X = Application.GetRealWidth(303),
                Y = Application.GetRealHeight(58),
                Width = Application.GetMinRealAverage(32),
                Height = Application.GetMinRealAverage(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon1.png",
                SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon1On.png",
            };
            bodyDiv.AddChidren(btnClothesHangerDown);
            LoadEvent_ControlClothesHanger(function,  btnClothesHangerUp, btnClothesHangerDown);
            #endregion
        }
        /// <summary>
        /// 排序事件 
        /// </summary>
        public Action OrderEvent;
        /// <summary>
        /// 加载音乐功能控制卡片
        /// </summary>
        void MusicFragment()
        {
            #region Music
            var btnPrev = new Button()
            {
                X = Application.GetRealWidth(163),
                Y = Application.GetRealHeight(58),
                Width = Application.GetMinRealAverage(32),
                Height = Application.GetMinRealAverage(32),
                UnSelectedImagePath = "MusicIcon/prev.png",
                SelectedImagePath = "MusicIcon/prevSeletced.png",
            };
            bodyDiv.AddChidren(btnPrev);
            var btnPlay = new Button()
            {
                X = Application.GetRealWidth(233),
                Y = Application.GetRealHeight(58),
                Width = Application.GetMinRealAverage(32),
                Height = Application.GetMinRealAverage(32),
                UnSelectedImagePath = "MusicIcon/pause.png",
                SelectedImagePath = "MusicIcon/play.png",
                //IsSelected = (function as A31MusicModel).A31PlayStatus.status == "play" ,
                Tag = function.spk + "_State_" + function.sid
            };
            bodyDiv.AddChidren(btnPlay);
            var btnNext = new Button()
            {
                X = Application.GetRealWidth(303),
                Y = Application.GetRealHeight(58),
                Width = Application.GetMinRealAverage(32),
                Height = Application.GetMinRealAverage(32),
                UnSelectedImagePath = "MusicIcon/next.png",
                SelectedImagePath = "MusicIcon/nextSelected.png",
            };
            bodyDiv.AddChidren(btnNext);
            LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function);
            #endregion
        }
        /// <summary>
        /// 加载功能状态信息按钮