| | |
| | | |
| | | 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; |
| | | /// <summary> |
| | | /// 底部操作按钮 |
| | | /// </summary> |
| | | Button btnOption; |
| | | /// <summary> |
| | | /// 页面标题ID |
| | | /// </summary> |
| | | int titleId; |
| | | |
| | | ResidenceMemberInfo memberInfo; |
| | | |
| | | Room room; |
| | | |
| | | List<Function> funs; |
| | | Action<string> refreshFunctionCount; |
| | | |
| | | List<ShareData> funs; |
| | | List<ShareData> funs_New; |
| | | List<ShareData> funs_Del; |
| | | |
| | | public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, Room r) |
| | | public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, Room r, Action<string> action) |
| | | { |
| | | bodyView = this; |
| | | memberInfo = mInfo; |
| | | room = r; |
| | | funs = new List<Function>(); |
| | | if (memberInfo.CurShareData.ShareDataBytes != null) |
| | | { |
| | | funs = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>( |
| | | CommonPage.MyEncodingUTF8.GetString(memberInfo.CurShareData.ShareDataBytes)); |
| | | } |
| | | } |
| | | public void LoadPage() |
| | | { |
| | | new TopViewDiv(bodyView, Language.StringByID(StringId.PermissionToUse)).LoadTopView(); |
| | | funs = new List<ShareData>(); |
| | | funs = memberInfo.CurResidenceShareDate; |
| | | funs_New = new List<ShareData>(); |
| | | funs_Del = new List<ShareData>(); |
| | | |
| | | var allRoomView = new FrameLayout() |
| | | 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(); |
| | | } |
| | | |
| | | public void LoadPage(int tId) |
| | | { |
| | | titleId = tId; |
| | | new TopViewDiv(bodyView, Language.StringByID(titleId)).LoadTopView(); |
| | | |
| | | allRoomView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(50), |
| | |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(280), |
| | | TextID = StringId.All, |
| | | TextID = StringId.SelectedAll, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }); |
| | | |
| | | var contentView = new VerticalScrolViewLayout() |
| | | contentView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = Application.GetRealHeight(64+50), |
| | | Height = Application.GetRealHeight(450), |
| | | }; |
| | | bodyView.AddChidren(contentView); |
| | | |
| | | foreach (var function in room.functions) |
| | | 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 = titleId == StringId.PermissionToUse ? StringId.Confirm : StringId.Shared, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | IsBold = true, |
| | | Radius = (uint)Application.GetRealWidth(22), |
| | | BorderColor = 0x00000000, |
| | | BorderWidth = 0, |
| | | }; |
| | | bodyView.AddChidren(btnOption); |
| | | |
| | | if(titleId == StringId.PermissionToUse) |
| | | { |
| | | LoadFunctionRow(funs); |
| | | } |
| | | else |
| | | { |
| | | LoadFunctionRow(funs_New); |
| | | } |
| | | LoadEventList(); |
| | | } |
| | | /// <summary> |
| | | /// 加载功能列表 |
| | | /// </summary> |
| | | void LoadFunctionRow(List<ShareData> shareDatas) |
| | | { |
| | | contentView.RemoveAll(); |
| | | foreach (var function in room.GetRoomFunctions(false)) |
| | | { |
| | | var roomView = new FrameLayout() |
| | | { |
| | |
| | | Tag = "ChooseIcon" |
| | | }; |
| | | roomView.AddChidren(btnChoose); |
| | | if (funs.Find((obj)=>obj.sid == function.sid) != null) |
| | | if (shareDatas.Find((obj) => obj.ShareName == function.sid) != null) |
| | | { |
| | | btnChoose.IsSelected = true; |
| | | funs.Add(function); |
| | | } |
| | | else |
| | | { |
| | | 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; |
| | | LoadMethod_SharedDataChange(btnChoose, btnRoomText, roomView, function); |
| | | |
| | | var btnLine = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(49), |
| | | Height = Application.GetMinReal(1), |
| | | //Y = Application.GetRealHeight(49), |
| | | Height = Application.GetRealHeight(1), |
| | | Width = Application.GetRealWidth(343), |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }; |
| | | roomView.AddChidren(btnLine); |
| | | contentView.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(); |
| | | } |
| | | } |
| | | |
| | | void UpdataShareData() |
| | | { |
| | | ResponsePack responePack = new HttpServerRequest().EditShareData(memberInfo.CurShareData); |
| | | if (responePack.StateCode.ToUpper() == "SUCCESS") |
| | | { |
| | | new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.SavedSuccessfully), true); |
| | | } |
| | | else |
| | | { |
| | | new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed), true); |
| | | } |
| | | } |
| | | |
| | | Action TipLoadingMsg(string msg) |
| | | { |
| | | Dialog dialog = new Dialog() |
| | | { |
| | | X = Application.GetRealWidth(89), |
| | | Y = Application.GetRealHeight(285), |
| | | Width = Application.GetRealWidth(198), |
| | | Height = Application.GetRealHeight(98), |
| | | }; |
| | | |
| | | FrameLayout frame = new FrameLayout() |
| | | { |
| | | BackgroundColor = CSS_Color.DialogTransparentColor1, |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | }; |
| | | dialog.AddChidren(frame); |
| | | |
| | | Button btnTipIcon = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(15), |
| | | Width = Application.GetRealWidth(32), |
| | | Height = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "Public/MsgIcon/LoadingIcon.png", |
| | | }; |
| | | frame.AddChidren(btnTipIcon); |
| | | |
| | | Button btnTipMsg = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(47), |
| | | Height = Application.GetRealHeight(50), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | Text = msg, |
| | | }; |
| | | frame.AddChidren(btnTipMsg); |
| | | |
| | | //new System.Threading.Thread(() =>{ |
| | | //}); |
| | | |
| | | dialog.Show(); |
| | | return new Action(() => { |
| | | dialog.Close(); |
| | | }); |
| | | } |
| | | |
| | | } |