wei
2021-01-27 7232642ff48a7fbde2018cde652f3e771fa58025
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -85,7 +85,7 @@
                                }
                                //显示文本
                                lightSwitchView.btnState.TextID = id;
                                selectedState = device.functionType + "_" + strValue;
                                selectedState = device.spk + "_" + strValue;
                                //设备属性值,云雀上定义好的;
                                string keyVlaue = "on_off";
                                AddDictionary(keyVlaue, strValue);
@@ -149,46 +149,6 @@
        }
        /// <summary>
        /// 开关功能展开界面
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="device"></param>
        /// <param name="button"></param>
        /// <param name="len"></param>
        public void SwitchViewMethod(FrameLayout frame, Entity.Function device, Button button, int len)
        {
            LogicView.SwitchView switchView = new LogicView.SwitchView();
            switchView.FLayoutView(frame, len, button.Text, (Action<string>)((strValue) =>
            {
                int id = 0;
                switch (strValue)
                {
                    case "on":
                        {
                            id = StringId.onLogic;
                        }
                        break;
                    case "off":
                        {
                            id = StringId.offLogic;
                        }
                        break;
                }
                button.TextID = id;
                keyVlaue = "on_off";
                Dictionary<string, string> dic = new Dictionary<string, string>();
                LogicMethod.dictionary(dic, "key", "on_off");
                LogicMethod.dictionary(dic, "comparator", "=");
                LogicMethod.dictionary(dic, "data_type", "string");
                LogicMethod.dictionary(dic, "value", strValue);
                AddDictionaryData(dicSateteList, keyVlaue, dic);
                selectedState = device.spk + "_" + strValue;
            }));
        }
        /// <summary>
        /// 显示编辑之前的设备状态
        /// </summary>
        /// <param name="device">编辑设备</param>
@@ -208,39 +168,6 @@
                //有数据重新赋值
                dicSateteList = dicList;
            }
            switch (device.spk)
            {
                //开关灯光 light.Switch
                case SPK.LightDimming:
                case SPK.LightRGB:
                case SPK.LightRGBW:
                case SPK.LightCCT:
                case SPK.LightSwitch:
                //窗帘
                case SPK.CurtainSwitch:
                case SPK.CurtainRoller:
                case SPK.CurtainTrietex:
                //空调
                case SPK.AcStandard:
                //地热
                case SPK.FloorHeatStandard:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            if (value == "on")
                            {
                                button1.Text = Language.StringByID(StringId.onLogic);
                            }
                            else
                            {
                                button1.Text = Language.StringByID(StringId.offLogic);
                            }
                        }
                    }
                    break;
            }
            InpOrOutLogicMethod.EditState(device, dicList, button1, button2, button3, button4);
        }
        /// <summary>
@@ -256,21 +183,20 @@
            LogicMethod.dictionary(dic, "comparator", "=");
            LogicMethod.dictionary(dic, "data_type", "string");
            LogicMethod.dictionary(dic, "value", selectedValue);
            AddDictionaryList(KeyValue, dic, dicSateteList);
            AddDictionaryList(KeyValue, dic);
        }
        /// <summary>
        /// 更新数据列表
        /// </summary>
        /// <param name="keyValue">设备属性值,云雀上定义好的</param> 
        /// <param name="dictionary">选中数据</param>
        /// <param name="dicList">存储数据列表</param>
        /// <param name="dictionary">添加选中数据</param>
        /// <returns></returns>
        private void AddDictionaryList(string keyValue, Dictionary<string, string> dictionary, List<Dictionary<string, string>> dicList)
        private void AddDictionaryList(string keyValue, Dictionary<string, string> dictionary)
        {
            int indexValue = -1;
            for (int i = 0; i < dicList.Count; i++)
            for (int i = 0; i < dicSateteList.Count; i++)
            {
                var dic = dicList[i];
                var dic = dicSateteList[i];
                if (dic.ContainsValue(keyValue))
                {
                    //判断是否存在
@@ -282,14 +208,14 @@
            if (indexValue != -1)
            {
                //存在移除
                dicList.RemoveAt(indexValue);
                dicSateteList.RemoveAt(indexValue);
                //重新添加
                dicList.Insert(indexValue, dictionary);
                dicSateteList.Insert(indexValue, dictionary);
            }
            else
            {
                //新添加
                dicList.Add(dictionary);
                dicSateteList.Add(dictionary);
            }
        }