From efcffde735fa65ae34bae0bcc86313b74ed0e36c Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 20 五月 2024 13:47:38 +0800 Subject: [PATCH] 优化离线数据 --- HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs | 409 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 395 insertions(+), 14 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs index 80b04df..b79d50f 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs @@ -1,4 +1,6 @@ 锘縰sing System; +using System.Threading; +using HDL_ON.DAL.Server; using HDL_ON.UI.CSS; using Shared; @@ -14,6 +16,11 @@ Button btnAddMember; Button btnScan; EditText etMemberAccount; + EditText etMemberName; + /// <summary> + /// 浜鸿劯鐓х墖鏁版嵁 + /// </summary> + string base64string; Action backAction; @@ -27,17 +34,56 @@ public void LoadPage() { bodyView.BackgroundColor = CSS_Color.MainBackgroundColor; - new TopViewDiv(bodyView, Language.StringByID(StringId.AddMember)).LoadTopView(); + var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.AddMember)); + topView.maginY = 10; + topView.LoadTopView(); - var btnTitle = new Button() + var btnMemberName = new Button() { - Y = Application.GetRealHeight(70), + Y = Application.GetRealHeight(70+10), X = Application.GetRealWidth(16), Height = Application.GetRealHeight(32), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.CenterLeft, - TextID = StringId.NewMemberAccount, + TextID = StringId.MemberName, + }; + bodyView.AddChidren(btnMemberName); + + etMemberName = new EditText() + { + Y = btnMemberName.Bottom, + X = Application.GetRealWidth(16), + Width = Application.GetRealWidth(356), + Height = Application.GetRealHeight(40), + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextAlignment = TextAlignment.CenterLeft, + PlaceholderText = Language.StringByID(StringId.PleaseEnterContent), + PlaceholderTextColor = CSS_Color.PromptingColor2 + }; + bodyView.AddChidren(etMemberName); + + var btnLine = new Button() + { + Y = etMemberName.Bottom, + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(1), + BackgroundColor = CSS_Color.DividingLineColor, + }; + bodyView.AddChidren(btnLine); + + + var btnTitle = new Button() + { + Y = btnLine.Bottom + Application.GetRealHeight(20), + X = Application.GetRealWidth(16), + Height = Application.GetRealHeight(32), + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + TextAlignment = TextAlignment.CenterLeft, + TextID = StringId.MemberAccount, }; bodyView.AddChidren(btnTitle); @@ -55,7 +101,7 @@ }; bodyView.AddChidren(etMemberAccount); - var btnLine = new Button() + var btnLine1 = new Button() { Y = etMemberAccount.Bottom, Gravity = Gravity.CenterHorizontal, @@ -63,12 +109,200 @@ Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor, }; - bodyView.AddChidren(btnLine); + bodyView.AddChidren(btnLine1); + + int btnAddmemberY = 30; + if (Entity.DB_ResidenceData.Instance.SupportFacePass) + { + btnAddmemberY = 203; + #region 浜鸿劯绠$悊 + var btnMemberFaceTitle = new Button() + { + Y = btnLine1.Bottom + Application.GetRealHeight(20), + X = Application.GetRealWidth(16), + Height = Application.GetRealHeight(32), + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + TextAlignment = TextAlignment.CenterLeft, + TextID = StringId.MemberFace, + }; + bodyView.AddChidren(btnMemberFaceTitle); + + var btnAddFace = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = btnMemberFaceTitle.Bottom, + Width = Application.GetRealWidth(120), + Height = Application.GetRealWidth(120), + Radius = (uint)Application.GetRealWidth(22), + BorderWidth = 0, + UnSelectedImagePath = "PersonalCenter/FacePassage/FaceIcon.png", + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.SubheadingFontSize, + IsBold = true, + TextAlignment = TextAlignment.Center, + }; + bodyView.AddChidren(btnAddFace); + + + EventHandler<MouseEventArgs> eFaceHandler = (sender, e) => + { + Application.HideSoftInput(); + if (OnAppConfig.Instance.FaceManagementTip) + { + OnAppConfig.Instance.FaceManagementTip = true; + OnAppConfig.Instance.SaveConfig(); + LoadPictureOptionView(btnAddFace); + return; + } + + Dialog dialog = new Dialog() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, + }; + + FrameLayout contentView = new FrameLayout() + { + Gravity = Gravity.Center, + Width = Application.GetRealWidth(270), + Height = Application.GetRealHeight(192), + BackgroundColor = CSS.CSS_Color.MainBackgroundColor, + BorderColor = 0x00000000, + BorderWidth = 0, + Radius = (uint)Application.GetMinRealAverage(10), + }; + dialog.AddChidren(contentView); + + Button btnTitle2 = new Button() + { + Y = Application.GetRealHeight(16), + Height = Application.GetRealHeight(30), + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextAlignment = TextAlignment.Center, + IsBold = true, + TextID = StringId.FaceProtocolPrompt, + }; + contentView.AddChidren(btnTitle2); + + Button btnMsg = new Button() + { + Gravity = Gravity.CenterHorizontal, + Height = Application.GetRealHeight(35), + Y = btnTitle2.Bottom, + Width = Application.GetRealHeight(200), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.FaceProTipText1, + IsMoreLines = true, + }; + contentView.AddChidren(btnMsg); + + Button btnMsg1 = new Button() + { + Gravity = Gravity.CenterHorizontal, + Height = Application.GetRealHeight(15), + Y = btnMsg.Bottom, + Width = Application.GetRealHeight(200), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.FaceProTipText2, + IsMoreLines = true, + }; + + contentView.AddChidren(btnMsg1); + + Button btnMsg2 = new Button() + { + Gravity = Gravity.CenterHorizontal, + Height = Application.GetRealHeight(35), + Y = btnMsg1.Bottom, + Width = Application.GetRealHeight(200), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.FaceProTipText3, + IsMoreLines = true, + }; + contentView.AddChidren(btnMsg2); + + Button btnLine2 = new Button() + { + Y = Application.GetRealHeight(149), + Height = Application.GetRealHeight(1), + Width = Application.GetRealWidth(270 / 2), + BackgroundColor = CSS.CSS_Color.DividingLineColor, + }; + contentView.AddChidren(btnLine2); + + Button btnCancel = new Button() + { + Y = btnLine2.Bottom, + Width = Application.GetRealWidth(135), + Height = Application.GetRealHeight(43), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.SubheadingFontSize, + //SelectedTextColor = CSS_Color.MainBackgroundColor, + //SelectedBackgroundColor = CSS_Color.MainColor, + TextID = StringId.Disagree, + }; + contentView.AddChidren(btnCancel); + + Button btnConfirm = new Button() + { + X = btnCancel.Right, + Y = btnLine2.Y, + Width = Application.GetRealWidth(135), + Height = Application.GetRealHeight(45), + TextAlignment = TextAlignment.Center, + //TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.MainBackgroundColor, + BackgroundColor = CSS_Color.MainColor, + TextID = StringId.Agree, + }; + contentView.AddChidren(btnConfirm); + //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 + int mRectCornerID = HDLUtils.RectCornerBottomRight; + btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID); + dialog.Show(); + + btnCancel.MouseUpEventHandler += (sender2, e2) => + { + dialog.Close(); + }; + btnMsg1.MouseUpEventHandler += (sender2, e2) => + { + string url = "https://developer.hdlcontrol.com/浜鸿劯淇℃伅閲囬泦鍗忚.html"; + if (Language.CurrentLanguage != "Chinese") + { + url = "https://developer.hdlcontrol.com/Face information collection protocol.html"; + } + new WebViewDialog().LoadPage(Language.StringByID(StringId.GetFaceProtocol), url); + + dialog.Close(); + }; + btnConfirm.MouseUpEventHandler = (sender2, e2) => + { + dialog.Close(); + OnAppConfig.Instance.FaceManagementTip = true; + OnAppConfig.Instance.SaveConfig(); + LoadPictureOptionView(btnAddFace); + }; + + }; + btnAddFace.MouseUpEventHandler = eFaceHandler; + #endregion + + } btnAddMember = new Button() { Gravity = Gravity.CenterHorizontal, - Y = Application.GetRealHeight(244), + Y = btnLine1.Bottom + Application.GetRealHeight(btnAddmemberY), Width = Application.GetRealWidth(220), Height = Application.GetRealWidth(44), Radius = (uint)Application.GetRealWidth(22), @@ -79,18 +313,18 @@ TextSize = CSS_FontSize.SubheadingFontSize, IsBold = true, TextAlignment = TextAlignment.Center, - TextID = StringId.ConfirmInvitation, + TextID = StringId.Confirm, }; bodyView.AddChidren(btnAddMember); + btnScan = new Button() { - Y = btnAddMember.Bottom, - Height = Application.GetRealHeight(44), - TextAlignment = TextAlignment.Center, - TextColor = CSS_Color.MainColor, - TextSize = CSS_FontSize.TextFontSize, - TextID = StringId.ScanQRCoden, + Y = btnTitle.Bottom, + Width = Application.GetRealWidth(40), + Height = Application.GetRealWidth(40), + X = Application.GetRealWidth(310), + UnSelectedImagePath = "Public/Scan.png" }; bodyView.AddChidren(btnScan); @@ -137,5 +371,152 @@ }) { IsBackground = true }.Start(); } + + const int imageHeight = 400; + + /// <summary> + /// 鍔犺浇鍥炬爣閫夋嫨閫夐」 + /// </summary> + void LoadPictureOptionView(Button btnAddFace) + { + var pView = new FrameLayout() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, + }; + bodyView.AddChidren(pView); + + var pictureOptionView = new FrameLayout() + { + Y = Application.GetRealHeight(445 + 50), + Height = Application.GetRealHeight(250), + AnimateSpeed = 0.3f, + Animate = Animate.DownToUp, + }; + pView.AddChidren(pictureOptionView); + + var optionView = new VerticalScrolViewLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(100), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + }; + pictureOptionView.AddChidren(optionView); + + var btnTakePicture = new Button() + { + Height = Application.GetRealHeight(50), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + SelectedTextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.TakePicture, + }; + optionView.AddChidren(btnTakePicture); + + optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor }); + + var btnAlbum = new Button() + { + Height = Application.GetRealHeight(50), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + SelectedTextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.Album, + }; + optionView.AddChidren(btnAlbum); + + optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor }); + + var btnCancel = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(8) + optionView.Bottom, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(50), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + TextID = StringId.Cancel, + TextColor = CSS_Color.WarningColor, + TextSize = CSS_FontSize.SubheadingFontSize, + }; + pictureOptionView.AddChidren(btnCancel); + + + + pictureOptionView.MouseUpEventHandler = (sender, e) => + { + pictureOptionView.Parent.RemoveFromParent(); + }; + pView.MouseUpEventHandler = (sender, e) => + { + pictureOptionView.Parent.RemoveFromParent(); + }; + + btnCancel.MouseUpEventHandler = (sender, e) => + { + pictureOptionView.Parent.RemoveFromParent(); + }; + btnTakePicture.MouseDownEventHandler = (sender, e) => + { + btnTakePicture.IsSelected = true; + }; + btnTakePicture.MouseUpEventHandler = (sender, e) => + { + btnTakePicture.IsSelected = false; + var imageName = Guid.NewGuid().ToString(); + CropImage.TakePicture((imagePath) => + { + if (imagePath != null) + { + var imageBytes = getFaceImageBytes(imagePath); + btnAddFace.ImageBytes = imageBytes; + base64string = Convert.ToBase64String(imageBytes); + } + + }, imageName, 6, 6, imageHeight); + + pictureOptionView.Parent.RemoveFromParent(); + }; + btnAlbum.MouseDownEventHandler = (sender, e) => + { + btnAlbum.IsSelected = true; + }; + + btnAlbum.MouseUpEventHandler = (sender, e) => + { + btnAlbum.IsSelected = false; + //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀 + var imageName = Guid.NewGuid().ToString(); + //var imageName = scene.sid; + CropImage.SelectPicture((imagePath) => + { + if (imagePath != null) + { + var imageBytes = getFaceImageBytes(imagePath); + btnAddFace.ImageBytes = imageBytes; + base64string = Convert.ToBase64String(imageBytes); + } + }, imageName, 6, 6, imageHeight); + + pictureOptionView.Parent.RemoveFromParent(); + }; + + } + + /// <summary> + /// 鑾峰彇鏈湴閫夊彇鐨勪汉鑴告暟鎹� + /// </summary> + /// <param name="selectImagePath"></param> + /// <returns></returns> + byte[] getFaceImageBytes(string selectImagePath) + { + var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath); + System.IO.File.Delete(selectImagePath); + return imageBytes; + } + } } \ No newline at end of file -- Gitblit v1.8.0