From eda3fb873e59544ff36301b51e05aef64f87b0f9 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期五, 27 八月 2021 13:21:21 +0800 Subject: [PATCH] Merge branch 'newBranch1' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into newBranch1 --- HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs | 330 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 180 insertions(+), 150 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs index dea9002..e7454e3 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs @@ -4,11 +4,12 @@ using HDL_ON.Entity; using System.Collections.Generic; using HDL_ON.DAL; +using HDL_ON.DAL.Server; namespace HDL_ON.UI { /// <summary> - /// 浣跨敤鏉冮檺椤甸潰 + /// 鎴愬憳鏉冮檺绠$悊椤甸潰 /// </summary> public partial class MemberPermissionPage : FrameLayout { @@ -30,7 +31,7 @@ public void LoadPage() { bodyView.BackgroundColor = CSS_Color.BackgroundColor; - new TopViewDiv(bodyView, Language.StringByID(StringId.PermissionToUse)).LoadTopView(); + new TopViewDiv(bodyView, Language.StringByID(StringId.MemberPermissionManagement)).LoadTopView(); FrameLayout headPortraitView = new FrameLayout() { @@ -131,6 +132,7 @@ List<Function> allFunctionList = FunctionList.List.GetDeviceFunctionList(); //鏈垎閰嶅尯鍩熺殑鍔熻兘 List<Function> unallocatedList = new List<Function>(); + // foreach (var function in allFunctionList) { function.roomIds.Remove(null); @@ -144,134 +146,95 @@ } } - //绉婚櫎褰撳墠浣忓畢宸茬粡涓嶅瓨鍦ㄧ殑鍔熻兘 - for (int i = 0; i < memberInfo.CurResidenceShareDate.Count;) + //鎵�鏈夊満鏅� + List<Scene> allSceneList = FunctionList.List.scenes; + //鍏ㄥ眬鍦烘櫙鍦烘櫙 + List<Scene> globalSceneList = new List<Scene>(); + //鎵惧嚭鎵�鏈夌殑鍏ㄥ眬鍦烘櫙 + foreach (var mScene in allSceneList) { - var sd = memberInfo.CurResidenceShareDate[i]; - if (allFunctionList.Find((obj) => obj.deviceId == sd.shareTypeId) == null) + + //roomIds澶т簬0 浠h〃鍒嗛厤鍒版埧闂� + mScene.roomIds.Remove(null); + if (mScene.roomIds.Count > 0) { - //new DAL.Server.HttpServerRequest().DeleteShareData(sd); - //寰呯‘璁ゆ槸鍚﹀悓姝ヤ簯绔垹闄ゅ垎浜� - memberInfo.CurResidenceShareDate.Remove(sd); + //allocatedList.Add(function); } else { - i++; + globalSceneList.Add(mScene); } } - foreach (var room in SpatialInfo.CurrentSpatial.RoomList) + ////绉婚櫎褰撳墠浣忓畢宸茬粡涓嶅瓨鍦ㄧ殑鍔熻兘 + //for (int i = 0; i < memberInfo.CurResidenceShareData.Count;) + //{ + // var sd = memberInfo.CurResidenceShareData[i]; + // if (allFunctionList.Find((obj) => obj.deviceId == sd.shareTypeId) == null) + // { + // //new DAL.Server.HttpServerRequest().DeleteShareData(sd); + // //寰呯‘璁ゆ槸鍚﹀悓姝ヤ簯绔垹闄ゅ垎浜� + // memberInfo.CurResidenceShareData.Remove(sd); + // } + // else + // { + // i++; + // } + //} + + try { - var roomView = new RowLayout() + //閬嶅巻鍔犺浇鎴块棿鍒嗕韩涓暟缁熻鐘舵�丷owLayout + foreach (var room in SpatialInfo.CurrentSpatial.RoomList) { - Height = Application.GetRealWidth(50), - BackgroundColor = CSS_Color.MainBackgroundColor, - LineColor = CSS_Color.MainBackgroundColor, - }; - roomListView.AddChidren(roomView); - - var btnRoomName = new Button() - { - X = Application.GetRealWidth(16), - Y = Application.GetRealWidth(4), - Width = Application.GetRealWidth(330), - Height = Application.GetRealWidth(24), - TextAlignment = TextAlignment.CenterLeft, - TextColor = CSS_Color.FirstLevelTitleColor, - TextSize = CSS_FontSize.TextFontSize, - Text = room.roomName, - }; - roomView.AddChidren(btnRoomName); - - //璁$畻宸茬粡鍔犲叆鎴块棿鐨勮澶囨暟閲� - int addCount = 0; - foreach (var sd in memberInfo.CurResidenceShareDate) - { - if (room.GetRoomFunctions(false).Find((obj) => obj.deviceId == sd.shareTypeId) != null) - { - addCount++; - } + AddRoomFunctionRowLayout(room); } - ////绉婚櫎褰撳墠浣忓畢宸茬粡涓嶅瓨鍦ㄧ殑鍔熻兘 - //for (int i = 0; i < memberInfo.CurResidenceShareDate.Count;) - //{ - // var sd = memberInfo.CurResidenceShareDate[i]; - // if (allFunctionList.Find((obj) => obj.deviceId == sd.shareTypeId) == null) - // { - // //new DAL.Server.HttpServerRequest().DeleteShareData(sd); - // memberInfo.CurResidenceShareDate.Remove(sd); - // } - // else - // { - // i++; - // } - //} - - var btnFunctionCount = new Button() - { - X = Application.GetRealWidth(16), - Y = btnRoomName.Bottom, - Width = Application.GetRealWidth(330), - Height = Application.GetRealWidth(18), - TextAlignment = TextAlignment.CenterLeft, - TextColor = CSS_Color.PromptingColor1, - TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, - Text = addCount + "/" + room.GetRoomFunctions(false).Count.ToString(), - }; - roomView.AddChidren(btnFunctionCount); - - var btnRight = new Button() - { - X = Application.GetRealWidth(351), - Gravity = Gravity.CenterVertical, - Width = Application.GetMinRealAverage(16), - Height = Application.GetMinRealAverage(16), - UnSelectedImagePath = "Public/Right.png", - }; - roomView.AddChidren(btnRight); - //鍒嗗壊绾� - var lineView = new LineView(roomView.Height - Application.GetRealHeight(1)); - roomView.AddChidren(lineView); - //鍒犻櫎鎸夐挳 - var deleteBtn = new Button() - { - TextID = StringId.Del, - BackgroundColor = CSS_Color.AuxiliaryColor2, - TextColor = CSS_Color.MainBackgroundColor, - TextSize = CSS_FontSize.TextFontSize, - }; - roomView.AddRightView(deleteBtn); - deleteBtn.MouseUpEventHandler = (sender, e) => - { - //鍒犻櫎浜嬩欢 - }; - - EventHandler<MouseEventArgs> eHandler = (sender, e) => - { - Action<string> refreshFunctionCount = (newCount) => { - btnFunctionCount.Text = newCount + "/" + room.GetRoomFunctions(false).Count.ToString(); - }; - var mmp = new MemberFunctionPermissionPage(memberInfo, room, refreshFunctionCount); - MainPage.BasePageView.AddChidren(mmp); - mmp.LoadPage(StringId.PermissionToUse); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; - roomView.MouseUpEventHandler = eHandler; - btnRoomName.MouseUpEventHandler = eHandler; - btnRight.MouseUpEventHandler = eHandler; - btnFunctionCount.MouseUpEventHandler = eHandler; + //2020-12-16 鍔犺浇鏈垎閰嶅尯鍩熷姛鑳絉owLayout + AddNoAreaFunctionRowLayout(unallocatedList, globalSceneList); } - - //2020-12-16 鍔犺浇鏈垎閰嶅尯鍩熷姛鑳� - AddNoAreaFunction(unallocatedList); + catch + { + Utlis.WriteLine("AddRoomFunctionRowLayout error"); + } } /// <summary> - /// 娣诲姞鏈垎閰嶅尯鍩熷姛鑳� + /// 娣诲姞鎴块棿鍒嗕韩涓暟缁熻鐘舵�佺殑RowLayout /// </summary> - /// <param name="unallocatedList"></param> - void AddNoAreaFunction(List<Function> unallocatedList) + /// <param name="mRoom"></param> + void AddRoomFunctionRowLayout(Room mRoom) { + ShowBaseRoomFunOrNoAreaFunRowLayout(mRoom, null, null); + } + + /// <summary> + /// + /// </summary> + /// <param name="unallocatedList">鏈垎閰嶇殑鎵�鏈夊姛鑳藉垪琛�</param> + /// <param name="globalSceneList">鍏ㄥ尯鍩熺殑鍦烘櫙</param> + void AddNoAreaFunctionRowLayout(List<Function> unallocatedList, List<Scene> globalSceneList) + { + ShowBaseRoomFunOrNoAreaFunRowLayout(null, unallocatedList, globalSceneList); + } + + /// <summary> + /// 2020-12-17 閲嶆柊璋冩暣 + /// 娣诲姞鎴块棿鍒嗕韩鎴栬�呮棤鍖哄煙鍒嗛厤 涓暟缁熻鐘舵�佺殑RowLayout + /// </summary> + /// <param name="room">濡傛灉鎴块棿涓虹┖锛屼唬琛ㄧ鐞嗘棤鍒嗛厤鍖哄煙</param> + /// <param name="unallocatedList">绠$悊鏃犲垎閰嶅尯鍩熸墠鏈夋晥</param> + /// <param name="globalSceneList">鍏ㄥ眬鍦烘櫙</param> + void ShowBaseRoomFunOrNoAreaFunRowLayout(Room mRoom, List<Function> unallocatedList, List<Scene> globalSceneList) + { + /// 褰撳墠鎴块棿鎴栬�呮棤鍒嗛厤鍖哄煙鍒嗕韩鍒楄〃 + List<ShareData> funs_RoomAll = new List<ShareData>(); + + /// 鎴块棿鎵�鏈夊姛鑳藉拰鑰呭満鏅垪琛� + List<RoomData> roomFunctionOrSceneList = new List<RoomData>(); + + /// 鎴块棿ID + string roomId = ""; + var roomView = new RowLayout() { Height = Application.GetRealWidth(50), @@ -289,33 +252,11 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, - TextID = StringId.NoAreaFunction + //Text = room.roomName, }; roomView.AddChidren(btnRoomName); - //璁$畻宸茬粡鍔犲叆鎴块棿鐨勮澶囨暟閲� - int addCount = 0; - foreach (var sd in memberInfo.CurResidenceShareDate) - { - if (unallocatedList.Find((obj) => obj.deviceId == sd.shareTypeId) != null) - { - addCount++; - } - } - ////绉婚櫎褰撳墠浣忓畢宸茬粡涓嶅瓨鍦ㄧ殑鍔熻兘 - //for (int i = 0; i < memberInfo.CurResidenceShareDate.Count;) - //{ - // var sd = memberInfo.CurResidenceShareDate[i]; - // if (allFunctionList.Find((obj) => obj.deviceId == sd.shareTypeId) == null) - // { - // //new DAL.Server.HttpServerRequest().DeleteShareData(sd); - // memberInfo.CurResidenceShareDate.Remove(sd); - // } - // else - // { - // i++; - // } - //} + var btnFunctionCount = new Button() { @@ -326,7 +267,7 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, - Text = addCount + "/" + unallocatedList.Count.ToString(), + //Text = addCount + "/" + room.GetRoomFunctions(false).Count.ToString(), }; roomView.AddChidren(btnFunctionCount); @@ -339,9 +280,82 @@ UnSelectedImagePath = "Public/Right.png", }; roomView.AddChidren(btnRight); - ////鍒嗗壊绾� - //var lineView = new LineView(roomView.Height - Application.GetRealHeight(1)); - //roomView.AddChidren(lineView); + + //濡傛灉鎴块棿涓虹┖锛屼唬琛ㄧ鐞嗘棤鍒嗛厤鍖哄煙 + if (mRoom != null) + { + //鏄剧ず鎴块棿鍚� + btnRoomName.Text = mRoom.roomName; + var mRoomFunctionList = mRoom.GetRoomFunctions(false); + var mRoomSceneList = mRoom.GetRoomScenes(true); + //閬嶅巻鎵�鏈夊姛鑳藉垪琛� + if (mRoomFunctionList != null) + { + foreach (var fun in mRoomFunctionList) + { + roomFunctionOrSceneList.Add(new RoomData() + { + shareTypeId = fun.deviceId, + shareType = ShareType.DEVICE.ToString(), + name = fun.name, + }); + } + } + + //閬嶅巻鎵�鏈夊満鏅垪琛� + if (mRoomSceneList != null) + { + foreach (var roomScene in mRoomSceneList) + { + roomFunctionOrSceneList.Add(new RoomData() + { + shareTypeId = roomScene.userSceneId, + shareType = ShareType.SCENE.ToString(), + name = roomScene.name, + }); + } + } + + roomId = mRoom.roomId; + //娣诲姞鍒嗗壊绾� + var lineView = new LineView(roomView.Height - Application.GetRealHeight(1)); + roomView.AddChidren(lineView); + } + else + { + //鏄剧ず鏃犲尯鍩熷姛鑳� + btnRoomName.TextID = StringId.NoAreaFunction; + roomId = null; + + //閬嶅巻鎵�鏈夊姛鑳藉垪琛� + if (unallocatedList != null) + { + foreach (var fun in unallocatedList) + { + roomFunctionOrSceneList.Add(new RoomData() + { + shareTypeId = fun.deviceId, + shareType = ShareType.DEVICE.ToString(), + name = fun.name, + }); + } + } + + //閬嶅巻鎵�鏈夊満鏅垪琛� + if (globalSceneList != null) + { + foreach (var roomScene in globalSceneList) + { + roomFunctionOrSceneList.Add(new RoomData() + { + shareTypeId = roomScene.userSceneId, + shareType = ShareType.SCENE.ToString(), + name = roomScene.name, + }); + } + } + } + //鍒犻櫎鎸夐挳 var deleteBtn = new Button() { @@ -353,25 +367,41 @@ roomView.AddRightView(deleteBtn); deleteBtn.MouseUpEventHandler = (sender, e) => { - //鍒犻櫎浜嬩欢 + //涓�閿垹闄ゆ墍鏈夊垎浜� + DeleteRoomAllShare(funs_RoomAll, roomFunctionOrSceneList, roomId, btnFunctionCount, roomView); }; + //璁$畻宸茬粡鍔犲叆鎴块棿鐨勮澶囨暟閲忕殑Action浜嬩欢 + Action RefreshAction = () => { + funs_RoomAll = new List<ShareData>(); + int addCount = 0; + foreach (var sd in memberInfo.CurResidenceShareData) + { + if (roomFunctionOrSceneList.Find((obj) => obj.shareTypeId == sd.shareTypeId) != null) + { + addCount++; + funs_RoomAll.Add(sd); + } + } + btnFunctionCount.Text = addCount + "/" + roomFunctionOrSceneList.Count.ToString(); + //Utlis.WriteLine("鍒锋柊鎴愬姛"); + }; + //鐐瑰嚮璋冩暣浜嬩欢 EventHandler<MouseEventArgs> eHandler = (sender, e) => { - Action<string> refreshFunctionCount = (newCount) => { - btnFunctionCount.Text = newCount + "/" + unallocatedList.Count.ToString(); - }; - //var mmp = new MemberFunctionPermissionPage(memberInfo, room, refreshFunctionCount); - //MainPage.BasePageView.AddChidren(mmp); - //mmp.LoadPage(StringId.PermissionToUse); - //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + var mmp = new MemberFunctionPermissionPage(memberInfo, roomFunctionOrSceneList, funs_RoomAll, roomId, RefreshAction); + MainPage.BasePageView.AddChidren(mmp); + mmp.LoadPage(StringId.MemberPermissionManagement); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; roomView.MouseUpEventHandler = eHandler; btnRoomName.MouseUpEventHandler = eHandler; btnRight.MouseUpEventHandler = eHandler; btnFunctionCount.MouseUpEventHandler = eHandler; - + RefreshAction?.Invoke(); } + + } } -- Gitblit v1.8.0