From 203c3a3ffde6259413d9743f6a723b95b1e7989c Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 06 七月 2023 22:43:05 +0800
Subject: [PATCH] 门锁功能

---
 HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs |  302 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 236 insertions(+), 66 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..c4b2d1b 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs
@@ -1,4 +1,6 @@
 锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.Common;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
@@ -9,6 +11,7 @@
     public class CombinedDimmingListPage : FrameLayout
     {
         FrameLayout bodyView;
+        VerticalScrolViewLayout contentView;
 
         public CombinedDimmingListPage()
         {
@@ -20,87 +23,254 @@
 
             new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView_AddIcon("CombinedDimming",
                 (s,c)=>{
-
+                    try
+                    {
+                        var page = new AddGroupControlPage(null,
+                            (newGC)=> {
+                                ReadGroupControlList();
+                            },()=> { });
+                        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),
+                Height = Application.GetRealHeight(667 - 64),
                 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
+                        {
+                            var groupControlList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString());
+                            Application.RunOnMainThread(() =>
+                            {
+                                LoadGroupControlView(groupControlList);
+                            });
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"璇诲彇缁勬帶鍒楄〃澶辫触:{ex.Message}");
+                        }
+                    }
+                    else
+                    {
+                        IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+                    }
+                }
+            })
+            { IsBackground = true }.Start();
+
+        }
+
+
+        private void LoadGroupControlView(List<GroupControl> list)
+        {
+#if DEBUG
+            if (list.Count == 0)
+            {
+                list.Add(new GroupControl()
+                {
+                    name = "缁勫悎璋冨厜1",
+                    roomIds = new List<string> {},
+                    sid = "00000000000000001",
+                    type = "light",
+                });
+
+                list.Add(new GroupControl()
+                {
+                    name = "缁勫悎璋冨厜2",
+                    roomIds = new List<string> { },//Room.CurrentSpatial.RoomList[0].roomId 
+                    sid = "00000000000000002",
+                    type = "light",
+                });
+            }
+
+#endif
+
+            if (list.Count == 0)
+            {
+
+            }
+            else
+            {
+                contentView.RemoveAll();
+
+                foreach (var groupControl in list)
+                {
+                    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(() =>
+                                       {
+                                           groupControl.roomIds = newGC.uids;
+                                           btnFunctionLocationInfo.Text = newGC.GetUidListName();
+                                       });
+                                   }
+                               }catch(Exception ex)
+                               {
+                                   MainPage.Log($"鍒锋柊缇ゆ帶鎴块棿淇℃伅寮傚父:{ex.Message}");
+                               }
+                           },()=> {
+                               LoadGroupControlView(FunctionList.List.groupControls);
+                           });
+                        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)
+                                            {
+                                                list.Remove(groupControl);
+                                                LoadGroupControlView(list);
+                                            }
+                                            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