wjc
2023-07-26 9508510f0b27da3278fa1161eb2ba3dd1e3e2030
HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -156,6 +156,83 @@
        }
        /// <summary>
        /// 多选择
        /// </summary>
        /// <param name="frameLayout">父控件</param>
        /// <param name="list">显示数据源</param>
        /// <param name="titleText"></param>
        /// <param name="stateTextList">之前状态文本</param>
        /// <param name="action">返回索引值列表</param>
        /// <param name="textSize">显示文本字体大小</param>
        public void MultiSelectShow(FrameLayout frameLayout, List<Face> list, string titleText, string stateTexts, Action<List<int>> action, int textSize = LogicView.TextSize.text14)
        {
            LogicView.DateView view = new LogicView.DateView();
            view.btnTitle.Text = titleText;
            view.FLayoutView(frameLayout, list.Count);
            view.btnCancel.MouseUpEventHandler += (sender, e) =>
            {
                //移除fLayout界面
                view.frameLayout.RemoveFromParent();
            };
            List<int> intList = new List<int>();
            for (int i = 0; i < list.Count; i++)
            {
                var  face= list[i];
                LogicView.CheckView checkView = new LogicView.CheckView();
                checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                checkView.btnText.TextSize = textSize;
                view.frameLayout.AddChidren(checkView.FLayoutView());
                checkView.btnText.Text = face.userName;
                checkView.btnClick.Tag = i;//标记
                if (stateTexts.Contains(face.userId))
                {
                    //显示之前的选中状态
                    checkView.btnCheckIcon.IsSelected = true;
                    intList.Add(i);
                }
                //点击事件
                checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                {
                    int clickIndex =int.Parse(checkView.btnClick.Tag.ToString());
                    checkView.btnClick.IsSelected = !checkView.btnClick.IsSelected;
                    if (checkView.btnClick.IsSelected)
                    {
                        checkView.btnCheckIcon.IsSelected = true;
                        if (!intList.Contains(clickIndex))
                        {
                            //添加选中数据
                            intList.Add(clickIndex);
                        }
                    }
                    else
                    {
                        checkView.btnCheckIcon.IsSelected = false;
                        if (intList.Contains(clickIndex))
                        {
                            //移除选中数据
                            intList.Remove(clickIndex);
                        }
                    }
                };
            }
            view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
            {
                if (intList.Count == 0)
                {
                    return;
                }
                action(intList);
                //移除fLayout界面
                view.frameLayout.RemoveFromParent();
            };
        }
        /// <summary>
        /// 月-多选择
        /// </summary>
        /// <param name="frameLayout">父控件</param>
@@ -261,9 +338,10 @@
        /// </summary>
        /// <param name="frame">显示在哪个界面的父控件</param>
        /// <param name="list">显示数据源</param>
        /// <param name="stateList">之前状态数据源</param>
        /// <param name="titleText">标题</param>
        /// <param name="action">返回值索引值</param>
        public void FrameOrVv(FrameLayout frame, List<string> list, List<string> stateList, int titleText, Action<int> action)
        public void FrameOrVv(FrameLayout frame, List<string> list, List<string> stateList, string titleText, Action<int> action,bool isIcon=true)
        {
            int line = 0;
@@ -284,7 +362,7 @@
            frame.AddChidren(frameLayout);
            LogicView.DateView view = new LogicView.DateView();
            view.btnTitle.TextID = titleText;
            view.btnTitle.Text = titleText;
            view.FLayoutView(frameLayout, line);
            view.btnCancel.MouseUpEventHandler += (sender, e) =>
            {
@@ -310,7 +388,7 @@
                verticalRefresh.EndHeaderRefreshing();
            };
            if (list.Count == 0)
            if (list.Count == 0&&isIcon)
            {
                Button btnTipNot = new Button
                {
@@ -367,12 +445,18 @@
                    verticalRefresh.AddChidren(checkView.FLayoutView());
                }
                if (stateList.Contains(strName))
                {
                    checkView.btnCheckIcon.IsSelected = true;
                }
                checkView.btnText.Text = strName;
                checkView.btnClick.Tag = i;//标记
                if (stateList.Contains(strName))
                {
                    //checkView.btnCheckIcon.IsSelected = true;
                    checkBtn.IsSelected = false;
                    checkView.btnCheckIcon.IsSelected = true;
                    checkBtn = checkView.btnCheckIcon;
                    checkBtn.Tag = checkView.btnClick.Tag.ToString();
                }
                //点击事件
                checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                {
@@ -748,6 +832,93 @@
            return list;
        }
        /// <summary>
        /// 动态获取传感器等级列表
        /// </summary>
        /// <param name="device">功能(sid)</param>
        /// <returns></returns>
        public List<string> GetSensorLevelList(Entity.Function device)
        {
            List<string> list = new List<string>();
            var dic = GetSensorLevelDic(device);
            foreach (var d in dic) {
                list.Add(d.Key);
            }
            return list;
        }
        /// <summary>
        /// 指定获取等级拼接的字符串
        /// </summary>
        /// <param name="device">功能(sid)</param>
        /// <param name="s">初始值</param>
        /// <param name="isTextBoolean">表示true(返回key);false(返回values)</param>
        /// <returns></returns>isTextBoolean
        public string GetSensorLevelText(Entity.Function device, string s, bool isTextBoolean)
        {
            if (device == null || device.attrKeyConfigs == null)
            {
                return "";
            }
            var dic = GetSensorLevelDic(device);
            if (isTextBoolean)
            {
                foreach (var d in dic)
                {
                    if (d.Value==s)
                    {
                        //如果values值存在,返回key值
                        return d.Key.ToString();
                    }
                }
            }
            else
            {
                foreach (var d in dic)
                {
                    if (d.Key==s)
                    {
                        //如果key值存在,返回values值
                        return d.Value.ToString();
                    }
                }
            }
            return "";
        }
        /// <summary>
        /// 动态获取传感器等级字典
        /// </summary>
        /// <param name="device">功能(sid)</param>
        /// <returns></returns>
        public Dictionary<string,string> GetSensorLevelDic(Entity.Function device)
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            if (device == null || device.attrKeyConfigs == null)
            {
                return dic;
            }
            string strKey = "";
            string strKeyValues = "";
            for (int i = 0; i < device.attrKeyConfigs.Count; i++)
            {
                var attrKeyConfig = device.attrKeyConfigs[i];
                foreach (var attrKeyInfo in attrKeyConfig.configs)
                {
                    //动态拼接字符串
                    strKey = attrKeyInfo.desc + ":" + attrKeyInfo.start + "~" + attrKeyInfo.end + attrKeyConfig.unit;
                    strKeyValues = "(" + attrKeyInfo.start + "," + attrKeyInfo.end + "]";
                    if (!dic.ContainsKey(strKey))
                    {
                        //没有再添加
                        dic.Add(strKey, strKeyValues);
                    }
                }
            }
            return dic;
        }
        /// <summary>
        /// 模式/风速互相转换值的方法
        /// </summary>
        /// <param name="text">文本</param>
@@ -966,7 +1137,7 @@
                            case "(115,150]": {
                                    text = Language.StringByID(StringId.pmzhongdu);
                                } break;
                            case "(151,100000]": {
                            case "(150,100000]": {
                                    text = Language.StringByID(StringId.pmzhongduwuran);
                                } break;
                        }