wxr
2021-07-01 43b0d5870d528f23ecd6aeceb6cfd4325188b46f
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs
@@ -31,35 +31,54 @@
        ResidenceMemberInfo memberInfo;
        Room room;
        /// <summary>
        /// 当前的房间roomId
        /// 如果为空,则代表管理无分配区域的功能分享
        /// </summary>
        string roomId;
        /// <summary>
        /// 房间所有功能和场景列表
        /// </summary>
        List<RoomData> roomFunctionOrSceneList = new List<RoomData>();
        Action<string> refreshFunctionCount;
        List<ShareData> funs;
        List<ShareData> funs_New;
        /// <summary>
        /// 刷新回调Action
        /// </summary>
        Action refreshAction;
        /// <summary>
        /// 当前账号的所有分享列表
        /// </summary>
        List<ShareData> curResidenceShareData;
        /// <summary>
        /// 属于当前房间最终的设备分享列表
        /// </summary>
        List<ShareData> funs_RoomAll;
        //shareDataList = new List<ShareData>();
        /// <summary>
        /// 删除的分享列表
        /// </summary>
        List<ShareData> funs_Del;
        public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, Room r, Action<string> action)
        /// <summary>
        ///
        /// </summary>
        /// <param name="mInfo"></param>
        /// <param name="roomFunctionOrSceneList">房间所有功能和场景列表</param>
        /// <param name="roomId"></param>
        /// <param name="refreshAction"></param>
        public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, List<RoomData> roomFunctionOrSceneList, List<ShareData> funs_RoomAll, string roomId, Action refreshAction)
        {
            bodyView = this;
            memberInfo = mInfo;
            room = r;
            funs = new List<ShareData>();
            funs = memberInfo.CurResidenceShareDate;
            funs_New = new List<ShareData>();
            funs_Del = new List<ShareData>();
            refreshFunctionCount = action;
        }
        public MemberFunctionPermissionPage(Room r,List<ShareData> sd)
        {
            bodyView = this;
            room = r;
            funs = new List<ShareData>();
            funs_New = sd;
            funs_Del = new List<ShareData>();
            memberInfo = new ResidenceMemberInfo();
            this.memberInfo = mInfo;
            this.roomFunctionOrSceneList = roomFunctionOrSceneList;
            this.roomId = roomId;
            //this.curResidenceShareData = new List<ShareData>();
            this.curResidenceShareData = memberInfo.CurResidenceShareData;
            this.funs_RoomAll = new List<ShareData>();
            this.funs_RoomAll.AddRange(funs_RoomAll);
            this.funs_Del = new List<ShareData>();
            this.refreshAction = refreshAction;
        }
        public void LoadPage(int tId)
@@ -119,11 +138,11 @@
                Y = Application.GetRealHeight(519 + 64),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(220),
                Height = Application.GetRealHeight(44),
                Height = Application.GetRealWidth(44),
                BackgroundColor = CSS_Color.MainColor,
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.MainBackgroundColor,
                TextID = titleId == StringId.PermissionToUse ? StringId.Confirm : StringId.Shared,
                TextID = titleId == StringId.MemberPermissionManagement ? StringId.Confirm : StringId.Shared,
                TextSize = CSS_FontSize.SubheadingFontSize,
                IsBold = true,
                Radius = (uint)Application.GetRealWidth(22),
@@ -132,23 +151,17 @@
            };
            bodyView.AddChidren(btnOption);
            if(titleId == StringId.PermissionToUse)
            {
                LoadFunctionRow(funs);
            }
            else
            {
                LoadFunctionRow(funs_New);
            }
            LoadFunctionRow(funs_RoomAll);
            LoadEventList();
        }
        /// <summary>
        /// 加载功能列表
        /// </summary>
        void LoadFunctionRow(List<ShareData>  shareDatas)
        void LoadFunctionRow(List<ShareData> shareDatas)
        {
            contentView.RemoveAll();
            foreach (var function in room.GetRoomFunctions(false))
            foreach (var roomData in roomFunctionOrSceneList)
            {
                var roomView = new FrameLayout()
                {
@@ -165,7 +178,7 @@
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextAlignment = TextAlignment.CenterLeft,
                    Text = function.name,
                    Text = roomData.name,
                };
                roomView.AddChidren(btnRoomText);
@@ -180,16 +193,20 @@
                    Tag = "ChooseIcon"
                };
                roomView.AddChidren(btnChoose);
                if (shareDatas.Find((obj) => obj.fileName == function.sid) != null)
                var shareData = shareDatas.Find((obj) => obj.shareTypeId == roomData.shareTypeId);
                if (shareData != null)
                {
                    btnChoose.IsSelected = true;
                    //刷新属于当前房间的分享统计
                    //funs_New.Add(shareData);
                }
                else
                {
                    if (btnChooseAll.IsSelected)
                        btnChooseAll.IsSelected = false;
                }
                LoadMethod_SharedDataChange(btnChoose, btnRoomText, roomView, function);
                LoadMethod_SharedDataChange(btnChoose, btnRoomText, roomView, roomData);
                var btnLine = new Button()
                {
@@ -201,7 +218,28 @@
                };
                contentView.AddChidren(btnLine);
            }
        }
    }
    /// <summary>
    /// 房间所有功能和者场景列表
    /// </summary>
    public class RoomData
    {
        /// <summary>
        /// 设备名字或者场景名字
        /// </summary>
        public string shareTypeId;
        /// <summary>
        /// 设备名字或者场景名字
        /// </summary>
        public string name;
        /// <summary>
        /// 分享类型 1.ROOM  2.DEVICE 3.SCENE
        /// </summary>
        public string shareType = ShareType.DEVICE.ToString();
    }
}