wxr
2023-10-17 46a177eb1acf7ce91af7fe9ff57af87228de938d
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -3,6 +3,8 @@
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using Newtonsoft.Json;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
@@ -59,6 +61,7 @@
        public void Show(Entity.Function device, int index, bool edit)
        {
            this.function = device;
            this.mEdit = edit;
            this.mIndex = index;
@@ -255,6 +258,22 @@
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.kaiqi, StringId.bihe);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                //紧急呼叫传感器
                case SPK.SensorHelp:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.qiujiuandzhengchang;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.qiujiu, StringId.zhengchang );
                        };
                        if (edit)
                        {
@@ -573,6 +592,26 @@
                        };
                    }
                    break;
                //照度传感器
                case SPK.SensorLight:
                    {
                        ///照度传感器
                        LogicView.FunTypeView illuminanceView = new LogicView.FunTypeView();
                        illuminanceView.btnText.TextID = StringId.zhaomingdu;
                        fLayout.AddChidren(illuminanceView.FLayoutView());
                        ///点击事件
                        illuminanceView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            new PublicInterface { }.ViewZuHe(this, StringId.zhaomingdugaoyu, StringId.zhaomingdudiyu, (intText, view) =>
                            {
                                InputBoxAction(device, intText, index, edit);
                            });
                        };
                    }
                    break;
                //甲醛
                case SPK.SensorHcho:
                    {
@@ -798,6 +837,7 @@
                    ////萤石视频门锁
                    inputDevice.condition_type = "9";
                    inputDevice.identifier = this.identifier;
                    //inputDevice.condition = new List<Dictionary<string, string>>();
                }
                else if (device.spk == SPK.SensorPirHold)
                {
@@ -872,6 +912,7 @@
                    case SPK.SensorGas:
                    case SPK.SensorWater:
                    case SPK.SensorSmoke:
                    case SPK.SensorHelp:
                        {
                            keyVlaue = "status";
                            if (!Is_SpkAttribute(keyVlaue)) {
@@ -942,12 +983,14 @@
                {
                    case StringId.xieluo:
                    case StringId.luoshui:
                    case StringId.qiujiu:
                        {
                            value = "alarm";
                        }
                        break;
                    case StringId.wuxieluo:
                    case StringId.wuluoshui:
                    case StringId.zhengchang:
                        {
                            value = "normal";
                        }
@@ -1059,6 +1102,7 @@
        {
            if (edit)
            {
                this.function = device;
                Input inputs = Logic.currlogic.input[index];
                //清除之前旧数据
                dicSateteList.Clear();
@@ -1068,44 +1112,63 @@
                    dicSateteList.AddRange(inputs.condition);
                }
            }
            int max = 100;
            if (device.spk == SPK.SensorLight)
            {
                //照明传感器
                max =int.MaxValue;
            }
            new LogicView.TipPopView { }.InputBox(textInt, stateValue, (value) =>
            {
                string keyValue = "20";
                string key = "20";
                string data_type = "integer";
                string comparator = "=";
                switch (textInt)
                {
                    case StringId.wendugaoyu:
                        {
                            keyValue = "temperature";
                            key = "temperature";
                            comparator = ">";
                            data_type = "float";
                        }
                        break;
                    case StringId.wendudiyu:
                        {
                            keyValue = "temperature";
                            key = "temperature";
                            comparator = "<";
                            data_type = "float";
                        }
                        break;
                    case StringId.shidugaoyu:
                        {
                            keyValue = "humidity";
                            key = "humidity";
                            comparator = ">";
                        }
                        break;
                    case StringId.shidudiyu:
                        {
                            keyValue = "humidity";
                            key = "humidity";
                            comparator = "<";
                        }
                        break;
                    case StringId.zhaomingdugaoyu:
                        {
                            key = "illuminance";
                            comparator = ">";
                        }
                        break;
                    case StringId.zhaomingdudiyu:
                        {
                            key = "illuminance";
                            comparator = "<";
                        }
                        break;
                }
                selectedState = device.spk + "_" + value;
                AddDictionary(keyValue, value, data_type, comparator);
                AddDictionary(key, value, data_type, comparator);
                SaveInput(device,index, edit);
            });
            },1,max);
        }
        /// PM2.5,Co2,Tvoc设置值
        /// </summary>
@@ -1263,8 +1326,10 @@
                            if (indexeList.Count > 0)
                            {
                                dicSateteList.Clear();
                                string s = string.Empty;
                                string seleTxet = string.Empty;
                                string tag = string.Empty;
                                string[] array = new string[indexeList.Count];
                                for (int i = 0; i < indexeList.Count; i++)
                                {
                                    if (i > faceIdList.Count)
@@ -1273,15 +1338,15 @@
                                    }
                                    var indexe = indexeList[i];
                                    var face = faceIdList[indexe];
                                    //数据封装<高胜说萤石那边是推送用户名>
                                    AddDictionary("open_user", face.userName, "string");
                                    s += face.userName;
                                    s += ",";
                                    tag += face.userId;
                                    tag += "_";
                                    array[i] = face.userName;
                                }
                                seleTxet = Newtonsoft.Json.JsonConvert.SerializeObject(array);
                                //数据封装<高胜说萤石那边是推送用户名>
                                AddDictionary("open_user",seleTxet, "string", "[]");
                                //界面显示选中值
                                btnState.Text = s;
                                btnState.Text = InpOrOutLogicMethod.Current.RemoveLastStr(seleTxet);
                                btnState.Tag = tag;
                            }
@@ -1502,6 +1567,10 @@
        /// <returns></returns>
        private bool CheckSpk()
        {
            if (this.function == null)
            {
                return false;
            }
            if (this.function.spk == SPK.VideoDoorLock ||
               this.function.spk == SPK.doorgate
                )
@@ -1510,7 +1579,7 @@
            }
            return false;
        }
        }
        /// <summary>
        /// 判断dictionaryB是否完整包含另一个dictionaryA
        /// </summary>