From f9181a9c8125136f597add7c30cb2ff508d54ba7 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:34:32 +0800 Subject: [PATCH] 2024年07月25日17:33:40 --- HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs | 284 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 209 insertions(+), 75 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs index b90288d..3ae8804 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Threading; +using HDL_ON.Common; using HDL_ON.DAL.Server; using HDL_ON.DriverLayer; using HDL_ON.Entity; @@ -50,7 +51,8 @@ /// <summary> /// 鍥炶皟鍒锋柊 /// </summary> - Action backActon; + Action<GroupControl> addActon; + Action delAction; /// <summary> /// 鏄惁鏂板缇ゆ帶 /// </summary> @@ -64,7 +66,7 @@ GroupControlType groupControlType = new GroupControlType(); - public AddGroupControlPage(GroupControl groupControl, Action action) + public AddGroupControlPage(GroupControl groupControl, Action<GroupControl> addAction,Action delAction) { bodyView = this; if(groupControl == null) @@ -78,19 +80,90 @@ editDataString = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl); } groupControlLightList = new List<Function>(); - backActon = action; + this.addActon = addAction; + + this.delAction = delAction; + lightList = FunctionList.List.GetLightList(); } public void LoadPage() { bodyView.BackgroundColor = CSS_Color.BackgroundColor; - new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView(); + if (isAdd) + { + var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.GroupControl)); + topView.maginY = 10; + topView.LoadTopView(); + } + else + { + var topView = new TopViewDiv(bodyView, ""); + topView.maginY = 10; + topView.LoadTopView_SettingText(()=> { + Action action = () => { + var waitPage = new Loading(); + this.AddChidren(waitPage); + waitPage.Start(""); + new System.Threading.Thread(() => + { + try + { + var pack = ApiUtlis.Ins.HttpRequest.DelGroupControl(groupControl.userDeviceGroupControlId); + if (pack != null) + { + Application.RunOnMainThread(() => + { + try + { + if (pack.Code == StateCode.SUCCESS) + { + var delTemp = FunctionList.List.groupControls.Find((obj) => groupControl.sid == obj.sid); + FunctionList.List.groupControls.Remove(delTemp); + //list.Remove(groupControl); + this.RemoveFromParent(); + delAction?.Invoke(); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + catch (Exception ex) + { + MainPage.Log($"鍒锋柊缁勬帶鏁版嵁寮傚父:{ex.Message}"); + } + }); + } + } + catch (Exception ex) + { + MainPage.Log($"鍒犻櫎缁勬帶寮傚父:{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => { + if (waitPage != null) + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); + + }; + new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DoYouWantDelCombinedDimming, action); + + }, Language.StringByID(StringId.DelGroupControl),true); + } var contentView = new FrameLayout() { - Y = Application.GetRealHeight(64), - Height = Application.GetRealHeight(667-64), + Y = Application.GetRealHeight(64+10), + Height = Application.GetRealHeight(667-64-10), }; bodyView.AddChidren(contentView); @@ -182,6 +255,7 @@ Action chooseRoomBackAction = () => { try { + groupControl.uids = groupControl.roomIds; btnLocationValues.Text = groupControl.GetRoomListName(); } catch { } @@ -301,7 +375,7 @@ functionListView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(220), - Height = Application.GetRealHeight(640 - 12 - 52 - 100 -100), + Height = Application.GetRealHeight(640 - 12 - 52 - 100 -100-10), }; bodyView.AddChidren(functionListView); @@ -348,6 +422,7 @@ new PublicAssmebly().TipMsg(StringId.Tip, StringId.PlsEntryGroupName); return; } + groupControl.name = name; if (groupControlLightList.Count < 2) { new PublicAssmebly().TipMsg(StringId.Tip, StringId.PlsSelectMoreData); @@ -355,7 +430,6 @@ } if (isAdd) { - groupControl.name = name; groupControl.sids.Clear(); foreach (var light in groupControlLightList) { @@ -371,88 +445,137 @@ MainPage.Log($"鏂板缇ゆ帶杞崲鏁版嵁寮傚父:{ex.Message}"); } } - try + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(""); + new Thread(() => { - groupControl.type = groupControlType.type; - groupControl.sid = groupControl.NewGroupControlSid(); - var pack = Common.ApiUtlis.Ins.HttpRequest.AddGroupControl(new List<GroupControl>() { groupControl }); - if (pack != null) + try { - if (pack.Code == StateCode.SUCCESS) + groupControl.type = groupControlType.type; + groupControl.sid = groupControl.NewGroupControlSid(); + var pack = ApiUtlis.Ins.HttpRequest.AddGroupControl(new List<GroupControl>() { groupControl }); + if (pack != null) { + if (pack.Code == StateCode.SUCCESS) + { + try + { + var addTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString()); + if (addTemp != null && addTemp.Count > 0) + groupControl.userDeviceGroupControlId = addTemp[0].userDeviceGroupControlId; + FunctionList.List.groupControls.Add(groupControl); + } + catch (Exception ex) + { + MainPage.Log($"娣诲姞缇ゆ帶寮傚父锛岃浆璇戣繑鍥炴暟鎹け璐�:{ex.Message}"); + } + Application.RunOnMainThread(() => + { + addActon?.Invoke(groupControl); + this.RemoveFromParent(); + }); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + + } + catch (Exception ex) + { + MainPage.Log($"鏂板缇ゆ帶寮傚父:{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => { try { - var addTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString()); - FunctionList.List.groupControls.AddRange(addTemp); + waitPage.Hide(); + waitPage = null; } - catch (Exception ex) - { - MainPage.Log($"娣诲姞缇ゆ帶鎴愬姛锛岃浆璇戣繑鍥炴暟鎹け璐�:{ex.Message}"); - } - backActon?.Invoke(); - this.RemoveFromParent(); - } - else - { - IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); - } + catch { } + }); } - } - catch (Exception ex) - { - MainPage.Log($"鏂板缇ゆ帶寮傚父:{ex.Message}"); - } + }) + { IsBackground = true }.Start(); } else { - try + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(""); + new Thread(() => { - var newEditDataString = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl); - //娌℃湁鏇存柊鏁版嵁鍒欑洿鎺ラ��鍑� - if (newEditDataString == editDataString) + try { - this.RemoveFromParent(); - return; - } - groupControl.sids.Clear(); - foreach (var light in groupControlLightList) - { - try + //var newEditDataString = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl); + //var newEditDataString1 = Newtonsoft.Json.JsonConvert.SerializeObject(groupControlLightList); + //var newEditDataString2 = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl.sids); + ////娌℃湁鏇存柊鏁版嵁鍒欑洿鎺ラ��鍑� + //if (newEditDataString == editDataString && newEditDataString1 == newEditDataString2) + //{ + // this.RemoveFromParent(); + // return; + //} + groupControl.sids.Clear(); + foreach (var light in groupControlLightList) { - var gc = new GroupControlFunction(); - gc.sid = light.sid; - gc.spk = light.spk; - groupControl.sids.Add(gc); - } - catch (Exception ex) - { - MainPage.Log($"鏂板缇ゆ帶杞崲鏁版嵁寮傚父:{ex.Message}"); - } - } - - var pack = Common.ApiUtlis.Ins.HttpRequest.EditGroupControl(new List<GroupControl>() { groupControl }); - if (pack != null) - { - if (pack.Code == StateCode.SUCCESS) - { - var temp = FunctionList.List.groupControls.Find((obj) => obj.userDeviceGroupControlId == groupControl.userDeviceGroupControlId); - if(temp!= null) + try { - temp = groupControl; + var gc = new GroupControlFunction(); + gc.sid = light.sid; + gc.spk = light.spk; + groupControl.sids.Add(gc); } - backActon?.Invoke(); - this.RemoveFromParent(); + catch (Exception ex) + { + MainPage.Log($"鏂板缇ゆ帶杞崲鏁版嵁寮傚父:{ex.Message}"); + } } - else + + var pack = ApiUtlis.Ins.HttpRequest.EditGroupControl(new List<GroupControl>() { groupControl }); + if (pack != null) { - IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + if (pack.Code == StateCode.SUCCESS) + { + var temp = FunctionList.List.groupControls.Find((obj) => obj.userDeviceGroupControlId == groupControl.userDeviceGroupControlId); + if (temp != null) + { + temp = groupControl; + } + Application.RunOnMainThread(() => + { + addActon?.Invoke(temp); + this.RemoveFromParent(); + }); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } } } - } - catch (Exception ex) - { - MainPage.Log($"缂栬緫缇ゆ帶寮傚父:{ex.Message}"); - } + catch (Exception ex) + { + MainPage.Log($"缂栬緫缇ゆ帶寮傚父:{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + try + { + waitPage.Hide(); + waitPage = null; + } + catch { } + }); + + } + }) + { IsBackground = true }.Start(); } } @@ -478,6 +601,12 @@ var groupControlTypes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControlType>>(pack.Data.ToString()); if (groupControlTypes != null && groupControlTypes.Count > 0) { + //groupControlType = new GroupControlType { + // type = "LIGHT", + // typeName ="鐏厜鎺у埗", + // spks = new List<string> { "light.switch" }, + // spkAttrs = new List<string> { "on_off" } + //}; groupControlType = groupControlTypes[0]; Application.RunOnMainThread(() => { LoadLightRow(lightList); @@ -542,7 +671,7 @@ /// <summary> /// 鏄剧ず鐨勮澶囩殑鎬绘暟 /// </summary> - int showCount = 0; + int showCount = -1; /// <summary> /// 鍔犺浇鍔熻兘row @@ -562,7 +691,7 @@ { if (!isAppend) { - showCount = 0; + showCount = -1; functionListView.RemoveAll(); } for(var i =0;i<100;i++) @@ -603,7 +732,7 @@ { btnConfrim.IsSelected = false; } - if (groupControlLightList.Count == functions.Count) + if (groupControlLightList.Count != functions.Count) { btnChooseAll.TextID = StringId.SelectedAll; } @@ -675,8 +804,12 @@ var form = new FloorRoomSelectPopupView(); form.ShowDeviceFunctionView(btnFloor, this.lightList, (selectId, listFunc) => { + groupControlLightList.Clear(); + groupControl.sids.Clear(); + btnChooseAll.TextID = StringId.SelectAll; + btnConfrim.IsSelected = false; btnChooseAll.MouseUpEventHandler = (sender2, e2) => { - if (groupControlLightList.Count > 0) + if (groupControlLightList.Count == listFunc.Count) { groupControlLightList.Clear(); btnChooseAll.TextID = StringId.SelectAll; @@ -684,6 +817,7 @@ } else { + groupControlLightList.Clear(); groupControlLightList.AddRange(listFunc); btnChooseAll.TextID = StringId.Cancel; btnConfrim.IsSelected = true; -- Gitblit v1.8.0