From 4a9318077bd095fbc7c57c593e5ca8185603dac4 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期六, 19 十二月 2020 18:35:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into NewFilePath

---
 HDL-ON_Android/HDL-ON_Android.csproj                              |   10 
 HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs                     |    8 
 HDL-ON_iOS/Resources/Phone/Public/PopupDialog.png                 |    0 
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs |  181 ++-------------
 HDL_ON/UI/UI2/2-Classification/FunctionPage.cs                    |  150 -----------
 HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs                  |   49 +++
 HDL-ON_iOS/HDL-ON_iOS.csproj                                      |    8 
 HDL-ON_Android/Assets/Phone/Public/PopupDialog.png                |    0 
 HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs                   |  305 +++++++++++++++++++++++++
 HDL_ON/HDL_ON.projitems                                           |    3 
 10 files changed, 407 insertions(+), 307 deletions(-)

diff --git a/HDL-ON_Android/Assets/Phone/Public/PopupDialog.png b/HDL-ON_Android/Assets/Phone/Public/PopupDialog.png
old mode 100644
new mode 100755
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 5ba138a..366fa8d 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -654,6 +654,16 @@
     <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\ColorWheelTip.png" />
     <AndroidAsset Include="Assets\Phone\LogicIcon\time.png" />
     <AndroidAsset Include="Assets\Phone\Public\ClearIcon.png" />
+    <AndroidAsset Include="Assets\Phone\ErrorIcon.png" />
+    <AndroidAsset Include="Assets\Phone\oRobot.png" />
+    <AndroidAsset Include="Assets\Phone\RoomListBg.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\ColorTemperatrueQuick.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\ColorTemperatrueQuickBack.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\ColorTemperatureBar.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\CozyIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\MeetingGuestsIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\ReadIcon.png" />
+    <AndroidAsset Include="Assets\Phone\Public\PopupDialog.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index ff0a671..849af29 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -630,6 +630,14 @@
       <BundleResource Include="Resources\Phone\PersonalCenter\AppUnlockSetting\FingerIconBlue.png" />
       <BundleResource Include="Resources\Phone\Public\ClearIcon.png" />
       <BundleResource Include="Resources\Phone\LogicIcon\time.png" />
+      <BundleResource Include="Resources\Phone\ErrorIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Light\ColorTemperatrueQuick.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Light\ColorTemperatrueQuickBack.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Light\ColorTemperatureBar.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Light\CozyIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Light\MeetingGuestsIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Light\ReadIcon.png" />
+      <BundleResource Include="Resources\Phone\Public\PopupDialog.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Resources/Phone/Public/PopupDialog.png b/HDL-ON_iOS/Resources/Phone/Public/PopupDialog.png
old mode 100644
new mode 100755
Binary files differ
diff --git a/HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs b/HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs
new file mode 100755
index 0000000..e0f3720
--- /dev/null
+++ b/HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs
@@ -0,0 +1,305 @@
+锘縰sing HDL_ON.Entity;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON
+{
+    /// <summary>
+    /// 妤煎眰鍙婃埧闂寸殑閫夋嫨鐣岄潰
+    /// </summary>
+    public class FloorRoomSelectPopupView
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 褰撳墠閫夋嫨鏄剧ず鐨刄ID(妤煎眰,鎴栬�呮埧闂�,鎴栬�呭叏閮�)
+        /// </summary>
+        private string nowShowSelectId = DiySelectPopupDialog.ALLSELECT;
+        /// <summary>
+        /// 鍏ㄩ儴鐨勫姛鑳�(璁惧鏄剧ず鍒嗘敮浣跨敤)
+        /// </summary>
+        private List<Function> listAllFun = null;
+
+        #endregion
+
+        #region 鈻� 鍦烘櫙鏄剧ず___________________________
+
+        /// <summary>
+        /// 鏄剧ず閫夋嫨鍦烘櫙鐨勭晫闈�
+        /// </summary>
+        /// <param name="btnFloor">妤煎眰鍚嶅瓧鏄剧ず鐨勬帶浠�,閫夋嫨鍚�,鍐呴儴浼氳嚜鍔ㄥ彉鏇存樉绀烘枃瀛�,鍙互璁剧疆涓簄ull</param>
+        /// <param name="SelectEvent">鏍规嵁閫夋嫨鐨勬潯浠�,绛涢�変箣鍚庣殑鍦烘櫙鍒楄〃(绗竴涓弬鏁版槸閫夋嫨鐨刄ID,涓嶇鏈夋病鏈夌敤,鎬讳箣鍏堣繑鍥�)</param>
+        /// <param name="i_defultSelectId">榛樿鍝釜涓洪�夋嫨鐘舵��</param>
+        public void ShowSceneView(Button btnFloor, Action<string, List<Scene>> SelectEvent, string i_defultSelectId = null)
+        {
+            //娓呯紦瀛�
+            this.ClearMemory();
+
+            if (string.IsNullOrEmpty(i_defultSelectId) == true)
+            {
+                i_defultSelectId = DiySelectPopupDialog.ALLSELECT;
+            }
+
+            //杩斿洖鐨刬d鏄疷ID
+            new FloorSelectPopupDialog().ShowView((selectValue) =>
+            {
+                this.nowShowSelectId = selectValue;
+                //鍒锋柊妤煎眰鐨勬樉绀哄悕瀛�
+                this.RefreshFloorShowName(btnFloor);
+
+                //鑾峰彇鍙互鏄剧ず鐨勫満鏅垪琛�
+                var listScene = this.GetCanShowListScene();
+                SelectEvent?.Invoke(this.nowShowSelectId, listScene);
+                SelectEvent = null;
+
+            }, i_defultSelectId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鑳藉鏄剧ず鐨勫満鏅�
+        /// </summary>
+        /// <returns></returns>
+        public List<Scene> GetCanShowListScene()
+        {
+            var listScene = new List<Scene>();
+
+            //鍏堢湅鐪嬪綋鍓嶉�夋嫨鐨勬樉绀虹被鍨� 1:鍏ㄩ儴 2:妤煎眰 3:鎴块棿
+            var selectType = this.CheckSelectFloorIdType();
+            if (selectType == 1)
+            {
+                return FunctionList.List.scenes;
+            }
+
+            //鎴块棿鐨刄ID (key:uid value:roomId)
+            var dicRoomUid = new Dictionary<string, string>();
+            foreach (var roomInfo in SpatialInfo.CurrentSpatial.RoomList)
+            {
+                dicRoomUid[roomInfo.uid] = roomInfo.roomId;
+            }
+            //鎴块棿
+            if (selectType == 3)
+            {
+                //鐢║ID杞崲涓簉oomId
+                string roomId = dicRoomUid.ContainsKey(this.nowShowSelectId) == true ? dicRoomUid[this.nowShowSelectId] : string.Empty;
+                foreach (var scene in FunctionList.List.scenes)
+                {
+                    //鍒ゆ柇杩欎釜鍦烘櫙鏄惁鏄繖涓埧闂寸殑
+                    if (scene.roomIds.Contains(roomId) == true)
+                    {
+                        listScene.Add(scene);
+                    }
+                }
+            }
+            //妤煎眰
+            else if (selectType == 2)
+            {
+                //鑾峰彇杩欎釜妤煎眰涓嬮潰鐨勫叏閮ㄦ埧闂碔D
+                var listRoomId = new List<string>();
+                foreach (var roomInfo in SpatialInfo.CurrentSpatial.RoomList)
+                {
+                    //鍒ゆ柇鏄笉鏄繖涓ゼ灞傜殑
+                    if (roomInfo.parentId == this.nowShowSelectId)
+                    {
+                        listRoomId.Add(roomInfo.roomId);
+                    }
+                }
+                foreach (var scene in FunctionList.List.scenes)
+                {
+                    //鍒ゆ柇杩欎釜鍦烘櫙鏄惁鏄繖涓埧闂寸殑
+                    foreach (var roomid in listRoomId)
+                    {
+                        if (scene.roomIds.Contains(roomid) == true)
+                        {
+                            listScene.Add(scene);
+                        }
+                    }
+                }
+            }
+            return listScene;
+        }
+
+        #endregion
+
+        #region 鈻� 璁惧鏄剧ず___________________________
+
+        /// <summary>
+        /// 鏄剧ず閫夋嫨鍦烘櫙鐨勭晫闈�
+        /// </summary>
+        /// <param name="btnFloor">妤煎眰鍚嶅瓧鏄剧ず鐨勬帶浠�,閫夋嫨鍚�,鍐呴儴浼氳嚜鍔ㄥ彉鏇存樉绀烘枃瀛�,鍙互璁剧疆涓簄ull</param>
+        /// <param name="i_listAllFun">鍏ㄩ儴鐨勮澶囧垪琛�,闇�瑕佹墜鍔ㄦ寚瀹�</param>
+        /// <param name="SelectEvent">鏍规嵁閫夋嫨鐨勬潯浠�,绛涢�変箣鍚庣殑璁惧鍒楄〃(绗竴涓弬鏁版槸閫夋嫨鐨刄ID,涓嶇鏈夋病鏈夌敤,鎬讳箣鍏堣繑鍥�)</param>
+        /// <param name="i_defultSelectId">榛樿鍝釜涓洪�夋嫨鐘舵��</param>
+        public void ShowDeviceFunctionView(Button btnFloor, List<Function> i_listAllFun, Action<string, List<Function>> SelectEvent, string i_defultSelectId = null)
+        {
+            //娓呯紦瀛�
+            this.ClearMemory();
+            this.listAllFun = new List<Function>();
+            this.listAllFun.AddRange(i_listAllFun);
+
+            if (string.IsNullOrEmpty(i_defultSelectId) == true)
+            {
+                i_defultSelectId = DiySelectPopupDialog.ALLSELECT;
+            }
+
+            //杩斿洖鐨刬d鏄疷ID
+            new FloorSelectPopupDialog().ShowView((selectValue) =>
+            {
+                this.nowShowSelectId = selectValue;
+                //鍒锋柊妤煎眰鐨勬樉绀哄悕瀛�
+                this.RefreshFloorShowName(btnFloor);
+
+                //鑾峰彇鍙互鏄剧ず鐨勮澶囧垪琛�
+                var listDevice = this.GetCanShowListDevice();
+                SelectEvent?.Invoke(this.nowShowSelectId, listDevice);
+                SelectEvent = null;
+
+            }, i_defultSelectId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鑳藉鏄剧ず鐨勮澶�
+        /// </summary>
+        /// <returns></returns>
+        public List<Function> GetCanShowListDevice()
+        {
+            var listFunction = new List<Function>();
+
+            //鍏堢湅鐪嬪綋鍓嶉�夋嫨鐨勬樉绀虹被鍨� 1:鍏ㄩ儴 2:妤煎眰 3:鎴块棿
+            var selectType = this.CheckSelectFloorIdType();
+            if (selectType == 1)
+            {
+                return this.listAllFun;
+            }
+
+            //鎴块棿鐨刄ID (key:uid value:roomId)
+            var dicRoomUid = new Dictionary<string, string>();
+            foreach (var roomInfo in SpatialInfo.CurrentSpatial.RoomList)
+            {
+                dicRoomUid[roomInfo.uid] = roomInfo.roomId;
+            }
+            //鎴块棿
+            if (selectType == 3)
+            {
+                //鐢║ID杞崲涓簉oomId
+                string roomId = dicRoomUid.ContainsKey(this.nowShowSelectId) == true ? dicRoomUid[this.nowShowSelectId] : string.Empty;
+                foreach (var func in this.listAllFun)
+                {
+                    //鍒ゆ柇杩欎釜鍦烘櫙鏄惁鏄繖涓埧闂寸殑
+                    if (func.roomIds.Contains(roomId) == true)
+                    {
+                        listFunction.Add(func);
+                    }
+                }
+            }
+            //妤煎眰
+            else if (selectType == 2)
+            {
+                //鑾峰彇杩欎釜妤煎眰涓嬮潰鐨勫叏閮ㄦ埧闂碔D
+                var listRoomId = new List<string>();
+                foreach (var roomInfo in SpatialInfo.CurrentSpatial.RoomList)
+                {
+                    //鍒ゆ柇鏄笉鏄繖涓ゼ灞傜殑
+                    if (roomInfo.parentId == this.nowShowSelectId)
+                    {
+                        listRoomId.Add(roomInfo.roomId);
+                    }
+                }
+                foreach (var func in this.listAllFun)
+                {
+                    //鍒ゆ柇杩欎釜鍦烘櫙鏄惁鏄繖涓埧闂寸殑
+                    foreach (var roomid in listRoomId)
+                    {
+                        if (func.roomIds.Contains(roomid) == true)
+                        {
+                            listFunction.Add(func);
+                        }
+                    }
+                }
+            }
+            return listFunction;
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鍒锋柊妤煎眰鐨勬樉绀哄悕瀛�
+        /// </summary>
+        /// <param name="btnFloorName"></param>
+        private void RefreshFloorShowName(Button btnFloorName)
+        {
+            if (btnFloorName == null)
+            {
+                return;
+            }
+            //鍏堢湅鐪嬪綋鍓嶉�夋嫨鐨勬樉绀虹被鍨� 1:鍏ㄩ儴 2:妤煎眰 3:鎴块棿
+            var selectType = this.CheckSelectFloorIdType();
+            if (selectType == 1)
+            {
+                //鍏ㄩ儴
+                btnFloorName.Text = Language.StringByID(StringId.All);
+            }
+            //鎴块棿
+            else if (selectType == 3)
+            {
+                foreach (var roomInfo in SpatialInfo.CurrentSpatial.RoomList)
+                {
+                    if (roomInfo.uid == this.nowShowSelectId)
+                    {
+                        btnFloorName.Text = roomInfo.floorName + roomInfo.roomName;
+                        return;
+                    }
+                }
+            }
+            //妤煎眰
+            else if (selectType == 2)
+            {
+                foreach (var floorInfo in SpatialInfo.CurrentSpatial.FloorList)
+                {
+                    if (floorInfo.uid == this.nowShowSelectId)
+                    {
+                        btnFloorName.Text = floorInfo.roomName;
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇褰撳墠鎵�閫夌殑ID鐨勭被鍨� 1:鍏ㄩ儴 2:妤煎眰 3:鎴块棿
+        /// </summary>
+        /// <returns></returns>
+        private int CheckSelectFloorIdType()
+        {
+            if (this.nowShowSelectId == DiySelectPopupDialog.ALLSELECT)
+            {
+                //鍏ㄩ儴
+                return 1;
+            }
+            foreach (var floorInfo in SpatialInfo.CurrentSpatial.FloorList)
+            {
+                if (floorInfo.uid == this.nowShowSelectId)
+                {
+                    //褰撳墠閫夋嫨鐨勬槸妤煎眰ID
+                    return 2;
+                }
+            }
+            //涓嶅嚭鎰忓,搴旇鏄埧闂翠簡
+            return 3;
+        }
+
+        /// <summary>
+        /// 娓呴櫎缂撳瓨
+        /// </summary>
+        public void ClearMemory()
+        {
+            //鍒濆鍊�
+            this.nowShowSelectId = DiySelectPopupDialog.ALLSELECT;
+            this.listAllFun = null;
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs b/HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs
index 19708a4..58130ee 100644
--- a/HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs
+++ b/HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs
@@ -40,7 +40,7 @@
                 mFirstList.Clear();
                 foreach (var room in roomList)
                 {
-                    mFirstList.Add(new RoomCellInfo() { Title = room.roomName, TagId = room.roomId });
+                    mFirstList.Add(new RoomCellInfo() { Title = room.roomName, TagId = room.uid });
                 }
                 var roomSelectPopupDialog = new DiySelectPopupDialog();
                 roomSelectPopupDialog.ShowView(mFirstList, null, selectAction, selectTag);
@@ -52,12 +52,12 @@
                 //涓�绾ф暟缁勪负妤煎眰
                 foreach (var floor in floorList)
                 {
-                    mFirstList.Add(new RoomCellInfo() { Title = floor.roomName, TagId = floor.roomId });
+                    mFirstList.Add(new RoomCellInfo() { Title = floor.roomName, TagId = floor.uid });
                     var mList = new List<RoomCellInfo>();
-                    var allRoom = roomList.FindAll((room) => room.parentId == floor.roomId);
+                    var allRoom = roomList.FindAll((room) => room.parentId == floor.uid);
                     foreach (var mRoom in allRoom)
                     {
-                        mList.Add(new RoomCellInfo() { Title = mRoom.roomName, TagId = mRoom.roomId });
+                        mList.Add(new RoomCellInfo() { Title = mRoom.roomName, TagId = mRoom.uid });
                     }
 
                     if(mList == null)
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 775ff70..6a8815a 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -265,6 +265,9 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\DiySelectPopupDialog.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorRoomSelectPopupView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorSelectPopupDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\DiySelectPopupDialog.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)UI\" />
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
index cac5d2c..c140558 100755
--- a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
@@ -163,146 +163,18 @@
         /// </summary>
         void LoadDialog_ChangeFloor()
         {
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
-            {
-                var dialog = new Dialog();
-                var dialogBody = new FrameLayout();
-                dialog.AddChidren(dialogBody);
-                dialogBody.MouseUpEventHandler += (sender1, e1) =>
-                {
-                    dialog.Close();
-                };
-
-                var dispalyView = new FrameLayout()
-                {
-                    X = Application.GetRealWidth(10),
-                    Y = Application.GetRealHeight(100),
-                    Width = Application.GetRealWidth(160),
-                    Height = Application.GetRealHeight(110),
-                    BackgroundImagePath = "PersonalCenter/HomeList1bg.png",
-                };
-                dialogBody.AddChidren(dispalyView);
-
-                var contentView = new VerticalScrolViewLayout()
-                {
-                    X = Application.GetRealWidth(8),
-                    Y = Application.GetRealHeight(15),
-                    Width = Application.GetRealWidth(150),
-                    Height = Application.GetRealHeight(45 * 2),
-                    ScrollEnabled = false
-                };
-                dispalyView.AddChidren(contentView);
-
-                if (SpatialInfo.CurrentSpatial.RoomList.Count < 2)
-                {
-                }
-                else if (SpatialInfo.CurrentSpatial.RoomList.Count < 3)
-                {
-                    dispalyView = new FrameLayout()
-                    {
-                        X = Application.GetRealWidth(10),
-                        Y = Application.GetRealHeight(100),
-                        Width = Application.GetRealWidth(160),
-                        Height = Application.GetRealHeight(155),
-                        BackgroundImagePath = "PersonalCenter/HomeList2bg.png",
-                    };
-                    dialogBody.AddChidren(dispalyView);
-
-                    contentView.Height = Application.GetRealHeight(45 * 3);
-                    dispalyView.AddChidren(contentView);
-                }
-                else if (SpatialInfo.CurrentSpatial.RoomList.Count < 4)
-                {
-                    dispalyView = new FrameLayout()
-                    {
-                        X = Application.GetRealWidth(10),
-                        Y = Application.GetRealHeight(100),
-                        Width = Application.GetRealWidth(160),
-                        Height = Application.GetRealHeight(200),
-                        BackgroundImagePath = "PersonalCenter/HomeList3bg.png",
-                    };
-                    dialogBody.AddChidren(dispalyView);
-
-                    contentView.Height = Application.GetRealHeight(45 * 4);
-                    dispalyView.AddChidren(contentView);
-                }
-                else
-                {
-                    dispalyView = new FrameLayout()
-                    {
-                        X = Application.GetRealWidth(10),
-                        Y = Application.GetRealHeight(100),
-                        Width = Application.GetRealWidth(160),
-                        Height = Application.GetRealHeight(245),
-                        BackgroundImagePath = "PersonalCenter/HomeList4bg.png",
-                    };
-                    dialogBody.AddChidren(dispalyView);
-
-                    contentView.Height = Application.GetRealHeight(45 * 5);
-                    contentView.ScrollEnabled = true;
-                    dispalyView.AddChidren(contentView);
-                }
-
-
-                List<Room> roomList = new List<Room>();
-                roomList.Add(new Room() { roomName = Language.StringByID(StringId.All) });
-                roomList.AddRange(SpatialInfo.CurrentSpatial.RoomList);
-                foreach (var tempRoom in roomList)
-                {
-                    var roomName = tempRoom.roomName;
-                    if (roomName != Language.StringByID(StringId.All))
-                    {
-                        contentView.AddChidren(new Button()
-                        {
-                            Gravity = Gravity.CenterHorizontal,
-                            Width = Application.GetRealWidth(112),
-                            Height = Application.GetRealHeight(1),
-                            BackgroundColor = CSS_Color.BackgroundColor
-                        });
-                    }
-                    var btnHomeName = new Button()
-                    {
-                        Gravity = Gravity.CenterHorizontal,
-                        Width = Application.GetRealWidth(112),
-                        Height = Application.GetRealHeight(44),
-                        TextAlignment = TextAlignment.CenterLeft,
-                        TextColor = CSS_Color.FirstLevelTitleColor,
-                        SelectedTextColor = CSS_Color.MainColor,
-                        Text = roomName,
-                        TextSize = CSS_FontSize.SubheadingFontSize,
-                        IsSelected = btnFloor.Text == roomName,
-                        IsMoreLines = true,
-                    };
-                    contentView.AddChidren(btnHomeName);
-
-                    btnHomeName.MouseUpEventHandler += (senderH, en) =>
-                    {
-                        dialog.Close();
-                        btnFloor.Text = roomName;
-                        if (roomName == Language.StringByID(StringId.All))
-                        {
-                            ShowFunctionRow(functionList);
-                        }
-                        else
-                        {
-                            var showList = new List<Function>();
-                            foreach (var sf in functionList)
-                            {
-                                if(sf.roomIds.Contains(tempRoom.roomId))
-                                {
-                                    showList.Add(sf);
-                                }
-                            }
-                            ShowFunctionRow(showList);
-                        }
-                    };
-                }
-
-                dialog.Show();
+            string nowSelectId = null;
+            btnFloor.MouseUpEventHandler += (sender, e) =>
+            {
+                //鏄剧ず涓嬫媺鍒楄〃
+                var form = new FloorRoomSelectPopupView();
+                form.ShowDeviceFunctionView(btnFloor, this.functionList, (selectId, listFunc) =>
+                {
+                    nowSelectId = selectId;
+                    //閲嶆柊鍔犺浇鐣岄潰
+                    ShowFunctionRow(listFunc);
+                }, nowSelectId);
             };
-
-            btnFloor.MouseUpEventHandler = eventHandler;
-            btnFloorDownIcon.MouseUpEventHandler = eventHandler;
         }
     }
 }
\ No newline at end of file
diff --git a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
index 8ac9bfb..efac389 100755
--- a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -1,4 +1,5 @@
 锘縰sing System;
+using System.Collections.Generic;
 using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
@@ -20,6 +21,10 @@
         /// 鍦烘櫙鍐呭鏄剧ず鍖哄煙
         /// </summary>
         FrameLayout floorChangeView;
+        /// <summary>
+        /// 妤煎眰鎴块棿閫夋嫨鐨勪笅鎷夊璞�
+        /// </summary>
+        FloorRoomSelectPopupView floorRoomSelectView = null;
         Button btnSceneTilte;
 
         #region 鍦烘櫙搴曢儴鍒囨崲鏄剧ず鍖哄煙
@@ -208,23 +213,40 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 Text = DB_ResidenceData.Instance.CurFloor.roomName,
             };
-            floorChangeView.AddChidren(btnFloor);
+            floorChangeView.AddChidren(btnFloor);
+
+            string nowSelectId = null;
+            btnFloor.MouseUpEventHandler += (sender, e) =>
+            {
+                if (this.floorRoomSelectView == null)
+                {
+                    //鍏堝垵濮嬪寲
+                    this.floorRoomSelectView = new FloorRoomSelectPopupView();
+                }
+                //鏄剧ず涓嬫媺鍒楄〃
+                this.floorRoomSelectView.ShowSceneView(btnFloor, (selectId, listScene) =>
+                {
+                    nowSelectId = selectId;
+                    //閲嶆柊鍒锋柊鍦烘櫙鍒楄〃
+                    this.LoadSceneFunctionControlZone(listScene);
+                }, nowSelectId);
+            };
 
             #endregion
-
+
             sceneFunctionView = new VerticalScrolViewLayout()
             {
                 Y = floorChangeView.Bottom,
                 Height = Application.GetRealHeight(667 - 64 - 49 - 52 + 30),
             };
             scenePageView.AddChidren(sceneFunctionView);
-            LoadSceneFunctionControlZone();
+            LoadSceneFunctionControlZone(null);
         }
 
         /// <summary>
         /// 鍔犺浇鍦烘櫙鍔熻兘鏄剧ず鍖哄煙
         /// </summary>
-        void LoadSceneFunctionControlZone()
+        void LoadSceneFunctionControlZone(List<Scene> listScene)
         {
             //topView.AddChidren(btnAddIcon);
 
@@ -233,7 +255,18 @@
             try
             {
                 int index = 0;
-                foreach (var scene in FunctionList.List.scenes)
+                //鑾峰彇鑳藉鏄剧ず鐨勫満鏅�
+                if (listScene == null)
+                {
+                    //鍒濆鍊�
+                    if (this.floorRoomSelectView == null)
+                    {
+                        //鍏堝垵濮嬪寲
+                        this.floorRoomSelectView = new FloorRoomSelectPopupView();
+                    }
+                    listScene = this.floorRoomSelectView.GetCanShowListScene();
+                }
+                foreach (var scene in listScene)
                 {
                     //if (scene.roomIds.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず
                     //{
@@ -380,7 +413,7 @@
                 LoadEvent_ControlScene(btnCoverd,btnName,btnZone, scene);
                 btnSettingIcon.MouseUpEventHandler = (sender, e) => {
                     Action backAction = () => {
-                        LoadSceneFunctionControlZone();
+                        LoadSceneFunctionControlZone(null);
                     };
                     Action refreshAction = () => {
                         btnName.Text = scene.name;
@@ -412,7 +445,7 @@
             contentPageView.AddChidren(automationPage);
             UI2.Intelligence.Automation.MainView.automationPage = automationPage;
             UI2.Intelligence.Automation.MainView.MainShow();
-        }
+        }
         #endregion
     }
 
@@ -505,7 +538,7 @@
 
                     Action action = () =>
                     {
-                        LoadSceneFunctionControlZone();
+                        LoadSceneFunctionControlZone(null);
                     };
                     var aep = new NewSceneMenuListPage(action);
                     MainPage.BasePageView.AddChidren(aep);
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs
index 3df6926..0ad5aaf 100755
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs
@@ -29,14 +29,6 @@
         /// 绛涢�夋枃鏈樉绀�
         /// </summary>
         Button btnScreenText;
-        /// <summary>
-        /// 绛涢�夋潯浠�1
-        /// </summary>
-        string screen1;
-        /// <summary>
-        /// 绛涢�夋潯浠�2
-        /// </summary>
-        string screen2;
 
         VerticalScrolViewLayout functionListView;
 
@@ -153,7 +145,7 @@
                 }
             }
 
-            LoadFunctionListRow();
+            LoadFunctionListRow(null);
 
             LoadEventList();
         }
@@ -162,12 +154,16 @@
         /// 鏄剧ず鍔熻兘Row
         /// </summary>
         /// <param name="showUnallocated">鏄惁鏄樉绀烘湭鍒嗛厤</param>
-        void LoadFunctionListRow()
+        void LoadFunctionListRow(List<Function> functions)
         {
             functionListView.RemoveAll();
-            List<Function> functions = new List<Function>();
-            functions.AddRange(unallocatedList);
-            functions.AddRange(allocatedList);
+            if (functions == null)
+            {
+                //鍒濆鍊�
+                functions = new List<Function>();
+                functions.AddRange(unallocatedList);
+                functions.AddRange(allocatedList);
+            }
             foreach (var function in functions)
             {
                 if (function.functionCategory != FunctionCategory.Light &&
@@ -176,22 +172,6 @@
                     )
                 {
                     continue;
-                }
-                //鎸夋ゼ灞傜瓫閫�
-                if (!string.IsNullOrEmpty(screen1))
-                {
-                    if (!function.roomIds.Contains(screen1))
-                    {
-                        continue;
-                    }
-                }
-                //鎸夌被鍨嬬瓫閫�
-                if (!string.IsNullOrEmpty(screen2))
-                {
-                    //if (!function.functionType!= screen2)
-                    //{
-                    //    continue;
-                    //}
                 }
                 functionListView.AddChidren(new Button()
                 {
@@ -319,135 +299,24 @@
         /// 浣忓畢鍒楄〃鐐瑰嚮浜嬩欢
         /// </summary>
         void LoadDialog_ChangeFloor()
-        {
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
-                var dialog = new Dialog();
-                var dialogBody = new FrameLayout();
-                dialog.AddChidren(dialogBody);
-                dialogBody.MouseUpEventHandler += (sender1, e1) => {
-                    dialog.Close();
-                };
-
-                var dispalyView = new FrameLayout()
-                {
-                    X = Application.GetRealWidth(10),
-                    Y = Application.GetRealHeight(100),
-                    Width = Application.GetRealWidth(160),
-                    Height = Application.GetRealHeight(110),
-                    BackgroundImagePath = "PersonalCenter/HomeList1bg.png",
-                };
-                dialogBody.AddChidren(dispalyView);
-
-                var contentView = new VerticalScrolViewLayout()
-                {
-                    X = Application.GetRealWidth(8),
-                    Y = Application.GetRealHeight(15),
-                    Width = Application.GetRealWidth(150),
-                    Height = Application.GetRealHeight(45 * 2),
-                    ScrollEnabled = false
-                };
-                dispalyView.AddChidren(contentView);
-
-                if (SpatialInfo.CurrentSpatial.FloorList.Count < 2)
-                {
-                }
-                else if (SpatialInfo.CurrentSpatial.FloorList.Count < 3)
-                {
-                    dispalyView = new FrameLayout()
-                    {
-                        X = Application.GetRealWidth(10),
-                        Y = Application.GetRealHeight(100),
-                        Width = Application.GetRealWidth(160),
-                        Height = Application.GetRealHeight(155),
-                        BackgroundImagePath = "PersonalCenter/HomeList2bg.png",
-                    };
-                    dialogBody.AddChidren(dispalyView);
-
-                    contentView.Height = Application.GetRealHeight(45 * 3);
-                    dispalyView.AddChidren(contentView);
-                }
-                else if (SpatialInfo.CurrentSpatial.FloorList.Count < 4)
-                {
-                    dispalyView = new FrameLayout()
-                    {
-                        X = Application.GetRealWidth(10),
-                        Y = Application.GetRealHeight(100),
-                        Width = Application.GetRealWidth(160),
-                        Height = Application.GetRealHeight(200),
-                        BackgroundImagePath = "PersonalCenter/HomeList3bg.png",
-                    };
-                    dialogBody.AddChidren(dispalyView);
-
-                    contentView.Height = Application.GetRealHeight(45 * 4);
-                    dispalyView.AddChidren(contentView);
-                }
-                else
-                {
-                    dispalyView = new FrameLayout()
-                    {
-                        X = Application.GetRealWidth(10),
-                        Y = Application.GetRealHeight(100),
-                        Width = Application.GetRealWidth(160),
-                        Height = Application.GetRealHeight(245),
-                        BackgroundImagePath = "PersonalCenter/HomeList4bg.png",
-                    };
-                    dialogBody.AddChidren(dispalyView);
-
-                    contentView.Height = Application.GetRealHeight(45 * 5);
-                    contentView.ScrollEnabled = true;
-                    dispalyView.AddChidren(contentView);
-                }
-
-
-                List<string> chooseList = new List<string>();
-                chooseList.Add(Language.StringByID(StringId.All));
-                foreach (var f in SpatialInfo.CurrentSpatial.FloorList)
-                {
-                    chooseList.Add(f.roomName);
-                }
-
-                foreach (var floor in chooseList)
-                {
-                    if (floor != Language.StringByID(StringId.All))
-                    {
-                        contentView.AddChidren(new Button()
-                        {
-                            Gravity = Gravity.CenterHorizontal,
-                            Width = Application.GetRealWidth(112),
-                            Height = Application.GetRealHeight(1),
-                            BackgroundColor = CSS.CSS_Color.BackgroundColor
-                        });
-                    }
-                    var btnHomeName = new Button()
-                    {
-                        Gravity = Gravity.CenterHorizontal,
-                        Width = Application.GetRealWidth(112),
-                        Height = Application.GetRealHeight(44),
-                        TextAlignment = TextAlignment.CenterLeft,
-                        TextColor = CSS.CSS_Color.FirstLevelTitleColor,
-                        SelectedTextColor = CSS.CSS_Color.MainColor,
-                        Text = floor,
-                        TextSize = CSS.CSS_FontSize.SubheadingFontSize,
-                        IsSelected = btnFloor.Text == floor,
-                        IsMoreLines = true,
-                        Tag = floor
-                    };
-                    contentView.AddChidren(btnHomeName);
-
-                    btnHomeName.MouseUpEventHandler += (senderH, en) =>
-                    {
-                        dialog.Close();
-                        btnFloor.Text = floor;
-                    };
-                }
-
-                dialog.Show();
+        {
+            string nowSelectId = null;
+            btnFloor.MouseUpEventHandler += (sender, e) =>
+            {
+                var listAllFun = new List<Function>();
+                listAllFun.AddRange(unallocatedList);
+                listAllFun.AddRange(allocatedList);
+
+                //鏄剧ず涓嬫媺鐣岄潰
+                var form = new FloorRoomSelectPopupView();
+                form.ShowDeviceFunctionView(btnFloor, listAllFun, (selectId, listFun) =>
+                {
+                    nowSelectId = selectId;
+                    //閲嶆柊鍒锋柊璁惧鍒楄〃
+                    this.LoadFunctionListRow(listFun);
+                }, nowSelectId);
             };
-
-            btnFloor.MouseUpEventHandler = eventHandler;
-            btnFloorDownIcon.MouseUpEventHandler = eventHandler;
         }
-
     }
 
     //---------------------------------------

--
Gitblit v1.8.0