wei
2021-01-27 7232642ff48a7fbde2018cde652f3e771fa58025
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
old mode 100644 new mode 100755
@@ -103,7 +103,7 @@
            LogicView.LogicTypeTitleView cyclicTitle = new LogicView.LogicTypeTitleView();
            cyclicTitle.frameLayout.Height = Application.GetRealHeight(50);
            cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12);
            cyclicTitle.btnText.Text = MainView.GetWeekText(Logic.currlogic);
            cyclicTitle.btnText.Text = MainView.GetCyclicText(Logic.currlogic);
            viewLayout.AddChidren(cyclicTitle.FLayoutView());
            #endregion
@@ -153,14 +153,9 @@
            ///或和与点击事件
            titleCondition.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                FrameLayout fLayout = new FrameLayout
                {
                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                };
                this.AddChidren(fLayout);
                AndOrMethod(fLayout, titleCondition.btnText);
                AndOrMethod(titleCondition.btnText);
            };
            ///条件点击事件
            ///条件添加点击事件
            addInputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
            {
                var addInputType = new AddInputType();
@@ -168,7 +163,7 @@
                addInputType.Show();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            ///目标点击事件
            ///目标添加点击事件
            addOutputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
            {
                var addTarget = new AddTarget();
@@ -184,6 +179,21 @@
            ///保存点击事件
            saveView.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                if (Logic.currlogic.input.Count == 0&& Logic.currlogic.output.Count == 0)
                {
                    new LogicView.TipPopView().TipBox(StringId.tip, StringId.conditioncNullOrtargetNull);
                    return;
                }
                if (Logic.currlogic.input.Count == 0)
                {
                    new LogicView.TipPopView().TipBox(StringId.tip, StringId.conditioncNull);
                    return;
                }
                if (Logic.currlogic.output.Count == 0)
                {
                    new LogicView.TipPopView().TipBox(StringId.tip, StringId.targetNull);
                    return;
                }
                Loading loading = new Loading();
                this.AddChidren(loading);
                HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
@@ -194,7 +204,7 @@
                    {
                        list.Add(logic.name);
                    }
                    new LogicView.TipPopView().InputBox(StringId.editName, Logic.currlogic.name, StringId.nameNull, StringId.NameAlreadyExists, list, (logicName) =>
                    new LogicView.TipPopView().InputBox(StringId.editName, InpOrOutLogicMethod.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName) =>
                    {
                        Logic.currlogic.name = logicName;
                        Logic.currlogic.sid = LogicMethod.NewSid();
@@ -226,7 +236,7 @@
                                            //数据返序列化为Logic对象
                                            var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
                                            var logic = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic>(str);
                                            if (logic.userLogicId!="")
                                            if (logic.userLogicId != "")
                                            {
                                                //更新云端唯一自动化id;
                                                Logic.currlogic.userLogicId = logic.userLogicId;
@@ -242,6 +252,10 @@
                                        Logic.LogicList.Add(Logic.currlogic);
                                        LogicMethod.RemoveAllView();
                                        MainView.MainShow();
                                    }
                                    else if (responsePackNew != null && responsePackNew.Code == "14005")
                                    {
                                        new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline));
                                    }
                                    else
                                    {
@@ -265,7 +279,7 @@
                        try
                        {
                            //发送修改逻辑命令;
                            responsePackNew = Send.updateLogic(Logic.currlogic);
                            responsePackNew = Send.UpdateLogic(Logic.currlogic);
                        }
                        catch { }
@@ -279,7 +293,11 @@
                                    LogicMethod.RemoveAllView();
                                    MainView.MainShow();
                                }
                                else
                                else if (responsePackNew != null && responsePackNew.Code == "14005")
                                {
                                    new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline));
                                }
                                else
                                {
                                    new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
                                }
@@ -439,33 +457,30 @@
        /// <param name="button">显示文本</param>
        public void WeekMethod(FrameLayout fLayout, Button button)
        {
            List<string> weekStr = new List<string> {
             Language.StringByID(StringId.monday),
             Language.StringByID(StringId.tuesday),
             Language.StringByID(StringId.wednesday),
             Language.StringByID(StringId.thursday),
             Language.StringByID(StringId.friday),
             Language.StringByID(StringId.saturday),
             Language.StringByID(StringId.sunday),
            };
            //定义一个局部weekList列表用来记录选中数据;
            List<string> weekStateList = new List<string>();
            weekStateList.Clear();
            PublicInterface weekView = new PublicInterface();
            if (Logic.currlogic.cycle.type == "week")
            {
                var list = GetWeekString(Logic.currlogic.cycle.value, "int");
                //数据转换
                var list = weekView.GetWeekString(Logic.currlogic.cycle.value, "int");
                //加载之前保存的数据
                weekStateList.AddRange(list);
            }
            PublicInterface weekView = new PublicInterface();
            weekView.MultiSelectShow(fLayout, weekStr, Language.StringByID(StringId.cyclic), weekStateList
            var weekListStr= weekView.GetViewList("week");
            weekView.MultiSelectShow(fLayout, weekListStr, Language.StringByID(StringId.cyclic), weekStateList
               , (list) =>
               {
                   var statelist = GetWeekString(list, "str");
                   //选中数据处理
                   var statelist = weekView.GetWeekString(list, "str");
                   string textStr = MainView.GetWeekString(statelist);
                   //显示选中数据
                   button.Text = textStr;
                   //封装数据
                   Logic.currlogic.cycle.type = "week";
                   Logic.currlogic.cycle.value = statelist;
                   button.Text = MainView.GetWeekString(statelist);
               });
        }
@@ -480,30 +495,33 @@
            PublicInterface weekView = new PublicInterface();
            weekView.MonSelectShow(fLayout, Logic.currlogic, (monList) =>
                {
                    //选中数据处理
                    string textStr= MainView.GetMonString(monList);
                    //显示选中数据
                    button.Text = textStr;
                    //封装数据
                    Logic.currlogic.cycle.type = "mon";
                    Logic.currlogic.cycle.value = monList;
                    button.Text = MainView.GetMonString(monList);
                });
        }
        /// <summary>
        /// 满足条件
        /// </summary>
        /// <param name="fLayout">弹框主控件</param>
        /// <param name="button">显示文本</param>
        public void AndOrMethod(FrameLayout fLayout, Button button)
        public void AndOrMethod(Button button)
        {
            List<string> strList = new List<string> {
             Language.StringByID(StringId.andCondition),
             Language.StringByID(StringId.orCondition),
            };
            ///之前的状态文本
            string currCondition = button.Text;
            PublicInterface conditionView = new PublicInterface();
            conditionView.SingleSelectionShow(fLayout, strList, Language.StringByID(StringId.meetTheCondition), currCondition
            var strList = conditionView.GetViewList("andor");
            conditionView.SingleSelectionShow(this, strList, Language.StringByID(StringId.meetTheCondition), currCondition
               , (stateValue) =>
               {
                   //界面显示选中值
                   button.Text = stateValue;
                   //封装数据
                   if (stateValue == Language.StringByID(StringId.orCondition))
                   {
                       Logic.currlogic.relation = "or";
@@ -512,120 +530,13 @@
                   {
                       Logic.currlogic.relation = "and";
                   }
                   button.Text = stateValue;
               });
        }
        /// <summary>
        /// 星期周期转换值的方法
        /// </summary>
        /// <param name="list"></param>
        /// <param name="str_or_int"></param>
        /// <returns></returns>
        public List<string> GetWeekString(List<string> list, string str_or_int)
        {
            string weekTextName = "";
            List<string> stateList = new List<string>();
            for (int i = 0; i < list.Count; i++)
            {
                var s = list[i];
                if (str_or_int == "int")
                {
                    switch (s)
                    {
                        case "1":
                            {
                                weekTextName = Language.StringByID(StringId.monday);
                            }
                            break;
                        case "2":
                            {
                                weekTextName = Language.StringByID(StringId.tuesday);
                            }
                            break;
                        case "3":
                            {
                                weekTextName = Language.StringByID(StringId.wednesday);
                            }
                            break;
                        case "4":
                            {
                                weekTextName = Language.StringByID(StringId.thursday);
                            }
                            break;
                        case "5":
                            {
                                weekTextName = Language.StringByID(StringId.friday);
                            }
                            break;
                        case "6":
                            {
                                weekTextName = Language.StringByID(StringId.saturday);
                            }
                            break;
                        case "0":
                            {
                                weekTextName = Language.StringByID(StringId.sunday);
                            }
                            break;
                    }
                }
                else
                {
                    if (Language.StringByID(StringId.monday) == s)
                    {
                        weekTextName = "1";
                    }
                    else if (Language.StringByID(StringId.tuesday) == s)
                    {
                        weekTextName = "2";
                    }
                    else if (Language.StringByID(StringId.wednesday) == s)
                    {
                        weekTextName = "3";
                    }
                    else if (Language.StringByID(StringId.thursday) == s)
                    {
                        weekTextName = "4";
                    }
                    else if (Language.StringByID(StringId.friday) == s)
                    {
                        weekTextName = "5";
                    }
                    else if (Language.StringByID(StringId.saturday) == s)
                    {
                        weekTextName = "6";
                    }
                    else if (Language.StringByID(StringId.sunday) == s)
                    {
                        weekTextName = "0";
                    }
                }
                stateList.Add(weekTextName);
            }
            return stateList;
        }
        /// <summary>
        /// 灰色弹框父控件
        /// </summary>
        /// <param name="frame">显示在哪个界面</param>
        /// <returns></returns>
        public FrameLayout GetFrame(FrameLayout frame, string tagKey)
        {
            FrameLayout fLayout = new FrameLayout
            {
                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                Tag = tagKey,
            };
            frame.AddChidren(fLayout);
            return fLayout;
        }
    }
}