From eda3fb873e59544ff36301b51e05aef64f87b0f9 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 27 八月 2021 13:21:21 +0800
Subject: [PATCH] Merge branch 'newBranch1' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into newBranch1

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs |  388 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 388 insertions(+), 0 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
new file mode 100644
index 0000000..fb0a481
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
@@ -0,0 +1,388 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared;
+namespace HDL_ON.UI.UI2.Intelligence.Automation
+{
+    public class TimeTpye : FrameLayout
+    {
+        public TimeTpye()
+        {
+            Tag = "Logic";
+        }
+
+        public void Show()
+        {
+            #region  鐣岄潰甯冨眬
+            LogicView.TopView topView = new LogicView.TopView();
+            this.AddChidren(topView.FLayoutView());
+            topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
+            {
+                RemoveFromParent();
+            };
+            topView.topNameBtn.TextID = StringId.selectionTimeCondition;
+
+            FrameLayout viewLayout = new FrameLayout
+            {
+                Y = Application.GetRealHeight(64),
+                Width = Application.GetRealWidth(LogicView.TextSize.view375),
+                Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64),
+                BackgroundColor = CSS.CSS_Color.viewMiddle,
+            };
+            this.AddChidren(viewLayout);
+
+            //鏃跺埢
+            LogicView.SelectTypeView timepointView = new LogicView.SelectTypeView();
+            timepointView.btnIcon.Visible = false;
+            timepointView.btnText.X = Application.GetRealWidth(16);
+            timepointView.btnLine.X = Application.GetRealWidth(16);
+            timepointView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
+            timepointView.btnText.TextID = StringId.hour;
+            viewLayout.AddChidren(timepointView.FLayoutView());
+
+            //鏃堕棿鑼冨洿
+            LogicView.SelectTypeView timeHorizonView = new LogicView.SelectTypeView();
+            timeHorizonView.frameLayout.Y = timepointView.frameLayout.Bottom;
+            timeHorizonView.btnIcon.Visible = false;
+            timeHorizonView.btnText.X = Application.GetRealWidth(16);
+            timeHorizonView.btnLine.X = Application.GetRealWidth(16);
+            timeHorizonView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
+            timeHorizonView.btnText.TextID = StringId.timeHorizon;
+            viewLayout.AddChidren(timeHorizonView.FLayoutView());
+
+
+            //鏃ュ嚭/鏃ヨ惤/姝e崍
+            LogicView.SelectTypeView timeSpecialView = new LogicView.SelectTypeView();
+            timeSpecialView.frameLayout.Y = timeHorizonView.frameLayout.Bottom;
+            timeSpecialView.btnIcon.Visible = false;
+            timeSpecialView.btnText.X = Application.GetRealWidth(16);
+            timeSpecialView.btnLine.X = Application.GetRealWidth(16);
+            timeSpecialView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
+            timeSpecialView.btnText.TextID = StringId.timespecia;
+            viewLayout.AddChidren(timeSpecialView.FLayoutView());
+
+            #endregion
+
+            #region  鏃堕棿鐐�  鏃堕棿鑼冨洿鐐瑰嚮浜嬩欢
+            //鏃堕棿鐐圭偣鍑讳簨浠�
+            timepointView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+                //涓荤晫闈㈡帶浠�
+                FrameLayout fLayout = new FrameLayout
+                {
+                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                };
+                this.AddChidren(fLayout);
+                TimePoint(fLayout, false, 100);
+
+            };
+            //鏃堕棿鑼冨洿鐐瑰嚮浜嬩欢
+            timeHorizonView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+                //涓荤晫闈㈡帶浠�
+                FrameLayout fLayout = new FrameLayout
+                {
+                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                };
+                //娣诲姞涓荤晫闈�
+                this.AddChidren(fLayout);
+                //var fLayout = GetFrame(this,"2");
+
+                TimeHorizon(fLayout, false, 0);
+            };
+            //鏃ュ嚭/鏃ヨ惤/姝e崍鐐瑰嚮浜嬩欢
+            timeSpecialView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+                SpeciaTime speciaTime = new SpeciaTime();
+                MainPage.BasePageView.AddChidren(speciaTime);
+                speciaTime.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+            };
+            #endregion
+        }
+
+        /// <summary>
+        /// 鏃堕棿鐐规柟娉�
+        /// </summary>
+        /// <param name="fLayout">鍦ㄥ摢涓晫闈㈡樉绀�</param>
+        /// <param name="edit">锛坱rue=缂栬緫锛沠alse=鏂板缓锛�</param>
+        /// <param name="index">缂栬緫鏉′欢鐨勭储寮�</param>
+        public void TimePoint(FrameLayout fLayout, bool edit, int index)
+        {
+            //缂栬緫涔嬪墠鐨勬椂闂寸姸鎬佸��
+            string editTime= "";
+            if (edit)
+            {
+                Input inputs = Logic.currlogic.input[index];
+                if (inputs.condition_type == "1")
+                {
+                    List<Dictionary<string, string>> dicList = inputs.condition as List<Dictionary<string, string>>;
+                    foreach (var dic in dicList)
+                    {
+                        string timeValue = dic["value"];
+                        editTime = timeValue;
+                        break;
+                    }
+                }
+            }
+            LogicView.TimeView timePointView = new LogicView.TimeView();
+            timePointView.FLayoutView(fLayout);
+            timePointView.TimePoint(fLayout, editTime, (timeValue)=>{
+                Input inputTime = new Input();
+                inputTime.sid = LogicMethod.CurrLogicMethod.NewSid();
+                inputTime.condition_type = "1";
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                LogicMethod.CurrLogicMethod.dictionary(dic, "key", "timepoint");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "value", timeValue);
+                inputTime.condition.Add(dic);
+                AddCondition(inputTime, edit, index);
+            });
+            
+        }
+        /// <summary>
+        /// 鏃堕棿鑼冨洿鏂规硶
+        /// </summary>
+        /// <param name="fLayout">鍦ㄥ摢涓晫闈㈡樉绀�</param>
+        /// <param name="edit">锛坱rue=缂栬緫锛沠alse=鏂板缓锛�</param>
+        /// <param name="index">缂栬緫鏉′欢鐨勭储寮�</param>
+        public void TimeHorizon(FrameLayout fLayout, bool edit, int index)
+        {
+            #region 鐣岄潰甯冨眬
+            LogicView.TimeHorizonView timeHorizonView = new LogicView.TimeHorizonView();
+            timeHorizonView.FLayoutView(fLayout);
+            //寮�濮嬫椂闂�
+            LogicView.SelectTypeView startTimeView = new LogicView.SelectTypeView();
+            startTimeView.frameLayout.Y = Application.GetRealHeight(87);
+            startTimeView.btnIcon.Visible = false;
+            startTimeView.btnText.X = Application.GetRealWidth(16);
+            startTimeView.btnText.TextID = StringId.startTime;
+            startTimeView.btnLine.X = Application.GetRealWidth(16);
+            startTimeView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
+            startTimeView.btnNextIcon.X = Application.GetRealWidth(307);
+            timeHorizonView.frameLayout.AddChidren(startTimeView.FLayoutView());
+            //鏄剧ず寮�濮嬫椂闂存枃鏈�
+            Button btnStartTimeText = new Button
+            {
+                TextSize = LogicView.TextSize.text12,
+                Width = Application.GetRealWidth(32 + 3+20),
+                Height = Application.GetRealHeight(17),
+                TextColor = CSS.CSS_Color.textCancelColor,
+                Y = Application.GetRealHeight(17),
+                X = Application.GetRealWidth(260-20),
+                Tag = "0",
+            };
+            startTimeView.frameLayout.AddChidren(btnStartTimeText);
+
+            //缁撴潫鏃堕棿
+            LogicView.SelectTypeView endTimeView = new LogicView.SelectTypeView();
+            endTimeView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
+            endTimeView.frameLayout.Y = startTimeView.frameLayout.Bottom;
+            endTimeView.btnIcon.Visible = false;
+            endTimeView.btnLine.Visible = false;
+            endTimeView.btnText.X = Application.GetRealWidth(16);
+            endTimeView.btnText.TextID = StringId.endTime;
+            endTimeView.btnNextIcon.X = Application.GetRealWidth(307);
+            timeHorizonView.frameLayout.AddChidren(endTimeView.FLayoutView());
+            //鏄剧ず缁撴潫鏃堕棿鏂囨湰
+            Button btnEndTimeText = new Button
+            {
+                TextSize = LogicView.TextSize.text12,
+                Width = Application.GetRealWidth(32 + 3+20),
+                Height = Application.GetRealHeight(17),
+                TextColor = CSS.CSS_Color.textCancelColor,
+                Y = Application.GetRealHeight(17),
+                X = Application.GetRealWidth(260-20),
+                Tag = "0",
+            };
+            endTimeView.frameLayout.AddChidren(btnEndTimeText);
+
+            #endregion
+
+            #region 鐐瑰嚮浜嬩欢
+            //寮�濮嬫椂闂寸偣鍑讳簨浠�
+            EventHandler<MouseEventArgs> StartTimeClick = (sender,e) => {
+                SelectedTimeHorizon(fLayout, btnStartTimeText);
+            };
+            startTimeView.btnClick.MouseUpEventHandler += StartTimeClick;
+            btnStartTimeText.MouseUpEventHandler += StartTimeClick;
+            //缁撴潫鏃堕棿鐐瑰嚮浜嬩欢
+            EventHandler<MouseEventArgs> EndTimeClick = (sender, e) => {
+                SelectedTimeHorizon(fLayout, btnEndTimeText);
+            };
+            endTimeView.btnClick.MouseUpEventHandler += EndTimeClick;
+            btnEndTimeText.MouseUpEventHandler += EndTimeClick;
+
+           
+            //纭畾鐐瑰嚮浜嬩欢
+            timeHorizonView.btnConfirm.MouseUpEventHandler += (sender, e) =>
+            {
+
+                if (btnStartTimeText.Tag.ToString() == "0"&& btnEndTimeText.Tag.ToString() == "0")
+                {
+                    //鎻愮ず锛氭椂闂存湭璁剧疆锛岃璁剧疆鏃堕棿銆�
+                    new LogicView.TipPopView().TipBox(StringId.tip, StringId.timeNoSet);
+                    return;
+                }
+
+                if (btnStartTimeText.Tag.ToString() == "0")
+                {
+                    //鎻愮ず锛氬紑濮嬫椂闂存湭璁剧疆锛岃璁剧疆寮�濮嬫椂闂淬��
+                    new LogicView.TipPopView().TipBox(StringId.tip,StringId.setStartTime);
+                    return;
+                }
+                if (btnEndTimeText.Tag.ToString() == "0")
+                {
+                    //鎻愮ず锛氱粨鏉熸椂闂存湭璁剧疆锛岃璁剧疆缁撴潫鏃堕棿銆�
+                    new LogicView.TipPopView().TipBox(StringId.tip, StringId.setEndTime);
+                    return;
+                }
+                if (btnStartTimeText.Tag.ToString() == btnEndTimeText.Tag.ToString())
+                {
+                    //鎻愮ず锛氬紑濮嬫椂闂村拰缁撴潫鏃堕棿涓嶈兘涓�鏍枫��
+                    new LogicView.TipPopView().TipBox(StringId.tip, StringId.unlikeTime);
+                    return;
+                }
+                if (int.Parse(btnStartTimeText.Tag.ToString()) > int.Parse(btnEndTimeText.Tag.ToString()))
+                {
+                    //鎻愮ず锛氬紑濮嬫椂闂翠笉鑳藉ぇ浜庣粨鏉熸椂闂淬��
+                    new LogicView.TipPopView().TipBox(StringId.tip, StringId.startTimeLessThanEndTime);
+                    return;
+                }
+
+                Input inputTime = new Input();
+                inputTime.sid = LogicMethod.CurrLogicMethod.NewSid();
+                inputTime.condition_type = "2";
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                LogicMethod.CurrLogicMethod.dictionary(dic, "key", "timesection");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "value", btnStartTimeText.Text + "-" + btnEndTimeText.Text);
+                inputTime.condition.Add(dic);
+                AddCondition(inputTime, edit, index);
+
+
+            };
+            #endregion
+
+            if (edit)
+            {
+                Input inputs = Logic.currlogic.input[index];
+                if (inputs.condition_type == "2")
+                {
+                    List<Dictionary<string, string>> dicList = inputs.condition as List<Dictionary<string, string>>;
+                    foreach (var dic in dicList)
+                    {
+                        string value = dic["value"];
+                        string startTime = value.Split('-')[0];
+                        string endtTime = value.Split('-')[1];
+                        btnStartTimeText.Text = startTime;
+                        btnStartTimeText.Tag = int.Parse(startTime.Split(':')[0]) * 60 + int.Parse(startTime.Split(':')[1]);
+                        btnEndTimeText.Text = endtTime;
+                        btnEndTimeText.Tag = int.Parse(endtTime.Split(':')[0]) * 60 + int.Parse(endtTime.Split(':')[1]);
+                    }
+                }
+            }
+        }
+        /// <summary>
+        /// 璁剧疆鏃堕棿娈靛��
+        /// </summary>
+        /// <param name="fLayout"></param>
+        /// <param name="btn"></param>
+        public void SelectedTimeHorizon(FrameLayout fLayout, Button btn)
+        {
+            //缂栬緫涔嬪墠鐨勬椂闂寸姸鎬佸��
+            string editTime = "";
+            if (btn.Tag.ToString() != "0")
+            {
+                string h = "", m = "";
+               int  sumTime = int.Parse(btn.Tag.ToString());
+                if ((sumTime / 60) < 10)
+                {
+                    h = "0" + (sumTime / 60).ToString();
+                }
+                else
+                {
+                    h = (sumTime / 60).ToString();
+                }
+
+                if ((sumTime % 60) < 10)
+                {
+                    m = "0" + (sumTime % 60).ToString();
+                }
+                else
+                {
+                    m = (sumTime % 60).ToString();
+                }
+                editTime = h + ":" + m;
+            }
+            LogicView.TimeView timePointView = new LogicView.TimeView();
+            timePointView.FLayoutView(fLayout);
+            timePointView.TimePoint(timePointView.frameLayout, editTime, (timeValue) =>
+            {
+                int hour = int.Parse(timeValue.Split(':')[0]);
+                int minuet = int.Parse(timeValue.Split(':')[1]);
+                int intValueTag = hour * 60 + minuet;
+                //鏍囪鍊�,鐢ㄤ簬姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿澶у皬;
+                btn.Tag = intValueTag;
+                //鏄剧ず鏃堕棿鏂囨湰
+                btn.Text = timeValue;
+            });
+        }
+    
+        /// <summary>
+        /// 娣诲姞鏉′欢
+        /// </summary>
+        /// <param name="input"></param>
+        private void AddCondition(Input input,bool edit,int index)
+        {
+            if (edit)
+            {
+                //绉婚櫎鏃ф暟鎹�
+                Logic.currlogic.input.RemoveAt(index);
+                //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�
+                Logic.currlogic.input.Insert(index, input);
+            }
+            else
+            {
+                //娣诲姞涓�涓柊鐨勬椂闂存潯浠�
+                Logic.currlogic.input.Add(input);
+            }
+            LogicMethod.CurrLogicMethod.RemoveAllView();
+            AddLogic addLogic = new AddLogic();
+            MainPage.BasePageView.AddChidren(addLogic);
+            addLogic.Show();
+            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+        }
+
+        /// <summary>
+        /// 鐏拌壊寮规鐖舵帶浠�
+        /// </summary>
+        /// <param name="frame">鏄剧ず鍦ㄥ摢涓晫闈�</param>
+        /// <returns></returns>
+        public FrameLayout GetFrame(FrameLayout frame, string tagKey)
+        {
+            for (int i = 0; i < frame.ChildrenCount; i++)
+            {
+                var fra = frame.GetChildren(i);
+                if (fra != null)
+                {
+                    fra.RemoveFromParent();
+                }
+            }
+
+
+            FrameLayout fLayout = new FrameLayout()
+            {
+                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+
+            };
+            frame.AddChidren(fLayout);
+
+
+            return fLayout;
+        }
+    }
+}

--
Gitblit v1.8.0