From 17c8d94258154ab2e9f6d2cf821202c873b9f118 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 16 十二月 2020 15:39:15 +0800
Subject: [PATCH] 22222
---
HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs | 480 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 468 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..9727a29 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()
{
+ #region 鐣岄潰甯冨眬
LogicView.TopView topView = new LogicView.TopView();
- this.AddChidren(topView.TopFLayoutView());
+ this.AddChidren(topView.FLayoutView());
topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
{
RemoveFromParent();
@@ -28,18 +31,471 @@
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());
+
+ #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);
+ };
+
+ #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)
+ {
+ 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);
+
+ var systemHour = DateTime.Now.Hour; //鑾峰彇灏忔椂
+ var systeMinute = DateTime.Now.Minute;//鑾峰彇鍒嗛挓
+ int systemHourIndex = 0;
+ int systeMinuteIndex = 0;
+ for (int i = 0; i < timePointView.GethIntList0().Count; i++)
+ {
+ var currhour = timePointView.GethIntList0()[i];
+ if (systemHour == currhour)
+ {
+ systemHourIndex = i;
+ break;
+ }
+ }
+ for (int i = 0; i < timePointView.GetmIntList().Count; i++)
+ {
+ var currminute = timePointView.GetmIntList()[i];
+ if (systeMinute == currminute)
+ {
+ systeMinuteIndex = i;
+ break;
+ }
+ }
+
+ //榛樿鍒濆閫変腑鐘舵��
+ timePointView.mUIPickerView.setCurrentItems(systemHourIndex, systeMinuteIndex, 0);
+ string currH = "";
+ string currM = "";
+ if (systemHour < 10)
+ {
+ currH = "0" + systemHour.ToString();
+ }
+ else
+ {
+ currH = systemHour.ToString();
+ }
+ if (systeMinute < 10)
+ {
+ currM = "0" + systeMinute.ToString();
+ }
+ else
+ {
+ currM = systeMinute.ToString();
+ }
+ //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿
+ string timepoint = currH + ":" + currM;
+ 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"];
+ int hIndex = timePointView.GetValueIndex(timeValue, 0, 1, timePointView.GethIntList());
+ int mIndex = timePointView.GetValueIndex(timeValue, 1, 0, timePointView.GetmIntList());
+ //鏇存柊鍒濆鐘舵��
+ timePointView.mUIPickerView.setCurrentItems(hIndex - 1, mIndex, 0);
+ timepoint = timeValue;
+ }
+ }
+ }
+
+ //閫変腑鏃堕棿鍥炶皟鏂规硶,鏃堕棿鍙樺寲涓�娆″洖璋冧竴娆�
+ 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);
+ if (edit)
+ {
+ //绉婚櫎鏃ф暟鎹�
+ Logic.currlogic.input.RemoveAt(index);
+ //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
+ Logic.currlogic.input.Insert(index, inputTime);
+ }
+ else
+ {
+ //娣诲姞涓�涓柊鐨勬椂闂寸偣鏉′欢
+ Logic.currlogic.input.Add(inputTime);
+ }
+ LogicMethod.RemoveAllView();
+ AddLogic addLogic = new AddLogic();
+ MainPage.BasePageView.AddChidren(addLogic);
+ addLogic.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+ };
+ }
+ /// <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")
+ {
+ //鎻愮ず锛氳閫変腑寮�濮嬫椂闂�
+ 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);
+ }
+ LogicMethod.RemoveAllView();
+ 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);
+
+ var systemHour = DateTime.Now.Hour; //鑾峰彇灏忔椂
+ var systeMinute = DateTime.Now.Minute;//鑾峰彇鍒嗛挓
+ int systemHourIndex = 0;
+ int systeMinuteIndex = 0;
+ for (int i = 0; i < timePointView.GethIntList0().Count; i++)
+ {
+ var currhour = timePointView.GethIntList0()[i];
+ if (systemHour == currhour)
+ {
+ systemHourIndex = i;
+ break;
+ }
+ }
+ for (int i = 0; i < timePointView.GetmIntList().Count; i++)
+ {
+ var currminute = timePointView.GetmIntList()[i];
+ if (systeMinute == currminute)
+ {
+ systeMinuteIndex = i;
+ break;
+ }
+ }
+
+ //榛樿鍒濆閫変腑鐘舵��
+ timePointView.mUIPickerView.setCurrentItems(systemHourIndex, systeMinuteIndex, 0);
+ string currH = "";
+ string currM = "";
+ if (systemHour < 10)
+ {
+ currH = "0" + systemHour.ToString();
+ }
+ else
+ {
+ currH = systemHour.ToString();
+ }
+ if (systeMinute < 10)
+ {
+ currM = "0" + systeMinute.ToString();
+ }
+ else
+ {
+ currM = systeMinute.ToString();
+ }
+ //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿
+ string timepoint = currH + ":" + currM;
+ int sumTime = systemHour*60+ systeMinute;
+
+ 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();
+ };
+ }
+ /// <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