JLChen
2021-08-28 3c8f41f50076a3b904705ef9f94d1a827ecd8c52
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -312,6 +312,88 @@
                        #endregion
                    }
                    break;
                case SPK.AirFreshStandard:
                    {
                        #region 界面
                        ///开关
                        LogicView.FunTypeView AirFreshSwitchVie = new LogicView.FunTypeView();
                        AirFreshSwitchVie.btnText.TextID = StringId.switchLogic;
                        fLayout.AddChidren(AirFreshSwitchVie.FLayoutView());
                        ///风速
                        LogicView.FunTypeView AirFreshSpeedView = new LogicView.FunTypeView();
                        AirFreshSpeedView.frameLayout.Y = AirFreshSwitchVie.frameLayout.Bottom;
                        AirFreshSpeedView.btnText.TextID = StringId.speedLogic;
                        fLayout.AddChidren(AirFreshSpeedView.FLayoutView());
                        #endregion
                        #region 点击事件
                        ///开关点击事件
                        AirFreshSwitchVie.btnClick.MouseUpEventHandler += (sender, e) =>
                          {
                              SwitchViewMethod(device, AirFreshSwitchVie.btnState, 2);
                          };
                        ///风速点击事件
                        AirFreshSpeedView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            //定义一个临时列表
                            List<string> fanAttrList = new List<string>();
                            //动态读取新风风速列表
                            var fanAttr = device.GetAttribute(FunctionAttributeKey.FanSpeed);
                            foreach (var fanAttrValue in fanAttr.value)
                            {
                                switch (fanAttrValue)
                                {
                                    case "high":
                                        {
                                            fanAttrList.Add(Language.StringByID(StringId.HighWindSpeed));
                                        }
                                        break;
                                    case "medium":
                                        {
                                            fanAttrList.Add(Language.StringByID(StringId.MiddleWindSpeed));
                                        }
                                        break;
                                    case "low":
                                        {
                                            fanAttrList.Add(Language.StringByID(StringId.LowWindSpeed));
                                        }
                                        break;
                                    case "auto":
                                        {
                                            fanAttrList.Add(Language.StringByID(StringId.Auto));
                                            break;
                                        }
                                }
                            }
                            ///之前的状态文本
                            string currText = AirFreshSpeedView.btnState.Text;
                            //设备属性值,云雀上定义好的;
                            string keyVlaue = "fan";
                            selectedState = device.spk + "_" + keyVlaue;
                            PublicInterface speedView = new PublicInterface();
                            var speedListStr = fanAttrList;// speedView.GetViewList(keyVlaue);
                            speedView.SingleSelectionShow(this, speedListStr, Language.StringByID(StringId.speedLogic), currText
                               , (stateValue) =>
                               {
                                   //界面显示选中值
                                   AirFreshSpeedView.btnState.Text = stateValue;
                                   //数据封装
                                   AddDictionary(keyVlaue, speedView.GetModeValueString(stateValue, keyVlaue));
                               });
                        };
                        if (edit)
                        {
                            //显示编辑之前的设备状态
                            GetEditState(device, index, AirFreshSwitchVie.btnState, AirFreshSpeedView.btnState, null, null);
                        }
                        #endregion
                    }
                    break;
            }
            #endregion
@@ -357,8 +439,7 @@
                        case SPK.AcStandard:
                        case SPK.FloorHeatStandard:
                            {
                                //(空调/地热)做了一个特殊处理;
                                //做了一个特殊处理;
                                bool _bool = false;
                                for (int i = 0; i < dicSateteList.Count; i++)
                                {
@@ -378,8 +459,38 @@
                                    diction.Add("value", "on");
                                    dicSateteList.Add(diction);
                                }
                            }
                            break;
                        case SPK.AirFreshStandard:
                            {
                                //做了一个特殊处理;
                                bool _bool = false;
                                for (int i = 0; i < dicSateteList.Count; i++)
                                {
                                    var dic = dicSateteList[i];
                                    if (dic.ContainsValue("on_off"))
                                    {
                                        if (dic["on_off"] == "on")
                                        {
                                            //判断是否存在且是开状态
                                            _bool = true;
                                            break;
                                        }
                                    }
                                }
                                if (!_bool)
                                {
                                    //如果新风为含有开关属性且是关=状态;
                                    //清空列表所有数据,重新单独配置一个开关属性且是关=状态;
                                    //(新风属性是单独控制的,如果配置关,再配置一个风速,风速一样执行)
                                    dicSateteList.Clear();
                                    //没有开关就默认添加-开-属性
                                    Dictionary<string, string> diction = new Dictionary<string, string>();
                                    diction.Add("key", "on_off");
                                    diction.Add("value", "off");
                                    dicSateteList.Add(diction);
                                }
                            }
                            break;
                    }
@@ -600,8 +711,6 @@
            }
        }
    }
}