using 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 { public class CombinedDimmingListPage : FrameLayout { FrameLayout bodyView; VerticalScrolViewLayout contentView; public CombinedDimmingListPage() { bodyView = this; } public void LoadPage() { 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 { } }); contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(64+10), Height = Application.GetRealHeight(667 - 64-10), BackgroundColor = CSS_Color.MainBackgroundColor, }; bodyView.AddChidren(contentView); ReadGroupControlList(); #region contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) }); #endregion } /// /// 读取组控数据 /// 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>(pack.Data.ToString()); try { var groupControlList = JsonConvert.DeserializeObject>(pack.Data.ToString()); var readSidList = new List(); 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>(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>(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 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(); }; } } } }