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