From efcffde735fa65ae34bae0bcc86313b74ed0e36c Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 20 五月 2024 13:47:38 +0800 Subject: [PATCH] 优化离线数据 --- HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs | 351 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 283 insertions(+), 68 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs index ec63191..b630a7e 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs @@ -1,7 +1,10 @@ 锘縰sing System; +using System.Collections.Generic; +using HDL_ON.Common; using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; +using Newtonsoft.Json; using Shared; namespace HDL_ON.UI @@ -9,6 +12,7 @@ public class CombinedDimmingListPage : FrameLayout { FrameLayout bodyView; + VerticalScrolViewLayout contentView; public CombinedDimmingListPage() { @@ -18,89 +22,300 @@ public void LoadPage() { - new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView_AddIcon("CombinedDimming", - (s,c)=>{ - + var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.GroupControl)); + topView.maginY = 10; + topView.LoadTopView_AddIcon("CombinedDimming", + (s, c) => + { + try + { + var page = new AddGroupControlPage(null, + (newGC) => + { + Application.RunOnMainThread(() => + { + LoadGroupControlView(); + }); + }, () => { }); + MainPage.BasePageView.AddChidren(page); + page.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + } + catch { } }); - var contentView = new VerticalScrolViewLayout() + contentView = new VerticalScrolViewLayout() { - Y = Application.GetRealHeight(64), - Height = Application.GetRealHeight(550), + Y = Application.GetRealHeight(64+10), + Height = Application.GetRealHeight(667 - 64-10), BackgroundColor = CSS_Color.MainBackgroundColor, }; bodyView.AddChidren(contentView); - - new System.Threading.Thread(() => { - var http = new HttpServerRequest(); - var pack = http.GetGroupControlList(); - if(pack != null) - { - if(pack.Code == StateCode.SUCCESS) - { - var data = Newtonsoft.Json.JsonConvert.DeserializeObject<GroupControl>(pack.Data.ToString()); - } - } - - }) { IsBackground = true }.Start(); + ReadGroupControlList(); #region contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) }); - var row = new FrameLayout() - { - Height = Application.GetRealHeight(65), - BackgroundColor = CSS_Color.MainBackgroundColor, - }; - - var btnTitle = new Button() - { - X = Application.GetRealWidth(16), - Y = Application.GetRealHeight(10), - Width = Application.GetRealWidth(308), - Height = Application.GetRealHeight(24), - TextID = StringId.AdministratorPermissionMigration, - TextAlignment = TextAlignment.CenterLeft, - TextSize = CSS_FontSize.SubheadingFontSize, - TextColor = CSS_Color.FirstLevelTitleColor, - }; - row.AddChidren(btnTitle); - - var btnAdministratorPermissionMigrationExplan = new Button() - { - X = Application.GetRealWidth(16), - Y = btnTitle.Bottom, - Width = Application.GetRealWidth(308), - Height = Application.GetRealHeight(21), - TextID = StringId.AdministratorPermissionMigrationExPlan, - TextAlignment = TextAlignment.CenterLeft, - TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - TextColor = CSS_Color.PromptingColor1, - }; - row.AddChidren(btnAdministratorPermissionMigrationExplan); - var btnAdministratorPermissionMigrationSkinIcon = new Button() - { - X = Application.GetRealWidth(343), - Gravity = Gravity.CenterVertical, - Width = Application.GetMinRealAverage(16), - Height = Application.GetMinRealAverage(16), - UnSelectedImagePath = "Public/RightIcon.png", - }; - row.AddChidren(btnAdministratorPermissionMigrationSkinIcon); - row.AddChidren( - new Button() - { - Gravity = Gravity.CenterHorizontal, - Y = Application.GetRealHeight(64), - Height = Application.GetRealHeight(1), - Width = Application.GetRealWidth(343), - BackgroundColor = CSS_Color.DividingLineColor, - }); #endregion } + /// <summary> + /// 璇诲彇缁勬帶鏁版嵁 + /// </summary> + private void ReadGroupControlList() + { + + new System.Threading.Thread(() => + { + var pack = ApiUtlis.Ins.HttpRequest.GetGroupControlList(); + if (pack != null) + { + if (pack.Code == StateCode.SUCCESS) + { + try + { + //FunctionList.List.groupControls.Clear(); + //FunctionList.List.groupControls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString()); + + try + { + var groupControlList = JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString()); + var readSidList = new List<string>(); + foreach (var temp in groupControlList) + { + FunctionList.List.groupControls.Clear(); + readSidList.Add(temp.userDeviceGroupControlId); + if (readSidList.Count >= 20) + { + var data = ApiUtlis.Ins.HttpRequest.GetGroupControInfo(readSidList); + if (data != null) + { + if (data.Code == StateCode.SUCCESS) + { + var groupControlInfoList = JsonConvert.DeserializeObject<List<GroupControl>>(data.Data.ToString()); + FunctionList.List.groupControls.AddRange(groupControlInfoList); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + readSidList.Clear(); + } + } + if (readSidList.Count > 0) + { + var data = ApiUtlis.Ins.HttpRequest.GetGroupControInfo(readSidList); + if (data != null) + { + if (data.Code == StateCode.SUCCESS) + { + var groupControlInfoList = JsonConvert.DeserializeObject<List<GroupControl>>(data.Data.ToString()); + FunctionList.List.groupControls.AddRange(groupControlInfoList); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + readSidList.Clear(); + } + } + catch (Exception ex) + { + MainPage.Log($"璇诲彇缁勬帶鍒楄〃澶辫触:{ex.Message}"); + } + + Application.RunOnMainThread(() => + { + LoadGroupControlView(); + }); + } + catch (Exception ex) + { + MainPage.Log($"璇诲彇缁勬帶鍒楄〃澶辫触:{ex.Message}"); + } + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + }) + { IsBackground = true }.Start(); + + } + + + private void LoadGroupControlView() + { + contentView.RemoveAll(); + + foreach (var groupControl in FunctionList.List.groupControls) + { + var functionRow = new RowLayout() + { + Height = Application.GetRealHeight(65), + BackgroundColor = CSS_Color.MainBackgroundColor, + LineColor = 0x00000000 + }; + contentView.AddChidren(functionRow); + + var btnRight = new Button() + { + X = Application.GetRealWidth(339), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + UnSelectedImagePath = "Public/Right.png", + }; + functionRow.AddChidren(btnRight); + + var btnFunctionName = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(10), + Width = Application.GetRealWidth(308), + Height = Application.GetRealHeight(24), + TextAlignment = TextAlignment.CenterLeft, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + Text = groupControl.name, + }; + functionRow.AddChidren(btnFunctionName); + + var btnFunctionLocationInfo = new Button() + { + X = Application.GetRealWidth(16), + Y = btnFunctionName.Bottom, + Width = Application.GetRealWidth(308), + Height = Application.GetRealHeight(21), + TextAlignment = TextAlignment.CenterLeft, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextColor = CSS_Color.PromptingColor1, + Text = groupControl.GetRoomListName(), + }; + functionRow.AddChidren(btnFunctionLocationInfo); + + + + functionRow.AddChidren( + new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(64), + Height = Application.GetRealHeight(1), + Width = Application.GetRealWidth(343), + BackgroundColor = CSS_Color.DividingLineColor, + }); + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => + { + var page = new AddGroupControlPage(groupControl, + (newGC) => + { + try + { + if (newGC != null) + { + Application.RunOnMainThread(() => + { + var localTemp = FunctionList.List.groupControls.Find((obj) => obj.deviceId == newGC.deviceId); + localTemp.roomIds = newGC.roomIds; + localTemp.uids = newGC.uids; + localTemp.sids = newGC.sids; + localTemp.name = newGC.name; + btnFunctionLocationInfo.Text = newGC.GetUidListName(); + btnFunctionName.Text = newGC.name; + }); + } + } + catch (Exception ex) + { + MainPage.Log($"鍒锋柊缇ゆ帶鎴块棿淇℃伅寮傚父:{ex.Message}"); + } + }, () => + { + LoadGroupControlView(); + }); + MainPage.BasePageView.AddChidren(page); + page.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + functionRow.MouseUpEventHandler = eventHandler; + btnRight.MouseUpEventHandler = eventHandler; + btnFunctionName.MouseUpEventHandler = eventHandler; + btnFunctionLocationInfo.MouseUpEventHandler = eventHandler; + + var btnDelGroupControl = new Button() + { + TextColor = CSS_Color.MainBackgroundColor, + BackgroundColor = CSS_Color.WarningColor, + TextID = StringId.Del, + TextAlignment = TextAlignment.Center, + }; + functionRow.AddRightView(btnDelGroupControl); + btnDelGroupControl.MouseUpEventHandler = (sender1, e1) => + { + 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); + LoadGroupControlView(); + } + 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(); + }; + + } + + } + + } } -- Gitblit v1.8.0