From c7904c91f99d77ff9d7e4b238898ba2841cd8095 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 16 三月 2023 14:04:00 +0800 Subject: [PATCH] Merge branch 'Dev-Wxr' into Dev-Branch --- HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs | 558 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 500 insertions(+), 58 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..e35b1c0 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; @@ -29,71 +36,359 @@ bodyView.BackgroundColor = CSS_Color.MainBackgroundColor; new TopViewDiv(bodyView, Language.StringByID(StringId.AddMember)).LoadTopView(); - var btnTitle = new Button() + if (Entity.DB_ResidenceData.Instance.SupportFacePass) { - Y = Application.GetRealHeight(70), - X = Application.GetRealWidth(16), - Height = Application.GetRealHeight(32), - TextColor = CSS_Color.FirstLevelTitleColor, - TextSize = CSS_FontSize.TextFontSize, - TextAlignment = TextAlignment.CenterLeft, - TextID = StringId.NewMemberAccount, - }; - bodyView.AddChidren(btnTitle); + var btnMemberName = new Button() + { + Y = Application.GetRealHeight(70), + X = Application.GetRealWidth(16), + Height = Application.GetRealHeight(32), + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + TextAlignment = TextAlignment.CenterLeft, + TextID = StringId.MemberName, + }; + bodyView.AddChidren(btnMemberName); - etMemberAccount = new EditText() + 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); + + etMemberAccount = new EditText() + { + Y = btnTitle.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(etMemberAccount); + + var btnLine1 = new Button() + { + Y = etMemberAccount.Bottom, + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(1), + BackgroundColor = CSS_Color.DividingLineColor, + }; + bodyView.AddChidren(btnLine1); + + #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 btnTitle = 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(btnTitle); + + Button btnMsg = new Button() + { + Gravity = Gravity.CenterHorizontal, + Height = Application.GetRealHeight(35), + Y = btnTitle.Bottom, + Width = Application.GetRealHeight(200), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = " 涓轰繚鎶ゆ偍鐨勪釜浜洪殣绉佹潈鐩婏紝鐗瑰悜鎮ㄩ�氱煡骞剁敵璇锋槑纭悓鎰忔巿鏉冦�傝浣犱粩缁嗛槄璇�", + 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, + Text = " 銆奜n Pro浜鸿劯淇℃伅閲囬泦鍗忚銆�", + 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, + Text = " 鑻ュ悓鎰忚鍗忚锛岃鐐瑰嚮銆愬悓鎰忋�戞寜閿紝琛ㄧず鎮ㄥ凡缁忕悊瑙e苟鍚屾剰浜鸿劯淇℃伅閲囬泦鍗忚銆�", + IsMoreLines = true, + }; + contentView.AddChidren(btnMsg2); + + Button btnLine = new Button() + { + Y = Application.GetRealHeight(149), + Height = Application.GetRealHeight(1), + Width = Application.GetRealWidth(270 / 2), + BackgroundColor = CSS.CSS_Color.DividingLineColor, + }; + contentView.AddChidren(btnLine); + + Button btnCancel = new Button() + { + Y = btnLine.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 = btnLine.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 += (sender, e) => + { + dialog.Close(); + }; + btnMsg1.MouseUpEventHandler += (sender, e) => + { + string url = "https://developer.hdlcontrol.com/浜鸿劯淇℃伅閲囬泦鍗忚.html"; + if (Language.CurrentLanguage != "Chinese") + { + url = "https://developer.hdlcontrol.com/Face information collection protocol.html"; + } + new WebViewDialog().LoadPage("浜鸿劯淇℃伅閲囬泦鍗忚", url); + + dialog.Close(); + }; + btnConfirm.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + OnAppConfig.Instance.FaceManagementTip = true; + OnAppConfig.Instance.SaveConfig(); + LoadPictureOptionView(btnAddFace); + }; + + }; + btnAddFace.MouseUpEventHandler = eFaceHandler; + #endregion + + + btnAddMember = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = btnAddFace.Bottom + Application.GetRealHeight(30), + Width = Application.GetRealWidth(220), + Height = Application.GetRealWidth(44), + Radius = (uint)Application.GetRealWidth(22), + BorderWidth = 0, + BorderColor = 0x00000000, + BackgroundColor = CSS_Color.MainColor, + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.SubheadingFontSize, + IsBold = true, + TextAlignment = TextAlignment.Center, + TextID = StringId.Confirm, + }; + bodyView.AddChidren(btnAddMember); + + + btnScan = new Button() + { + Y = btnTitle.Bottom, + Width = Application.GetRealWidth(40), + Height = Application.GetRealWidth(40), + X = Application.GetRealWidth(310), + UnSelectedImagePath = "Public/Scan.png" + }; + bodyView.AddChidren(btnScan); + + } + else { - Y = btnTitle.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(etMemberAccount); + var btnTitle = new Button() + { + Y = Application.GetRealHeight(70), + X = Application.GetRealWidth(16), + Height = Application.GetRealHeight(32), + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + TextAlignment = TextAlignment.CenterLeft, + TextID = StringId.NewMemberAccount, + }; + bodyView.AddChidren(btnTitle); - var btnLine = new Button() - { - Y = etMemberAccount.Bottom, - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(1), - BackgroundColor = CSS_Color.DividingLineColor, - }; - bodyView.AddChidren(btnLine); + etMemberAccount = new EditText() + { + Y = btnTitle.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(etMemberAccount); - btnAddMember = new Button() - { - Gravity = Gravity.CenterHorizontal, - Y = Application.GetRealHeight(244), - Width = Application.GetRealWidth(220), - Height = Application.GetRealWidth(44), - Radius = (uint)Application.GetRealWidth(22), - BorderWidth = 0, - BorderColor = 0x00000000, - BackgroundColor = CSS_Color.MainColor, - TextColor = CSS_Color.MainBackgroundColor, - TextSize = CSS_FontSize.SubheadingFontSize, - IsBold = true, - TextAlignment = TextAlignment.Center, - TextID = StringId.ConfirmInvitation, - }; - bodyView.AddChidren(btnAddMember); + var btnLine = new Button() + { + Y = etMemberAccount.Bottom, + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(1), + BackgroundColor = CSS_Color.DividingLineColor, + }; + bodyView.AddChidren(btnLine); - btnScan = new Button() - { - Y = btnAddMember.Bottom, - Height = Application.GetRealHeight(44), - TextAlignment = TextAlignment.Center, - TextColor = CSS_Color.MainColor, - TextSize = CSS_FontSize.TextFontSize, - TextID = StringId.ScanQRCoden, - }; - bodyView.AddChidren(btnScan); + btnAddMember = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(244), + Width = Application.GetRealWidth(220), + Height = Application.GetRealWidth(44), + Radius = (uint)Application.GetRealWidth(22), + BorderWidth = 0, + BorderColor = 0x00000000, + BackgroundColor = CSS_Color.MainColor, + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.SubheadingFontSize, + IsBold = true, + TextAlignment = TextAlignment.Center, + 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, + }; + bodyView.AddChidren(btnScan); + } LoadEventList(); } @@ -137,5 +432,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