From 6eb21769c74cfcd10084f73ff3f212355849a3c7 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 17 五月 2021 15:00:13 +0800
Subject: [PATCH] 2021-5-17-2
---
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs | 499 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 479 insertions(+), 20 deletions(-)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
index 554c377..f8b2ea0 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -14,15 +14,29 @@
public void Show()
{
+ #region 鐣岄潰甯冨眬
this.BackgroundColor = CSS.CSS_Color.viewMiddle;
LogicView.TopView topView = new LogicView.TopView();
+ topView.setBtn.Visible = true;
this.AddChidren(topView.FLayoutView());
topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
{
RemoveFromParent();
};
- topView.topNameBtn.TextID = StringId.newAutomation;
-
+ if (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
+ {
+ topView.topNameBtn.TextID = StringId.newAutomation;
+ topView.setBtn.Visible = false;
+ topView.clickSetBtn.Visible = false;
+ }
+ else
+ {
+ topView.topNameBtn.TextID = StringId.editAutomation;
+ topView.setBtn.Visible = true;
+ topView.clickSetBtn.Visible = true;
+ }
+
+
VerticalScrolViewLayout viewLayout = new VerticalScrolViewLayout
{
Y = Application.GetRealHeight(64),
@@ -39,22 +53,25 @@
///婊¤冻浠ヤ笅鏉′欢鐨刅iew
LogicView.LogicTypeTitleView titleCondition = new LogicView.LogicTypeTitleView();
titleCondition.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
- titleCondition.btnText.TextID = StringId.whenTheFollowingConditionsAreMet;
+ titleCondition.btnText.TextID = StringId.andCondition;
viewLayout.AddChidren(titleCondition.FLayoutView());
+
+ if (Logic.currlogic.relation == "and")
+ {
+ titleCondition.btnText.Text = Language.StringByID(StringId.andCondition);
+ }
+ else
+ {
+ titleCondition.btnText.Text = Language.StringByID(StringId.orCondition);
+
+ }
+
// 鏉′欢澶勭悊鏂规硶
InpOrOutLogicMethod.InputCondition(this, viewLayout);
///娣诲姞鍥炬爣鐨刅iew
LogicView.LogicAddView addInputIcon = new LogicView.LogicAddView();
addInputIcon.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
viewLayout.AddChidren(addInputIcon.FLayoutView());
-
- addInputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
- {
- var addInputType = new AddInputType();
- MainPage.BasePageView.AddChidren(addInputType);
- addInputType.Show();
- MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
- };
#endregion
#region 鐩爣
@@ -66,14 +83,15 @@
LogicView.LogicTypeTitleView titleOutpu = new LogicView.LogicTypeTitleView();
titleOutpu.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
titleOutpu.btnText.TextID = StringId.theFollowingActions;
+ titleOutpu.btnNextIcon.Visible = false;
viewLayout.AddChidren(titleOutpu.FLayoutView());
- ///杈撳嚭鍚勭鍔ㄤ綔鐨刅iew
- LogicView.AddOutputInputView outputView = new LogicView.AddOutputInputView();
- viewLayout.AddChidren(outputView.FLayoutView());
+ //鐩爣澶勭悊鏂规硶
+ InpOrOutLogicMethod.OutputTarget(this, viewLayout);
///娣诲姞鍥炬爣鐨刅iew
LogicView.LogicAddView addOutputIcon = new LogicView.LogicAddView();
addOutputIcon.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
viewLayout.AddChidren(addOutputIcon.FLayoutView());
+
#endregion
#region 寰幆鏂瑰紡
@@ -83,11 +101,11 @@
viewLayout.AddChidren(cyclicTextView.FLayoutView(54, 20));
///閫夋嫨鍛ㄦ湡绫诲瀷View
LogicView.LogicTypeTitleView cyclicTitle = new LogicView.LogicTypeTitleView();
- cyclicTextView.frameLayout.Height = Application.GetRealHeight(50);
- cyclicTitle.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
- //cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12);
- cyclicTitle.btnText.TextID = StringId.days;
+ cyclicTitle.frameLayout.Height = Application.GetRealHeight(50);
+ cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12);
+ cyclicTitle.btnText.Text = MainView.GetCyclicText(Logic.currlogic);
viewLayout.AddChidren(cyclicTitle.FLayoutView());
+
#endregion
#region 鎵ц鎺ㄩ�� 鍙戦�侀�氱煡
@@ -98,14 +116,30 @@
push.frameLayout.Height = Application.GetRealHeight(50);
push.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
push.btnText.TextID = StringId.push;
+ push.btnNextIcon.Width = Application.GetRealWidth(36);
+ push.btnNextIcon.Height = Application.GetRealWidth(36);
+ push.btnNextIcon.X = Application.GetRealWidth(305);
+ push.btnNextIcon.UnSelectedImagePath = "LogicIcon/off.png";
+ push.btnNextIcon.SelectedImagePath = "LogicIcon/on.png";
+ push.btnClick.Width = Application.GetRealWidth(305);
viewLayout.AddChidren(push.FLayoutView());
///鍙戦�侀�氱煡View
LogicView.LogicTypeTitleView notification = new LogicView.LogicTypeTitleView();
notification.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
notification.btnText.TextID = StringId.notification;
+ notification.btnLine.BackgroundColor = CSS.CSS_Color.textWhiteColor;
viewLayout.AddChidren(notification.FLayoutView());
+ //鏄剧ず涔嬪墠鎺ㄩ�佸紑鍏崇姸鎬�
+ if (Logic.currlogic.noticeConfig.enable)
+ {
+ push.btnNextIcon.IsSelected = true;
+ }
+ else
+ {
+ push.btnNextIcon.IsSelected = false;
+ }
///涓婁笅闂撮殧62鍍忕礌
- viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(62) });
+ viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(40) });
#endregion
#region 淇濆瓨
@@ -113,11 +147,436 @@
LogicView.SaveView saveView = new LogicView.SaveView();
saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
this.AddChidren(saveView.FLayoutView());
- //saveView.frameLayout.Y = this.Height - saveView.frameLayout.Height;
+
+ #endregion
#endregion
+ #region 鐣岄潰鍚勭鐐瑰嚮浜嬩欢
+ ///璁剧疆鍥炬爣鐐瑰嚮浜嬩欢
+ topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
+ {
+ Set set = new Set();
+ MainPage.BasePageView.AddChidren(set);
+ set.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+ };
+ ///鎴栧拰涓庣偣鍑讳簨浠�
+ titleCondition.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ AndOrMethod(titleCondition.btnText);
+ };
+ ///鏉′欢娣诲姞鐐瑰嚮浜嬩欢
+ addInputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
+ {
+ var addInputType = new AddInputType();
+ MainPage.BasePageView.AddChidren(addInputType);
+ addInputType.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ ///鐩爣娣诲姞鐐瑰嚮浜嬩欢
+ addOutputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
+ {
+ var addTarget = new AddTarget();
+ MainPage.BasePageView.AddChidren(addTarget);
+ addTarget.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ ///寰幆鏂瑰紡鐐瑰嚮浜嬩欢
+ cyclicTitle.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ DateMethod(cyclicTitle.btnText);
+ };
+ ///鏄惁瑕佹帹閫佺偣鍑讳簨浠�
+ push.btnNextIcon.MouseUpEventHandler += (sender, e) =>
+ {
+ //璐﹀彿鍒楄〃涓虹┖榛樿鎺ㄩ�佸綋鍓嶈处鍙�
+ if (Logic.currlogic.pushConfigs.Count == 0)
+ {
+ //鍒濆鍖栧璞�
+ PushConfigs pushConfigs = new PushConfigs();
+ //榛樿娣诲姞鎺ㄩ�佸綋鍓嶈处鍙�
+ pushConfigs.pushTarget.Add(UserInfo.Current.ID);
+ Logic.currlogic.pushConfigs.Add(pushConfigs);
+ }
+ push.btnNextIcon.IsSelected = !push.btnNextIcon.IsSelected;
+ if (push.btnNextIcon.IsSelected)
+ {
+ Logic.currlogic.noticeConfig.enable = true;
+ }
+ else
+ {
+ Logic.currlogic.noticeConfig.enable = false;
+ }
+ };
+ ///杈撳叆鎺ㄩ�佹枃鏈�
+ notification.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ InputPushText inputPushText = new InputPushText();
+ MainPage.BasePageView.AddChidren(inputPushText);
+ inputPushText.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ ///淇濆瓨鐐瑰嚮浜嬩欢
+ saveView.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ if (Logic.currlogic.input.Count == 0 && Logic.currlogic.output.Count == 0)
+ {
+ new LogicView.TipPopView().TipBox(StringId.tip, StringId.conditioncNullOrtargetNull);
+ return;
+ }
+ if (Logic.currlogic.input.Count == 0)
+ {
+ new LogicView.TipPopView().TipBox(StringId.tip, StringId.conditioncNull);
+ return;
+ }
+ if (Logic.currlogic.output.Count == 0)
+ {
+ new LogicView.TipPopView().TipBox(StringId.tip, StringId.targetNull);
+ return;
+ }
+ Loading loading = new Loading();
+ this.AddChidren(loading);
+ HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
+ if (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
+ {
+ List<string> list = new List<string>();
+ foreach (var logic in Logic.LogicList)
+ {
+ list.Add(logic.name);
+ }
+ new LogicView.TipPopView().InputBox(StringId.editName, InpOrOutLogicMethod.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName, view
+ ) =>
+ {
+ Logic.currlogic.name = logicName;
+ Logic.currlogic.sid = LogicMethod.NewSid();
+ loading.Start();
+ new System.Threading.Thread(() =>
+ {
+
+ try
+ {
+ //鍙戦�佹柊鍔犻�昏緫鍛戒护锛�
+ responsePackNew = Send.AddLogic(Logic.currlogic);
+
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ loading.Hide();
+ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+ {
+
+
+ //鑾峰彇閫昏緫璇︾粏杩斿洖鏄竴涓暟缁�(object绫诲瀷杞崲涓烘暟缁�);
+ var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString());
+ for (int a = 0; a < jArray.Count; a++)
+ {
+ var jay = jArray[a];
+ //鏁版嵁杩斿簭鍒楀寲涓篖ogic瀵硅薄
+ var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+ var logic = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic>(str);
+ if (logic.userLogicId != "")
+ {
+ //鏇存柊浜戠鍞竴鑷姩鍖杋d;
+ Logic.currlogic.userLogicId = logic.userLogicId;
+ }
+ else
+ {
+ //鑷繁鐪嬬殑鎵�浠ヤ笉闇�瑕佹敮鎸佷腑鑻辨枃
+ new LogicView.TipPopView().FlashingBox("娌℃湁杩斿洖浜戠鍞竴鑷姩鍖杋d");
+ }
+
+ }
+
+ Logic.LogicList.Add(Logic.currlogic);
+ LogicMethod.RemoveAllView();
+ MainView.MainShow();
+ }
+ else if (responsePackNew != null && responsePackNew.Code == "14005")
+ {
+ new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline));
+ }
+ else
+ {
+ new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
+ }
+ });
+ }
+
+ })
+ { IsBackground = true }.Start();
+
+ }, () => { });
+
+ }
+ else
+ {
+ loading.Start();
+ new System.Threading.Thread(() =>
+ {
+
+ try
+ {
+ //鍙戦�佷慨鏀归�昏緫鍛戒护锛�
+ responsePackNew = Send.UpdateLogic(Logic.currlogic);
+
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ loading.Hide();
+ if (responsePackNew != null && responsePackNew.Code == "0")
+ {
+ LogicMethod.RemoveAllView();
+ MainView.MainShow();
+ }
+ else if (responsePackNew != null && responsePackNew.Code == "14005")
+ {
+ new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline));
+ }
+ else
+ {
+ new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
+ }
+ });
+ }
+
+
+
+ })
+ { IsBackground = true }.Start();
+
+ }
+
+ };
+ #endregion
+ }
+ /// <summary>
+ /// 寰幆鏂瑰紡(姣忓ぉ锛屾瘡鏈堛�傘��)
+ /// </summary>
+ /// <param name="button">鏄剧ず鏂囨湰</param>
+ public void DateMethod(Button button)
+ {
+ FrameLayout fLayout = new FrameLayout
+ {
+ BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+ };
+ this.AddChidren(fLayout);
+ LogicView.DateView dateView = new LogicView.DateView();
+ dateView.btnTitle.TextID = StringId.cyclic;
+ dateView.FLayoutView(fLayout, 4);
+ dateView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
+ {
+ //绉婚櫎fLayout鐣岄潰
+ fLayout.RemoveFromParent();
+ };
+ //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏂囨湰鐘舵��
+ string weekName = "";
+ //瀹氫箟涓�涓眬閮˙tn鐢ㄦ潵璁板綍閫変腑Btn;
+ var selecetdBtn = new Button() { Text = "" };
+ for (int i = 0; i < 4; i++)
+ {
+ LogicView.SelectTypeView dateTypeView = new LogicView.SelectTypeView();
+ dateTypeView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
+ dateTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
+ dateTypeView.btnIcon.Visible = false;
+ dateTypeView.btnText.X = Application.GetRealWidth(20);
+ dateTypeView.btnNextIcon.X = Application.GetRealWidth(307);
+ dateTypeView.btnLine.X = Application.GetRealWidth(20);
+ dateTypeView.btnLine.Width = Application.GetRealWidth(303);
+ dateView.frameLayout.AddChidren(dateTypeView.FLayoutView());
+ dateTypeView.btnClick.Tag = i;//鏍囪绫诲瀷
+
+ switch (i)
+ {
+ case 0:
+ {
+ weekName = Language.StringByID(StringId.performA);
+ dateTypeView.btnNextIcon.Visible = false;
+ }
+ break;
+ case 1:
+ {
+ weekName = Language.StringByID(StringId.days);
+ dateTypeView.btnNextIcon.Visible = false;
+ }
+ break;
+ case 2:
+ {
+ weekName = Language.StringByID(StringId.weekly);
+ }
+ break;
+ case 3:
+ {
+ weekName = Language.StringByID(StringId.monthly);
+ }
+ break;
+
+
+ }
+ dateTypeView.btnText.Text = weekName;
+ //寰幆绫诲瀷(渚嬪锛氭瘡鏈堬紝姣忓ぉ)鐐瑰嚮浜嬩欢
+ dateTypeView.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ int clickIndex = int.Parse(dateTypeView.btnClick.Tag.ToString());
+ switch (clickIndex)
+ {
+ case 0:
+ {
+ weekName = Language.StringByID(StringId.performA);
+ selecetdBtn.TextColor = CSS.CSS_Color.textColor;
+ dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
+ selecetdBtn = dateTypeView.btnText;
+ }
+ break;
+ case 1:
+ {
+ weekName = Language.StringByID(StringId.days);
+ selecetdBtn.TextColor = CSS.CSS_Color.textColor;
+ dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
+ selecetdBtn = dateTypeView.btnText;
+
+ }
+ break;
+ case 2:
+ {
+ WeekMethod(fLayout, button);
+ }
+ break;
+ case 3:
+ {
+ MonMethod(fLayout, button);
+ }
+ break;
+
+
+ }
+ };
+
+
+ //鏄剧ず涔嬪墠鐨勭姸鎬�
+ if (button.Text == weekName)
+ {
+ dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
+ selecetdBtn = dateTypeView.btnText;
+
+ }
+ }
+ //纭畾淇濆瓨
+ dateView.btnConfirm.MouseUpEventHandler += (sender3, e3) =>
+ {
+ if (selecetdBtn.Text == Language.StringByID(StringId.performA))
+ {
+ //鎵ц涓�娆�
+ Logic.currlogic.cycle.type = "once";
+ }
+ else if (selecetdBtn.Text == Language.StringByID(StringId.days))
+ {
+ //姣忓ぉ
+ Logic.currlogic.cycle.type = "day";
+
+ }
+ else
+ {
+ //鎻愮ず锛氳繕鏈��
+ return;
+ }
+ //閫変腑淇濆瓨涔嬪悗鏄剧ず鏂囨湰
+ button.Text = selecetdBtn.Text;
+ //绉婚櫎fLayout鐣岄潰
+ fLayout.RemoveFromParent();
+ };
+ }
+ /// <summary>
+ /// 閫変腑鏄熸湡鍑�(鍛ㄤ竴锛屽懆浜� 銆傘�傘��)
+ /// </summary>
+ /// <param name="fLayout">寮规涓绘帶浠�</param>
+ /// <param name="button">鏄剧ず鏂囨湰</param>
+ public void WeekMethod(FrameLayout fLayout, Button button)
+ {
+ //瀹氫箟涓�涓眬閮╳eekList鍒楄〃鐢ㄦ潵璁板綍閫変腑鏁版嵁;
+ List<string> weekStateList = new List<string>();
+ PublicInterface weekView = new PublicInterface();
+ if (Logic.currlogic.cycle.type == "week")
+ {
+ //鏁版嵁杞崲
+ var list = weekView.GetWeekString(Logic.currlogic.cycle.value, "int");
+ //鍔犺浇涔嬪墠淇濆瓨鐨勬暟鎹�
+ weekStateList.AddRange(list);
+ }
+ var weekListStr = weekView.GetViewList("week");
+ weekView.MultiSelectShow(fLayout, weekListStr, Language.StringByID(StringId.cyclic), weekStateList
+ , (list) =>
+ {
+
+ //閫変腑鏁版嵁澶勭悊
+ var statelist = weekView.GetWeekString(list, "str");
+ string textStr = MainView.GetWeekString(statelist);
+ //鏄剧ず閫変腑鏁版嵁
+ button.Text = textStr;
+ //灏佽鏁版嵁
+ Logic.currlogic.cycle.type = "week";
+ Logic.currlogic.cycle.value = statelist;
+
+ });
+ }
+ /// <summary>
+ /// 姣忔湀
+ /// </summary>
+ /// <param name="fLayout">寮规涓绘帶浠�</param>
+ /// <param name="button">鏄剧ず鏂囨湰</param>
+ public void MonMethod(FrameLayout fLayout, Button button)
+ {
+
+ PublicInterface weekView = new PublicInterface();
+ weekView.MonSelectShow(fLayout, Logic.currlogic, (monList) =>
+ {
+ //閫変腑鏁版嵁澶勭悊
+ string textStr = MainView.GetMonString(monList);
+ //鏄剧ず閫変腑鏁版嵁
+ button.Text = textStr;
+ //灏佽鏁版嵁
+ Logic.currlogic.cycle.type = "mon";
+ Logic.currlogic.cycle.value = monList;
+ });
+
+ }
+ /// <summary>
+ /// 婊¤冻鏉′欢
+ /// </summary>
+ /// <param name="button">鏄剧ず鏂囨湰</param>
+ public void AndOrMethod(Button button)
+ {
+
+ ///涔嬪墠鐨勭姸鎬佹枃鏈�
+ string currCondition = button.Text;
+ PublicInterface conditionView = new PublicInterface();
+ var strList = conditionView.GetViewList("andor");
+ conditionView.SingleSelectionShow(this, strList, Language.StringByID(StringId.meetTheCondition), currCondition
+ , (stateValue) =>
+ {
+ //鐣岄潰鏄剧ず閫変腑鍊�
+ button.Text = stateValue;
+ //灏佽鏁版嵁
+ if (stateValue == Language.StringByID(StringId.orCondition))
+ {
+ Logic.currlogic.relation = "or";
+ }
+ else
+ {
+ Logic.currlogic.relation = "and";
+ }
+
+ });
}
+
+
}
}
--
Gitblit v1.8.0