wxr
2020-06-15 b8e94316e41eba72d927d5ca7d931b26139ee8ff
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs
@@ -8,18 +8,24 @@
namespace HDL_ON.UI
{
    public class MemberFunctionPermissionPage : FrameLayout
    public partial class MemberFunctionPermissionPage : FrameLayout
    {
        MemberFunctionPermissionPage bodyView;
        FrameLayout allRoomView;
        /// <summary>
        /// 全选按钮
        /// </summary>
        Button btnChooseAll;
        /// <summary>
        /// 功能显示区域
        /// </summary>
        VerticalScrolViewLayout contentView;
        ResidenceMemberInfo memberInfo;
        Room room;
        List<Function> funs;
        public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, Room r)
        {
@@ -33,11 +39,12 @@
                    CommonPage.MyEncodingUTF8.GetString(memberInfo.CurShareData.ShareDataBytes));
            }
        }
        public void LoadPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.PermissionToUse)).LoadTopView();
            var allRoomView = new FrameLayout()
            allRoomView = new FrameLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(50),
@@ -77,13 +84,46 @@
                BackgroundColor = CSS_Color.DividingLineColor,
            });
            var contentView = new VerticalScrolViewLayout()
            contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(64+50),
                Height = Application.GetRealHeight(450),
            };
            bodyView.AddChidren(contentView);
            var btnOption = new Button()
            {
                Y = Application.GetRealHeight(519+64),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(220),
                Height = Application.GetRealHeight(44),
                BackgroundColor = CSS_Color.MainColor,
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.MainBackgroundColor,
                TextID = StringId.Confirm,
                TextSize = CSS_FontSize.SubheadingFontSize,
                IsBold = true,
                Radius = (uint) Application.GetRealWidth(22),
                BorderColor = 0x00000000,
                BorderWidth = 0,
            };
            bodyView.AddChidren(btnOption);
            btnOption.MouseUpEventHandler = (sender, e) => {
                var act = TipLoadingMsg(Language.StringByID(StringId.SavingPleaseWait));
                memberInfo.CurShareData.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs));
                EditShareData();
                act();
            };
            LoadFunctionRow();
            LoadEventList();
        }
        /// <summary>
        /// 加载功能列表
        /// </summary>
        void LoadFunctionRow()
        {
            contentView.RemoveAll();
            foreach (var function in room.functions)
            {
                var roomView = new FrameLayout()
@@ -116,7 +156,7 @@
                    Tag = "ChooseIcon"
                };
                roomView.AddChidren(btnChoose);
                if (funs.Find((obj)=>obj.sid == function.sid) != null)
                if (funs.Find((obj) => obj.sid == function.sid) != null)
                {
                    btnChoose.IsSelected = true;
                    funs.Add(function);
@@ -126,30 +166,7 @@
                    if (btnChooseAll.IsSelected)
                        btnChooseAll.IsSelected = false;
                }
                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
                {
                    btnChoose.IsSelected = !btnChoose.IsSelected;
                    if (btnChoose.IsSelected)
                    {
                        try
                        {
                            funs.Add(function);
                        }
                        catch (Exception ex)
                        {
                            MainPage.Log($"Evhaaa {ex.Message}");
                        }
                    }
                    else
                    {
                        funs.Remove(function);
                    }
                };
                btnChoose.MouseUpEventHandler = eventHandler;
                btnRoomText.MouseUpEventHandler = eventHandler;
                roomView.MouseUpEventHandler = eventHandler;
                LoadEvent_SharedDataChange(btnChoose, btnRoomText, roomView, function);
                var btnLine = new Button()
                {
@@ -160,57 +177,6 @@
                    BackgroundColor = CSS_Color.DividingLineColor,
                };
                roomView.AddChidren(btnLine);
            }
            var btnOption = new Button()
            {
                Y = Application.GetRealHeight(519+64),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(220),
                Height = Application.GetRealHeight(44),
                BackgroundColor = CSS_Color.MainColor,
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.MainBackgroundColor,
                TextID = StringId.Confirm,
                TextSize = CSS_FontSize.SubheadingFontSize,
                IsBold = true,
                Radius = (uint) Application.GetRealWidth(22),
                BorderColor = 0x00000000,
                BorderWidth = 0,
            };
            bodyView.AddChidren(btnOption);
            btnOption.MouseUpEventHandler = (sender, e) => {
                var act = TipLoadingMsg(Language.StringByID(StringId.SavingPleaseWait));
                memberInfo.CurShareData.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs));
                EditShareData();
                act();
            };
        }
        void EditShareData()
        {
            if (memberInfo.CurShareData.ShareName == "")
            {
                var ssdd = new ShareData();
                ssdd.ShareName = DB_ResidenceData.residenceData.residecenInfo.RegionID;
                ssdd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID;
                ssdd.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs));
                ssdd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark;
                ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd);
                if (responePack.StateCode.ToUpper() != "SUCCESS")
                {
                    new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed), true);
                    return;
                }
                else
                {
                    ssdd.DistributedMark = responePack.ResponseData.ToString();
                }
                memberInfo.CurShareData = ssdd;
            }
            else
            {
                UpdataShareData();
            }
        }