From 35a33afeeb29466c20ee39dc34e0468d687afce9 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 20 十一月 2020 17:47:38 +0800 Subject: [PATCH] 2020-11-20-1 --- HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs | 329 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 317 insertions(+), 12 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs index 8b287a8..bbfe182 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs @@ -1,4 +1,5 @@ 锘縰sing System; +using System.Collections.Generic; using Shared; namespace HDL_ON.UI.UI2.Intelligence.Automation { @@ -6,12 +7,14 @@ { public TimeTpye() { + Tag = "Logic"; } public void Show() { + LogicView.TopView topView = new LogicView.TopView(); - this.AddChidren(topView.TopFLayoutView()); + this.AddChidren(topView.FLayoutView()); topView.clickBackBtn.MouseUpEventHandler += (e, sen) => { RemoveFromParent(); @@ -28,18 +31,320 @@ this.AddChidren(viewLayout); //鏃跺埢 - LogicView.SelectType timeView = new LogicView.SelectType(); - timeView.btnIcon.Visible = false; - timeView.btnText.X = Application.GetRealWidth(16); - timeView.btnText.TextID = StringId.hour; - viewLayout.AddChidren(timeView.FLayoutView()); + 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.SelectType functionView = new LogicView.SelectType(); - functionView.frameLayout.Y = timeView.frameLayout.Bottom; - functionView.btnIcon.Visible = false; - functionView.btnText.X = Application.GetRealWidth(16); - functionView.btnText.TextID = StringId.timeHorizon; - viewLayout.AddChidren(functionView.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()); + + //鏃堕棿鐐圭偣鍑讳簨浠� + timepointView.btnClick.MouseUpEventHandler += (sen, e) => + { + + //涓荤晫闈㈡帶浠� + FrameLayout fLayout = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(fLayout); + TimePoint(fLayout); + + }; + //鏃堕棿鑼冨洿鐐瑰嚮浜嬩欢 + timeHorizonView.btnClick.MouseUpEventHandler += (sen, e) => + { + //涓荤晫闈㈡帶浠� + FrameLayout fLayout = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + //娣诲姞涓荤晫闈� + this.AddChidren(fLayout); + TimeHorizon(fLayout,false,0); + }; + } + + /// <summary> + /// 鏃堕棿鐐规柟娉� + /// </summary> + /// <param name="fLayout">鍦ㄥ摢涓晫闈㈡樉绀�</param> + public void TimePoint(FrameLayout fLayout) + { + LogicView.TimeView timePointView = new LogicView.TimeView(); + timePointView.FLayoutView(fLayout); + EventHandler<MouseEventArgs> RemovefLayout = (sender, e1) => + { + //绉婚櫎fLayout鐣岄潰 + fLayout.RemoveFromParent(); + }; + //鍙栨秷鐐瑰嚮浜嬩欢 + timePointView.btnCancel.MouseUpEventHandler += RemovefLayout; + + //鍔犺浇鏁版嵁鐣岄潰鐨勮缃柟娉�(鍒楄〃浜掍笉鑱斿姩) + timePointView.mUIPickerView.setNPicker(timePointView.GethStringList(), timePointView.GetmStringList(), null); + //榛樿鍒濆閫変腑鐘舵�� + timePointView.mUIPickerView.setCurrentItems(0, 30, 0); + //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿 + string timepoint = "01:30"; + //閫変腑鏃堕棿鍥炶皟鏂规硶,鏃堕棿鍙樺寲涓�娆″洖璋冧竴娆� + timePointView.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) => + { + string hour = timePointView.GethStringList()[index1].Split(' ')[0]; + string minuet = timePointView.GetmStringList()[index2].Split(' ')[0]; + timepoint = hour + ":" + minuet; + }; + //纭畾鐐瑰嚮浜嬩欢 + timePointView.btnConfirm.MouseUpEventHandler += (sender, e3) => + { + Input inputTime = new Input(); + inputTime.sid = LogicMethod.NewSid(); + inputTime.condition_type = "1"; + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "timepoint"); + LogicMethod.dictionary(dic, "comparator", "="); + LogicMethod.dictionary(dic, "data_type", "string"); + LogicMethod.dictionary(dic, "value", timepoint); + inputTime.condition.Add(dic); + //娣诲姞涓�涓柊鐨勬椂闂寸偣鏉′欢 + Logic.currlogic.input.Add(inputTime); + RemoveViewByTag("Logic"); + AddLogic addLogic = new AddLogic(); + MainPage.BasePageView.AddChidren(addLogic); + addLogic.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + + }; + } + + /// <summary> + /// 鏃堕棿鑼冨洿鏂规硶 + /// </summary> + /// <param name="fLayout">鍦ㄥ摢涓晫闈㈡樉绀�</param> + public void TimeHorizon(FrameLayout fLayout,bool edit,int index) + { + #region 鐣岄潰甯冨眬 + LogicView.TimeHorizonView timeHorizonView = new LogicView.TimeHorizonView(); + timeHorizonView.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); + 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), + Height = Application.GetRealHeight(20), + TextColor = CSS.CSS_Color.textCancelColor, + Y = Application.GetRealHeight(17), + X = Application.GetRealWidth(260), + Tag = "0", + }; + startTimeView.frameLayout.AddChidren(btnStartTimeText); + + //缁撴潫鏃堕棿 + LogicView.SelectTypeView endTimeView = new LogicView.SelectTypeView(); + endTimeView.frameLayout.SetCornerWithSameRadius(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), + Height = Application.GetRealHeight(20), + TextColor = CSS.CSS_Color.textCancelColor, + Y = Application.GetRealHeight(17), + X = Application.GetRealWidth(260), + Tag = "0", + }; + endTimeView.frameLayout.AddChidren(btnEndTimeText); + + #endregion + + #region 鐐瑰嚮浜嬩欢 + //寮�濮嬫椂闂寸偣鍑讳簨浠� + startTimeView.btnClick.MouseUpEventHandler += (sender, e) => + { + SelectedTimeHorizon(fLayout, btnStartTimeText); + }; + //缁撴潫鏃堕棿鐐瑰嚮浜嬩欢 + endTimeView.btnClick.MouseUpEventHandler += (sender, e) => + { + SelectedTimeHorizon(fLayout, btnEndTimeText); + }; + //纭畾鐐瑰嚮浜嬩欢 + timeHorizonView.btnConfirm.MouseUpEventHandler += (sender, e) => + { + if (btnStartTimeText.Tag.ToString() == "0") + { + //鎻愮ず锛氳閫変腑寮�濮嬫椂闂� + return; + } + if (btnEndTimeText.Tag.ToString() == "0") + { + //鎻愮ず锛氳閫変腑缁撴潫鏃堕棿 + return; + } + if (btnStartTimeText.Tag.ToString() == btnEndTimeText.Tag.ToString()) + { + //鎻愮ず锛氭椂闂翠竴鏍风殑 + return; + } + if (int.Parse(btnStartTimeText.Tag.ToString()) > int.Parse(btnEndTimeText.Tag.ToString())) + { + //鎻愮ず锛氬紑濮嬫椂闂翠笉鑳藉ぇ浜庣粨鏉熸椂闂� + return; + } + + Input inputTime = new Input(); + inputTime.sid = LogicMethod.NewSid(); + inputTime.condition_type = "2"; + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "timesection"); + LogicMethod.dictionary(dic, "comparator", "="); + LogicMethod.dictionary(dic, "data_type", "string"); + LogicMethod.dictionary(dic, "value", btnStartTimeText.Text+"~"+btnEndTimeText.Text); + inputTime.condition.Add(dic); + if (edit) + { + //绉婚櫎鏃ф暟鎹� + Logic.currlogic.input.RemoveAt(index); + //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃� + Logic.currlogic.input.Insert(index, inputTime); + fLayout.RemoveFromParent(); + } + else + { + //娣诲姞涓�涓柊鐨勬椂闂寸偣鏉′欢 + Logic.currlogic.input.Add(inputTime); + } + RemoveViewByTag("Logic"); + AddLogic addLogic = new AddLogic(); + MainPage.BasePageView.AddChidren(addLogic); + addLogic.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + + + }; + #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) + { + + LogicView.TimeView timePointView = new LogicView.TimeView(); + timePointView.FLayoutView(fLayout); + EventHandler<MouseEventArgs> RemovefLayout = (sender, e1) => + { + //鍙Щ闄ゆ椂闂村脊绐楃晫闈� + timePointView.frameLayout.RemoveFromParent(); + }; + //鍙栨秷鐐瑰嚮浜嬩欢 + timePointView.btnCancel.MouseUpEventHandler += RemovefLayout; + //鍔犺浇鏁版嵁鐣岄潰鐨勮缃柟娉�(鍒楄〃浜掍笉鑱斿姩) + timePointView.mUIPickerView.setNPicker(timePointView.GethStringList(), timePointView.GetmStringList(), null); + //榛樿鍒濆閫変腑鐘舵�� + timePointView.mUIPickerView.setCurrentItems(0, 30, 0); + //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿 + string timepoint = "01:30"; + int sumTime = 90; + + if (btn.Tag.ToString() != "0") + { + string h = "", m = ""; + 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(); + } + timepoint = h + ":" + m; + + int hourIndex = timePointView.GetValueIndex(timepoint, 0, 1, timePointView.GethIntList()); + int minuteIndex = timePointView.GetValueIndex(timepoint, 1, 0, timePointView.GetmIntList()); + //鏇存柊鐘舵�� + timePointView.mUIPickerView.setCurrentItems(hourIndex - 1, minuteIndex, 0); + } + + //閫変腑鏃堕棿鍥炶皟鏂规硶,鏃堕棿鍙樺寲涓�娆″洖璋冧竴娆� + timePointView.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) => + { + + string hour = timePointView.GethStringList()[index1].Split(' ')[0]; + string minuet = timePointView.GetmStringList()[index2].Split(' ')[0]; + timepoint = hour + ":" + minuet; + sumTime = int.Parse(hour) * 60 + int.Parse(minuet); + + + }; + //纭畾鐐瑰嚮浜嬩欢 + timePointView.btnConfirm.MouseUpEventHandler += (sender1, e3) => + { + btn.Tag = sumTime; + btn.Text = timepoint; + //鍙Щ闄ゆ椂闂村脊绐楃晫闈� + timePointView.frameLayout.RemoveFromParent(); + }; } } } -- Gitblit v1.8.0