From ae142832f9721956f963cf008047a2620a035bf7 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 27 十一月 2020 17:00:58 +0800
Subject: [PATCH] 2020-11-27-3

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs |  451 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 432 insertions(+), 19 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
index 232f022..0526ac0 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -11,9 +11,10 @@
         {
             Tag = "Logic";
         }
-        
+
         public void Show()
         {
+
             this.BackgroundColor = CSS.CSS_Color.viewMiddle;
             LogicView.TopView topView = new LogicView.TopView();
             this.AddChidren(topView.FLayoutView());
@@ -22,7 +23,7 @@
                  RemoveFromParent();
              };
             topView.topNameBtn.TextID = StringId.newAutomation;
-            
+
             VerticalScrolViewLayout viewLayout = new VerticalScrolViewLayout
             {
                 Y = Application.GetRealHeight(64),
@@ -100,22 +101,9 @@
                     BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                 };
                 this.AddChidren(fLayout);
-                LogicView.DateView dateView = new LogicView.DateView();
-                dateView.FLayoutView(fLayout, 7);
-                dateView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
-                {
-                    //绉婚櫎fLayout鐣岄潰
-                    fLayout.RemoveFromParent();
-                };
-                for (int i = 0; i < 7; i++) {
-                    LogicView.SelectTypeView dateTypeView = new LogicView.SelectTypeView();
-                    dateTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
-                    dateTypeView.btnIcon.Visible = false;
-                    dateTypeView.btnText.X = Application.GetRealWidth(20);
-                    dateTypeView.btnText.TextID = StringId.time;
-                    dateTypeView.btnNextIcon.X = Application.GetRealWidth(307);
-                    dateView.AddChidren(dateTypeView.FLayoutView());
-                }
+                DateMethod(fLayout, cyclicTitle.btnText);
+
+
             };
             #endregion
 
@@ -147,7 +135,7 @@
                 Logic.LogicList.Add(Logic.currlogic);
                 LogicMethod.RemoveAllView();
                 MainView.MainShow();
-                
+
             };
             //saveView.frameLayout.Y = this.Height - saveView.frameLayout.Height;
             #endregion
@@ -155,5 +143,430 @@
 
 
         }
+        /// <summary>
+        /// 寰幆鏂瑰紡(姣忓ぉ锛屾瘡鏈堛�傘��)
+        /// </summary>
+        /// <param name="fLayout">寮规涓绘帶浠�</param>
+        /// <param name="button">鏄剧ず鏂囨湰</param>
+        public void DateMethod(FrameLayout fLayout, Button button)
+        {
+
+            LogicView.DateView dateView = new LogicView.DateView();
+            dateView.btnTitle.TextID = StringId.cyclic;
+            dateView.FLayoutView(fLayout, 4);
+            dateView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
+            {
+                //绉婚櫎fLayout鐣岄潰
+                fLayout.RemoveFromParent();
+            };
+            //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏂囨湰鐘舵��
+            string weekName = "";
+            //瀹氫箟涓�涓眬閮˙tn鐢ㄦ潵璁板綍閫変腑Btn;
+            var selecetdBtn = new Button();
+            for (int i = 0; i < 4; i++)
+            {
+                LogicView.SelectTypeView dateTypeView = new LogicView.SelectTypeView();
+                dateTypeView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
+                dateTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
+                dateTypeView.btnIcon.Visible = false;
+                dateTypeView.btnText.X = Application.GetRealWidth(20);
+                dateTypeView.btnNextIcon.X = Application.GetRealWidth(307);
+                dateTypeView.btnLine.X = Application.GetRealWidth(20);
+                dateTypeView.btnLine.Width = Application.GetRealWidth(303);
+                dateView.frameLayout.AddChidren(dateTypeView.FLayoutView());
+                dateTypeView.btnClick.Tag = i;//鏍囪绫诲瀷
+                switch (i)
+                {
+                    case 0:
+                        {
+                            weekName = Language.StringByID(StringId.performA);
+                            dateTypeView.btnNextIcon.Visible = false;
+                        }
+                        break;
+                    case 1:
+                        {
+                            weekName = Language.StringByID(StringId.days);
+                            dateTypeView.btnNextIcon.Visible = false;
+                        }
+                        break;
+                    case 2:
+                        {
+                            weekName = Language.StringByID(StringId.weekly);
+                        }
+                        break;
+                    case 3:
+                        {
+                            weekName = Language.StringByID(StringId.monthly);
+                        }
+                        break;
+
+
+                }
+                dateTypeView.btnText.Text = weekName;
+                //寰幆绫诲瀷(渚嬪锛氭瘡鏈堬紝姣忓ぉ)鐐瑰嚮浜嬩欢
+                dateTypeView.btnClick.MouseUpEventHandler += (sender, e) =>
+                {
+                    int clickIndex = int.Parse(dateTypeView.btnClick.Tag.ToString());
+                    switch (clickIndex)
+                    {
+                        case 0:
+                            {
+                                weekName = Language.StringByID(StringId.performA);
+                                selecetdBtn.TextColor = CSS.CSS_Color.textColor;
+                                dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
+                                selecetdBtn = dateTypeView.btnText;
+                            }
+                            break;
+                        case 1:
+                            {
+                                weekName = Language.StringByID(StringId.days);
+                                selecetdBtn.TextColor = CSS.CSS_Color.textColor;
+                                dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
+                                selecetdBtn = dateTypeView.btnText;
+
+                            }
+                            break;
+                        case 2:
+                            {
+                                // weekName = Language.StringByID(StringId.weekly);
+                                WeekMethod(fLayout, button);
+                            }
+                            break;
+                        case 3:
+                            {
+                                //weekName = Language.StringByID(StringId.monthly);
+                                MonMethod(fLayout, button);
+                            }
+                            break;
+
+
+                    }
+                };
+
+
+                //鏄剧ず涔嬪墠鐨勭姸鎬�
+                if (button.Text == weekName)
+                {
+                    dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
+                    selecetdBtn = dateTypeView.btnText;
+                }
+                else if (button.Text == weekName)
+                {
+                    dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
+                    selecetdBtn = dateTypeView.btnText;
+                }
+            }
+            //纭畾淇濆瓨
+            dateView.btnConfirm.MouseUpEventHandler += (sender3, e3) =>
+            {
+                if (weekName == Language.StringByID(StringId.monthly)|| weekName!= Language.StringByID(StringId.weekly)) {
+                    //鎻愮ず锛氳繕鏈��
+                    return;
+
+                }
+
+                if (weekName == Language.StringByID(StringId.performA))
+                {
+                    //鎵ц涓�娆�
+                    Logic.currlogic.cycle.type = "once";
+                }
+                else if (weekName == Language.StringByID(StringId.days))
+                {
+                    //姣忓ぉ
+                    Logic.currlogic.cycle.type = "day";
+
+                }
+                //閫変腑淇濆瓨涔嬪悗鏄剧ず鏂囨湰
+                button.Text = weekName;
+                //绉婚櫎fLayout鐣岄潰
+                fLayout.RemoveFromParent();
+            };
+        }
+        /// <summary>
+        /// 閫変腑鏄熸湡鍑�(鍛ㄤ竴锛屽懆浜� 銆傘�傘��)
+        /// </summary>
+        /// <param name="fLayout">寮规涓绘帶浠�</param>
+        /// <param name="button">鏄剧ず鏂囨湰</param>
+        public void WeekMethod(FrameLayout fLayout, Button button)
+        {
+
+            LogicView.DateView weekView = new LogicView.DateView();
+            weekView.btnTitle.TextID = StringId.cyclic;
+            weekView.FLayoutView(fLayout, 7);
+            weekView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
+            {
+                weekView.frameLayout.RemoveFromParent();
+            };
+            //瀹氫箟涓�涓眬閮╳eekList鍒楄〃鐢ㄦ潵璁板綍閫変腑鏁版嵁;
+            List<string> weekList = new List<string>();
+            if (Logic.currlogic.cycle.type == "week")
+            {
+                //鍔犺浇涔嬪墠淇濆瓨鐨勬暟鎹�
+                weekList.AddRange(Logic.currlogic.cycle.value);
+            }
+            //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏂囨湰鐘舵��
+            string weekName = "";
+            for (int i = 0; i < 7; i++)
+            {
+                LogicView.SelectTypeView weekTypeView = new LogicView.SelectTypeView();
+                weekTypeView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
+                weekTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
+                weekTypeView.btnIcon.Visible = false;
+                weekTypeView.btnText.X = Application.GetRealWidth(20);
+                weekTypeView.btnLine.X = Application.GetRealWidth(20);
+                weekTypeView.btnLine.Width = Application.GetRealWidth(303);
+                weekTypeView.btnNextIcon.X = Application.GetRealWidth(303);
+                weekTypeView.btnNextIcon.Width = Application.GetMinRealAverage(28);
+                weekTypeView.btnNextIcon.Height = Application.GetMinRealAverage(28);
+                weekTypeView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
+                weekTypeView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
+                weekView.frameLayout.AddChidren(weekTypeView.FLayoutView());
+                weekTypeView.btnClick.Tag = i;//鏍囪绱㈠紩
+                switch (i)
+                {
+                    case 0:
+                        {
+                            weekName = Language.StringByID(StringId.monday);
+                        }
+                        break;
+                    case 1:
+                        {
+                            weekName = Language.StringByID(StringId.tuesday);
+                        }
+                        break;
+                    case 2:
+                        {
+                            weekName = Language.StringByID(StringId.wednesday);
+                        }
+                        break;
+                    case 3:
+                        {
+                            weekName = Language.StringByID(StringId.thursday);
+                        }
+                        break;
+                    case 4:
+                        {
+                            weekName = Language.StringByID(StringId.friday);
+                        }
+                        break;
+                    case 5:
+                        {
+                            weekName = Language.StringByID(StringId.saturday);
+                        }
+                        break;
+                    case 6:
+                        {
+                            weekName = Language.StringByID(StringId.sunday);
+                        }
+                        break;
+
+                }
+                weekTypeView.btnText.Text = weekName;
+                if (weekList.Contains(i.ToString()))
+                {
+                    //鏄剧ず涔嬪墠鐨勯�変腑鐘舵��
+                    weekTypeView.btnNextIcon.IsSelected = true;
+                }
+                //鏄熸湡鐨勭偣鍑讳簨浠�
+                weekTypeView.btnClick.MouseUpEventHandler += (sender, e) =>
+                {
+                    string clickIndex = weekTypeView.btnClick.Tag.ToString();
+                    weekTypeView.btnClick.IsSelected = !weekTypeView.btnClick.IsSelected;
+                    if (weekTypeView.btnClick.IsSelected)
+                    {
+                        weekTypeView.btnNextIcon.IsSelected = true;
+                        if (!weekList.Contains(clickIndex))
+                        {
+                            //娣诲姞閫変腑鏁版嵁
+                            weekList.Add(clickIndex);
+                        }
+                    }
+                    else
+                    {
+                        weekTypeView.btnNextIcon.IsSelected = false;
+                        if (weekList.Contains(clickIndex))
+                        {
+                            //绉婚櫎閫変腑鏁版嵁
+                            weekList.Remove(clickIndex);
+                        }
+                    }
+
+                };
+
+            }
+            //纭畾鐐瑰嚮浜嬩欢
+            weekView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
+            {
+                if (weekList.Count == 0)
+                {
+                    //鎻愮ず锛氳繕娌¢�変腑鎵ц鍛ㄦ湡
+                    return;
+                }
+                Logic.currlogic.cycle.type = "week";
+                Logic.currlogic.cycle.value = weekList;
+                button.Text = GetWeekString(weekList);
+                fLayout.RemoveFromParent();
+            };
+
+        }
+        /// <summary>
+        /// 姣忔湀
+        /// </summary>
+        /// <param name="fLayout">寮规涓绘帶浠�</param>
+        /// <param name="button">鏄剧ず鏂囨湰</param>
+        public void MonMethod(FrameLayout fLayout, Button button)
+        {
+            LogicView.MonView monView = new LogicView.MonView();
+            monView.btnTitle.TextID = StringId.monthly;
+            monView.FLayoutView(fLayout);
+            monView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
+            {
+                monView.frameLayout.RemoveFromParent();
+            };
+            //瀹氫箟涓�涓眬閮╩onList鍒楄〃鐢ㄦ潵璁板綍閫変腑鏁版嵁;
+            List<string> monList = new List<string>();
+            if (Logic.currlogic.cycle.type == "mon")
+            {
+                //鍔犺浇涔嬪墠淇濆瓨鐨勬暟鎹�
+                monList.AddRange(Logic.currlogic.cycle.value);
+            }
+            //瀹氫箟涓�涓彉閲忚褰曡鏁�
+            int lineSun = 0;
+            for (int i = 1; i < 32; i++)
+            {
+                Button monTextBtn = new Button
+                {
+                    Width = Application.GetMinRealAverage(30),
+                    Height = Application.GetMinRealAverage(30),
+                    Radius = (uint)Application.GetRealHeight(15),
+                    Text = i.ToString(),
+                    TextSize = LogicView.TextSize.text14,
+                    TextColor = CSS.CSS_Color.textColor,
+                    SelectedTextColor = CSS.CSS_Color.view,
+                    SelectedBackgroundColor = CSS.CSS_Color.textConfirmColor,
+                    BackgroundColor = CSS.CSS_Color.viewTranslucence,
+                    Tag = i,
+                };
+                monView.frameLayout.AddChidren(monTextBtn);
+                if (lineSun > 0)
+                {
+                    monTextBtn.X = Application.GetRealWidth(16 + ((i - 1) - lineSun * 7) * 46);
+                }
+                else
+                {
+
+                    monTextBtn.X = Application.GetRealWidth(16 + (i - 1) * 46);
+                }
+                monTextBtn.Y = Application.GetRealWidth(58 + 10 + lineSun * (30 + 10));
+
+                if (i % 7 == 0)
+                {
+                    //涓�瀹氭墽琛屽畬鍐嶅垽鏂槸鍚﹁鎹㈣.
+                    lineSun = lineSun + 1;
+
+                }
+                monTextBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    string clickIndex = monTextBtn.Tag.ToString();
+                    monTextBtn.IsSelected = !monTextBtn.IsSelected;
+                    if (monTextBtn.IsSelected)
+                    {
+                        monTextBtn.IsSelected = true;
+                        if (!monList.Contains(clickIndex))
+                        {
+                            //娣诲姞閫変腑鏁版嵁
+                            monList.Add(clickIndex);
+                        }
+                    }
+                    else
+                    {
+                        monTextBtn.IsSelected = false;
+                        if (monList.Contains(clickIndex))
+                        {
+                            //绉婚櫎閫変腑鏁版嵁
+                            monList.Remove(clickIndex);
+                        }
+                    }
+                };
+
+                if (monList.Contains(i.ToString())) {
+                    monTextBtn.IsSelected = true;
+                }
+            }
+            //纭畾鐐瑰嚮浜嬩欢
+            monView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
+            {
+                if (monList.Count == 0)
+                {
+                    //鎻愮ず锛氳繕娌¢�変腑鎵ц鍛ㄦ湡
+                    return;
+                }
+                Logic.currlogic.cycle.type = "mon";
+                Logic.currlogic.cycle.value = monList;
+                button.Text = GetMonString(monList);
+                fLayout.RemoveFromParent();
+            };
+        }
+        /// <summary>
+        /// 鑾峰彇鏄熸湡鐨勫瓧绗︿覆
+        /// </summary>
+        /// <param name="weekList"></param>
+        /// <returns></returns>
+        public string GetWeekString(List<string> weekList)
+        {
+            string weekTextName = "";
+
+            if (weekList.Contains("0"))
+            {
+                weekTextName += Language.StringByID(StringId.monday) + ",";
+            }
+            if (weekList.Contains("1"))
+            {
+                weekTextName += Language.StringByID(StringId.tuesday) + ",";
+            }
+            if (weekList.Contains("2"))
+            {
+                weekTextName += Language.StringByID(StringId.wednesday) + ",";
+            }
+            if (weekList.Contains("3"))
+            {
+                weekTextName += Language.StringByID(StringId.thursday) + ",";
+            }
+            if (weekList.Contains("4"))
+            {
+                weekTextName += Language.StringByID(StringId.friday) + ",";
+            }
+            if (weekList.Contains("5"))
+            {
+                weekTextName += Language.StringByID(StringId.saturday) + ",";
+            }
+            if (weekList.Contains("6"))
+            {
+                weekTextName += Language.StringByID(StringId.sunday) + ",";
+            }
+            if (weekTextName == "")
+            {
+                return "";
+            }
+            return weekTextName.TrimEnd(',');
+        }
+        /// <summary>
+        /// 鑾峰彇姣忔湀鐨勫瓧绗︿覆
+        /// </summary>
+        /// <param name="monList"></param>
+        /// <returns></returns>
+        public string GetMonString(List<string> monList)
+        {
+            string monTextName = Language.StringByID(StringId.monthly);
+
+            for (int i = 1; i < 32; i++)
+            {
+                if (monList.Contains(i.ToString()))
+                {
+                    monTextName += i.ToString() + ",";
+                }
+            }
+            return monTextName.TrimEnd(',');
+        }
     }
 }

--
Gitblit v1.8.0