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/AddLogic.cs | 528 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 501 insertions(+), 27 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs index 5f03fd0..1b9285f 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs @@ -14,14 +14,28 @@ 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 { @@ -38,23 +52,29 @@ viewLayout.AddChidren(addInputTextView.FLayoutView(46, 12)); ///婊¤冻浠ヤ笅鏉′欢鐨刅iew LogicView.LogicTypeTitleView titleCondition = new LogicView.LogicTypeTitleView(); - titleCondition.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); - titleCondition.btnText.TextID = StringId.whenTheFollowingConditionsAreMet; + titleCondition.btnText.Width = Application.GetRealWidth(300); + titleCondition.btnText.Height = Application.GetRealHeight(28); + titleCondition.btnText.IsMoreLines = true; + titleCondition.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); + 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(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); + 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 鐩爣 @@ -64,16 +84,17 @@ viewLayout.AddChidren(addOutpuTextView.FLayoutView(54, 20)); ///浠ヤ笅鍔ㄤ綔View LogicView.LogicTypeTitleView titleOutpu = new LogicView.LogicTypeTitleView(); - titleOutpu.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); + 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(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); + addOutputIcon.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); viewLayout.AddChidren(addOutputIcon.FLayoutView()); + #endregion #region 寰幆鏂瑰紡 @@ -83,11 +104,11 @@ viewLayout.AddChidren(cyclicTextView.FLayoutView(54, 20)); ///閫夋嫨鍛ㄦ湡绫诲瀷View LogicView.LogicTypeTitleView cyclicTitle = new LogicView.LogicTypeTitleView(); - cyclicTextView.frameLayout.Height = Application.GetRealHeight(50); - cyclicTitle.frameLayout.SetCornerWithSameRadius(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 鎵ц鎺ㄩ�� 鍙戦�侀�氱煡 @@ -96,28 +117,481 @@ ///鎵ц鎺ㄩ�乮ew LogicView.LogicTypeTitleView push = new LogicView.LogicTypeTitleView(); push.frameLayout.Height = Application.GetRealHeight(50); - push.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); + 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(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); + 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 淇濆瓨 ///淇濆瓨View LogicView.SaveView saveView = new LogicView.SaveView(); - saveView.frameLayout.SetCornerWithSameRadius(24, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); + 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.CurrLogicMethod.NewSid(); + loading.Start(); + new System.Threading.Thread(() => + { + try + { + if (!MainPage.NoLoginMode) + { + //鍙戦�佹柊鍔犻�昏緫鍛戒护锛� + responsePackNew = Send.AddLogic(Logic.currlogic); + } + + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + loading.Hide(); + if(MainPage.NoLoginMode) + { + Logic.LogicList.Add(Logic.currlogic); + LogicMethod.CurrLogicMethod.RemoveAllView(); + MainView.MainShow(); + return; + } + + 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.CurrLogicMethod.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.CurrLogicMethod.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