From a1b0ab7044100daaa7e0f1da2d2ca45e38098963 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 29 三月 2021 09:13:25 +0800
Subject: [PATCH] 2021-3-29-2
---
HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs | 367 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 355 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..ee08deb 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,358 @@
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());
+
+
+ //鏃ュ嚭/鏃ヨ惤/姝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.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", 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.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);
+ 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.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