wxr
2022-06-13 771e755167fa17de86c774337323cc64465f6ea3
Merge branch 'lss' into wxr0114
4个文件已修改
372 ■■■■■ 已修改文件
HDL-ON_Android/Assets/Language.ini 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/Visitor/VisitorHistoryPage.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/Visitor/VisitorQRCodePage.cs 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini
@@ -529,6 +529,24 @@
541=Monitoring
542=Wandering alarm
543=Get more
2533=Visitor management
2534=Visitor Invitation
2535=Record
2536=*After you initiate the visitor certificate, you can  unlock the door by password or swipe the code  freely within the validity period you set. Please share the certificate carefully.
2537=Input phone number of the visitor
2538=Input 6-digits temporary password
2539=Random Generation
2540=After confirmation, the visitor QR code will be generated, and the 6-digit dynamic digital password SMS will also be sent to the visitor mobile phone.
2541=Are you sure to delete visitor credentials?
2542=Long press the QR code to save the QR code to the album
2543=QR code is invalid
2544=Generate Visitor Credentials
2545=Cancle Visitor Credentials
2546=Visitor QR Code
2547=Phone Number
2548=Please enter a correct phone number
2549=Please select a effective time
2550=Please select a expire time
1000=Room Humidity
@@ -1692,6 +1710,29 @@
542=徘徊报警
543=获取更多
 
2533=访客管理
2534=访客邀请
2535=访客记录
2536=*您发起访客凭证后,该凭证将在您设置的有效期内,可自由刷码或密码开锁进行进出,请谨慎分享该凭证。
2537=输入访客手机号码
2538=输入6位动态密码
2539=随机生成
2540=确认后,会生成访客二维码,同时也会将6位动态数字密码短信发送到访客手机上。
2541=确定删除访客凭证?
2542=长按二维码可以将二维码保存到相册
2543=二维码已失效
2544=生成访客凭证
2545=取消访客凭证
2546=访客二维码
2547=手机号
2548=请输入正确的手机号码
2549=请选择生效时间
2550=请选择失效时间
1000=室内湿度
1001=童锁
1002=负离子
@@ -2829,6 +2870,24 @@
541=Monitoring
542=Wandering alarm
543=Get more
2533=Visitor management
2534=Visitor Invitation
2535=Record
2536=*After you initiate the visitor certificate, you can  unlock the door by password or swipe the code  freely within the validity period you set. Please share the certificate carefully.
2537=Input phone number of the visitor
2538=Input 6-digits temporary password
2539=Random Generation
2540=After confirmation, the visitor QR code will be generated, and the 6-digit dynamic digital password SMS will also be sent to the visitor mobile phone.
2541=Are you sure to delete visitor credentials?
2542=Long press the QR code to save the QR code to the album
2543=QR code is invalid
2544=Generate Visitor Credentials
2545=Cancle Visitor Credentials
2546=Visitor QR Code
2547=Phone Number
2548=Please enter a correct phone number
2549=Please select a effective time
2550=Please select a expire time
1000=Влажность в Помещении
HDL_ON/Common/R.cs
@@ -47,6 +47,75 @@
        /// </summary>
        public const int Data = 534;
        /// <summary>
        /// 访客二维码结束时间
        /// </summary>
        public const int VisitorEndTime = 2550;
        /// <summary>
        /// 访客二维码开始时间
        /// </summary>
        public const int VisitorStartTime = 2549;
        /// <summary>
        /// 手机号
        /// </summary>
        public const int PhoneNumberErrorTip = 2548;
        /// <summary>
        /// 手机号
        /// </summary>
        public const int PhoneNumber = 2547;
        /// <summary>
        /// 访客二维码
        /// </summary>
        public const int VisitorQRCode = 2546;
        /// <summary>
        /// 取消访客凭证
        /// </summary>
        public const int CancleVisitorCredentials = 2545;
        /// <summary>
        /// 生成访客凭证
        /// </summary>
        public const int GenerateVisitorCredentials = 2544;
        /// <summary>
        /// 二维码已失效
        /// </summary>
        public const int QRcodeIsInvalid = 2543;
        /// <summary>
        /// 长按二维码可以将二维码保存到相册
        /// </summary>
        public const int LongPressQRCodeSave = 2542;
        /// <summary>
        /// 失效时间
        /// </summary>
        public const int VisitorDelTipContent = 2541;
        /// <summary>
        /// 失效时间
        /// </summary>
        public const int VisitorTipContent = 2540;
        /// <summary>
        /// 随机生成
        /// </summary>
        public const int RandomGeneration = 2539;
        /// <summary>
        /// 输入6位动态密码
        /// </summary>
        public const int Input6_DigitsTemporaryPassword = 2538;
        /// <summary>
        /// 输入访客手机号码
        /// </summary>
        public const int InputPhoneNumberOfTheVisitor = 2537;
        /// <summary>
        /// 您发起访客凭证后,该凭证将在您设置的有效期内,可自由刷码或密码开锁进行进出,请谨慎分享该凭证
        /// </summary>
        public const int VisitorTip = 2536;
        /// <summary>
        /// 访客记录
        /// </summary>
        public const int VisitorRecord = 2535;
        /// <summary>
        /// 访客邀请
        /// </summary>
        public const int VisitorInvitation = 2534;
        /// <summary>
        /// 访客管理
        /// 24小时统计图
        /// </summary>
        public const int StatisticalChart24Hour = 533;
@@ -302,7 +371,7 @@
        /// <summary>
        /// 防护中
        /// </summary>
        public const int UnderProtection=470;
        public const int UnderProtection = 470;
        /// <summary>
        /// 有人进入
        /// </summary>
@@ -346,7 +415,7 @@
        /// <summary>
        /// 实时能耗
        /// </summary>
        public const int RealTimeEnergyConsumption=459;
        public const int RealTimeEnergyConsumption = 459;
        /// <summary>
        /// 日期
        /// </summary>
@@ -546,7 +615,7 @@
        public const int VerificationCodePrompt = 274;
        public const int ChangeTheVerificationMethod = 273;
        public const int ModifyBindingEmail = 272;
        public const int CurrentEmail =271;
        public const int CurrentEmail = 271;
        public const int Unbind = 270;
        public const int ModifyBinding = 269;
        public const int EmailAddress = 268;
@@ -568,14 +637,14 @@
        public const int SavedSuccessfully = 252;
        public const int AddFailedInsufficientPermissions = 251;
        public const int OperationFailed = 250;
        public const int MemberAccountHasBeenAddedAndCannotBeAddedAgain =249;
        public const int MemberAccountHasBeenAddedAndCannotBeAddedAgain = 249;
        public const int ThisHomeDoesNotExistForTheUser = 248;
        public const int FailedToAddUnableToAddYourself = 247;
        public const int FailedToAddTheMemberAccountIsNotRegistered = 246;
        public const int DataExceptionPleaseTryAgain = 245;
        public const int MemberAddedSuccessfully = 244;
        public const int AccountErrorPlsC = 243;
        public const int ConfirmInvitation =242;
        public const int ConfirmInvitation = 242;
        public const int ScanQRCoden = 241;
        public const int NewMemberAccount = 240;
        public const int AddMember = 239;
@@ -671,7 +740,7 @@
        public const int AtStartup = 149;
        public const int Unprotected = 148;
        public const int VerificationCodeError = 147;
        public const int MultipleChoicesOfPagesYouNeedToProtect= 146;
        public const int MultipleChoicesOfPagesYouNeedToProtect = 146;
        public const int PleaseSelectThePageToBeUnlocked = 145;
        public const int UesrName = 144;
        public const int UesrNameCannotBeEmpty = 143;
@@ -723,7 +792,7 @@
        public const int DefaultGallery = 97;
        public const int DeleteRoom = 96;
        public const int Save = 95;
        public const int FunctionManagement=94;
        public const int FunctionManagement = 94;
        public const int Floor = 93;
        public const int RoomName = 92;
@@ -740,7 +809,7 @@
        public const int DelFloorTip = 88;
        public const int Tip = 87;
        public const int Del = 86;
        public const int Scenes=85;
        public const int Scenes = 85;
        public const int AddFloorFailed_FloorAlreadyExist = 84;
        public const int EditFloorName = 83;
        public const int AddFloors = 82;
@@ -778,12 +847,12 @@
        public const int BoundMobileInfo = 50;
        public const int MyQRcode = 49;
        public const int Name = 48;
        public const int PersonalCenter=47;
        public const int PersonalCenter = 47;
        public const int InvalidLoginCertificate = 46;
        public const int AccountNotExist = 45;
        public const int ConfirmReset = 44;
        public const int RegistrationFailedPleaseTryAgain = 43;
        public const int NetworkAnomaly=42;
        public const int NetworkAnomaly = 42;
        public const int FailedToSendVerificationCode = 41;
        public const int LoginFailed_AccountOrPasswordError = 40;
        public const int Personal = 39;
@@ -804,7 +873,7 @@
        public const int PlsEntryCorrectEmailAddress = 24;
        public const int VerificationCodeWrong = 23;
        public const int AccountAlreadyUse = 22;
        public const int PasswordIsUnqualified=21;
        public const int PasswordIsUnqualified = 21;
        public const int IncorrectRepeatPassword = 20;
        public const int PlsEntryCorrectMobilNeumber = 19;
        public const int PlsEntryVerificationCode = 18;
@@ -1825,7 +1894,7 @@
        /// <summary>
        /// 在线
        /// </summary>
        public const int zaixianhwb= 6015;
        public const int zaixianhwb = 6015;
        /// <summary>
        /// 离线
        /// </summary>
@@ -1853,7 +1922,7 @@
        /// <summary>
        /// 下一步
        /// </summary>
        public const int xiayibu= 6022;
        public const int xiayibu = 6022;
        /// <summary>
        /// 电源
        /// </summary>
@@ -2081,7 +2150,7 @@
        /// <summary>
        /// 选择红外品牌
        /// </summary>
        public const int xuanzehongwaipinpai= 6081;
        public const int xuanzehongwaipinpai = 6081;
        /// <summary>
        /// 摇头
        /// </summary>
@@ -2358,11 +2427,11 @@
        /// <summary>
        /// 暂停
        /// </summary>
        public const int stop= 7054;
        public const int stop = 7054;
        /// <summary>
        /// 亮度
        /// </summary>
        public const int brightnesLogic= 7055;
        public const int brightnesLogic = 7055;
        /// <summary>
        /// 百分比
        /// </summary>
@@ -2374,7 +2443,7 @@
        /// <summary>
        /// 制冷
        /// </summary>
        public const int coolLogic= 7058;
        public const int coolLogic = 7058;
        /// <summary>
        /// 制热
        /// </summary>
@@ -2490,7 +2559,7 @@
        /// <summary>
        /// 室外变化
        /// </summary>
        public const int shiwaibainhua=7087;
        public const int shiwaibainhua = 7087;
        /// <summary>
        /// 选择室外变化条件
        /// </summary>
@@ -2534,11 +2603,11 @@
        /// <summary>
        /// 晴天
        /// </summary>
        public const int clearday =7098;
        public const int clearday = 7098;
        /// <summary>
        /// 多云
        /// </summary>
        public const int cloudy= 7099;
        public const int cloudy = 7099;
        /// <summary>
        /// 下雨
        /// </summary>
@@ -2562,7 +2631,7 @@
        /// <summary>
        /// 轻度污染:76~115ug/m³
        /// </summary>
        public const int pmqingdu= 7105;
        public const int pmqingdu = 7105;
        /// <summary>
        /// 中度污染:116~150ug/m³
        /// </summary>
@@ -2570,11 +2639,11 @@
        /// <summary>
        /// 重度污染:>150ug/m³
        /// </summary>
        public const int pmzhongduwuran= 7107;
        public const int pmzhongduwuran = 7107;
        /// <summary>
        /// 泄漏/无泄漏
        /// </summary>
        public const int xieluoandwuxieluo=7108;
        public const int xieluoandwuxieluo = 7108;
        /// <summary>
        /// 泄漏
        /// </summary>
@@ -2638,7 +2707,7 @@
        /// <summary>
        /// 优
        /// </summary>
        public const int kongqiyou= 7124;
        public const int kongqiyou = 7124;
        /// <summary>
        /// 良
        /// </summary>
HDL_ON/UI/UI2/4-PersonalCenter/Visitor/VisitorHistoryPage.cs
@@ -28,9 +28,8 @@
                page.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            new TopViewDiv(bodyView, "访客记录").LoadTopView(click);
            new TopViewDiv(bodyView, Language.StringByID(StringId.VisitorInvitation)).LoadTopView_SettingText(click, "");
            #endregion
            bodyScrolView = new VerticalScrolViewLayout()
@@ -55,7 +54,7 @@
                {
                    Height = Application.GetRealWidth(20),
                    Y = Application.GetRealWidth(6),
                    Text = "访客二维码",
                    Text = Language.StringByID(StringId.VisitorQRCode),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.text1Color,
                    TextSize = CSS_FontSize.TextFontSize,
@@ -68,7 +67,7 @@
                {
                    Height = Application.GetRealWidth(14),
                    Y = Application.GetRealWidth(30),
                    Text = "时间:" + startTime + " - " + endTime,
                    Text = Language.StringByID(StringId.Time) + ":" + startTime + " - " + endTime,
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.PromptingColor1,
                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -131,79 +130,5 @@
        }
        private List<TempPasswordInfo> infoList;
        private void getTestData()
        {
            infoList = new List<TempPasswordInfo>();
            TempPasswordInfo info = new TempPasswordInfo();
            info.homeId = 11111;
            info.deviceId = 11111;
            info.phone = "1234567890";
            info.tempPwd = "134234";
            info.useCount = 10;
            info.validBeginTime = "2022/5/10 14:21:00";
            info.validEndTime = "2022/5/12 14:21:00";
            infoList.Add(info);
            info = new TempPasswordInfo();
            info.homeId = 11111;
            info.deviceId = 11111;
            info.phone = "1234567890";
            info.tempPwd = "134234";
            info.useCount = 10;
            info.validBeginTime = "2022/5/10 14:21:00";
            info.validEndTime = "2022/5/12 14:21:00";
            infoList.Add(info);
            info = new TempPasswordInfo();
            info.homeId = 11111;
            info.deviceId = 11111;
            info.phone = "1234567890";
            info.tempPwd = "134234";
            info.useCount = 10;
            info.validBeginTime = "2022/5/10 14:21:00";
            info.validEndTime = "2022/5/12 14:21:00";
            infoList.Add(info);
            info = new TempPasswordInfo();
            info.homeId = 11111;
            info.deviceId = 11111;
            info.phone = "1234567890";
            info.tempPwd = "134234";
            info.useCount = 10;
            info.validBeginTime = "2022/5/10 14:21:00";
            info.validEndTime = "2022/5/12 14:21:00";
            infoList.Add(info);
            info = new TempPasswordInfo();
            info.homeId = 11111;
            info.deviceId = 11111;
            info.phone = "1234567890";
            info.tempPwd = "134234";
            info.useCount = 10;
            info.validBeginTime = "2022/5/10 14:21:00";
            info.validEndTime = "2022/5/12 14:21:00";
            infoList.Add(info);
            info = new TempPasswordInfo();
            info.homeId = 11111;
            info.deviceId = 11111;
            info.phone = "1234567890";
            info.tempPwd = "134234";
            info.useCount = 10;
            info.validBeginTime = "2022/5/10 14:21:00";
            info.validEndTime = "2022/5/12 14:21:00";
            infoList.Add(info);
            info = new TempPasswordInfo();
            info.homeId = 11111;
            info.deviceId = 11111;
            info.phone = "1234567890";
            info.tempPwd = "134234";
            info.useCount = 10;
            info.validBeginTime = "2022/5/10 14:21:00";
            info.validEndTime = "2022/5/12 14:21:00";
            infoList.Add(info);
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/Visitor/VisitorQRCodePage.cs
@@ -17,6 +17,7 @@
        private Button randomBtn;//随机密码Btn
        private FrameLayout codeLayout;
        private ImageView codeIV;// 二维码
        private Button codeSaveTipBtn;
        private Button codeTip;//二维码有效期提示
        private Button visitorVoucherBtn;
        private VisitorTempPassword tempPassword;
@@ -48,13 +49,14 @@
                };
                bodyView.BackgroundColor = CSS_Color.BackgroundColor;
                new TopViewDiv(bodyView, "访客邀请").LoadTopView_SettingText(click, "测试记录");
                new TopViewDiv(bodyView, Language.StringByID(StringId.VisitorInvitation))
                    .LoadTopView_SettingText(click, Language.StringByID(StringId.VisitorRecord));
            }
            else
            {
                bodyView.BackgroundColor = CSS_Color.BackgroundColor;
                new TopViewDiv(bodyView, "访客邀请").LoadTopView();
                new TopViewDiv(bodyView, Language.StringByID(StringId.VisitorInvitation)).LoadTopView();
            }
            #endregion
@@ -69,7 +71,7 @@
            // 提示文字
            bodyScrolView.AddChidren(new Button()
            {
                Text = "*您发起访客二维码后,该二维码将在您设置的有效期内,可自由刷码进行进出,请谨慎分享该二维码。",
                Text = Language.StringByID(StringId.VisitorTip),
                IsMoreLines = true,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextColor = CSS_Color.PromptingColor1,
@@ -81,7 +83,7 @@
            #region 手机号
            bodyScrolView.AddChidren(new Button()
            {
                Text = "手机号",
                Text = Language.StringByID(StringId.PhoneNumber),
                Y = Application.GetRealWidth(10),
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
@@ -97,7 +99,8 @@
                Width = Application.GetRealWidth(335),
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                PlaceholderText = "输入访客手机号",
                PlaceholderText = Language.StringByID(StringId.InputPhoneNumberOfTheVisitor),
                Text = tempPassword.phone,
                IsNumberKeyboardType = true,
                PlaceholderTextColor = CSS_Color.PromptingColor1,
@@ -117,7 +120,7 @@
            bodyScrolView.AddChidren(new Button() { Height = Application.GetRealWidth(10), });
            bodyScrolView.AddChidren(new Button()
            {
                Text = "动态密码",
                Text = Language.StringByID(StringId.linshimima),
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Height = Application.GetRealHeight(20),
@@ -137,7 +140,7 @@
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Width = Application.GetRealWidth(335),
                PlaceholderText = "输入访6位密码",
                PlaceholderText = Language.StringByID(StringId.Input6_DigitsTemporaryPassword),
                Text = tempPassword.tempPwd,
                PlaceholderTextColor = CSS_Color.PromptingColor1,
            };
@@ -148,7 +151,7 @@
            {
                X = Application.GetRealWidth(275),
                Width = Application.GetRealWidth(80),
                Text = "随机生成",
                Text = Language.StringByID(StringId.RandomGeneration),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
@@ -181,7 +184,7 @@
            startLayout.AddChidren(new Button()
            {
                Text = "二维码生效时间",
                Text = Language.StringByID(StringId.EffectiveTime),
                X = Application.GetRealWidth(20),
                Width = Application.GetRealWidth(130),
                TextSize = CSS_FontSize.SubheadingFontSize,
@@ -199,7 +202,7 @@
            };
            if (tempPassword.tempPwd == null || tempPassword.tempPwd == "")
            {
                startTimeText.Text = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                startTimeText.Text = "";// System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            }
            else
            {
@@ -221,7 +224,7 @@
            // dialog回调
            Action<string> startTimeAction = (str) =>
            {
                startTimeText.Text = str +":00";
                startTimeText.Text = str + ":00";
            };
            startTimeBtn.MouseUpEventHandler += (sender, e) =>
            {
@@ -255,7 +258,7 @@
            endLayout.AddChidren(new Button()
            {
                Text = "二维码失效时间",
                Text = Language.StringByID(StringId.FailureTime),
                X = Application.GetRealWidth(20),
                Width = Application.GetRealWidth(130),
                TextSize = CSS_FontSize.SubheadingFontSize,
@@ -274,7 +277,7 @@
            };
            if (tempPassword.tempPwd == null || tempPassword.tempPwd == "")
            {
                endTimeText.Text = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                endTimeText.Text = "";// System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            }
            else
            {
@@ -337,15 +340,17 @@
            codeLayout.AddChidren(codeIV);
            bodyScrolView.AddChidren(new Button() { Height = Application.GetRealWidth(20), });
            bodyScrolView.AddChidren(new Button()
            codeSaveTipBtn = new Button()
            {
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(20),
                Text = "长按可以把二维码保存到相册",
                Text = Language.StringByID(StringId.LongPressQRCodeSave),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.FirstLevelTitleColor,
            });
                Visible = false,
            };
            bodyScrolView.AddChidren(codeSaveTipBtn);
            #endregion
            bodyScrolView.AddChidren(new Button() { Height = Application.GetRealWidth(28), });
@@ -384,21 +389,67 @@
            };
            visitorVoucherBtn.MouseUpEventHandler += (sender, e) =>
            {
                if (phoneNumberEditText.Text == "" || pwdEditText.Text == "")
                if (startTimeText.Text.Trim() == "")
                {
                    var tip_dialog = new Tip()
                    {
                        Text = Language.StringByID(StringId.VisitorStartTime),
                        CloseTime = 2,
                        Direction = AMPopTipDirection.None
                    };
                    tip_dialog.Show(MainPage.BaseView);
                    return;
                }
                if (endTimeText.Text.Trim() == "")
                {
                    var tip_dialog = new Tip()
                    {
                        Text = Language.StringByID(StringId.VisitorEndTime),
                        CloseTime = 2,
                        Direction = AMPopTipDirection.None
                    };
                    tip_dialog.Show(MainPage.BaseView);
                    return;
                }
                if (phoneNumberEditText.Text.Trim() == "" || phoneNumberEditText.Text.Trim().Length != 11)
                {
                    var tip_dialog = new Tip()
                    {
                        Text = Language.StringByID(StringId.PhoneNumberErrorTip),
                        CloseTime = 2,
                        Direction = AMPopTipDirection.None
                    };
                    tip_dialog.Show(MainPage.BaseView);
                    phoneNumberEditText.Foucs = true;
                    return;
                }
                if (pwdEditText.Text.Trim() == "" || pwdEditText.Text.Trim().Length != 6)
                {
                    var tip_dialog = new Tip()
                    {
                        Text = Language.StringByID(StringId.linshimima),
                        CloseTime = 2,
                        Direction = AMPopTipDirection.None
                    };
                    tip_dialog.Show(MainPage.BaseView);
                    pwdEditText.Foucs = true;
                    return;
                }
                string tip = "";
                string message = "";
                if (codeIV.ImageBytes == null)
                {
                    tip = "访客凭证";
                    message = "生成访客二维码并将临时密码发送至访客手机.";
                    tip = Language.StringByID(StringId.tip);
                    message = Language.StringByID(StringId.VisitorTipContent);
                }
                else
                {
                    tip = "访客凭证";
                    message = "确定删除访客凭证?";
                    tip = Language.StringByID(StringId.tip);
                    message = Language.StringByID(StringId.VisitorDelTipContent);
                }
                new LpTipDialog(Application.Activity, tip, message, new LpTipDialogCallBack(voucher_action)).Show();
            };
@@ -413,11 +464,11 @@
                string msg = "";
                if (bol)
                {
                    msg = "保存成功!";
                    msg = Language.StringByID(StringId.SavedSuccessfully);
                }
                else
                {
                    msg = "保存失败!";
                    msg = Language.StringByID(StringId.saveFail);
                }
                EmptyTipView tipView = new EmptyTipView(msg, 160);
                tipView.Gravity = Gravity.CenterHorizontal;
@@ -447,15 +498,15 @@
                        TextAlignment = TextAlignment.Center,
                        TextColor = CSS_Color.textWhiteColor,
                        BackgroundColor = CSS_Color.DialogTransparentColor1,
                        Text = "二维码已失效",
                        Text = Language.StringByID(StringId.QRcodeIsInvalid),
                    };
                    codeLayout.AddChidren(codeTip);
                }
                visitorVoucherBtn.Text = "删除访客凭证";
                visitorVoucherBtn.Text = Language.StringByID(StringId.CancleVisitorCredentials);
            }
            else
            {
                visitorVoucherBtn.Text = "生成访客凭证";
                visitorVoucherBtn.Text = Language.StringByID(StringId.GenerateVisitorCredentials);
            }
        }
@@ -488,9 +539,19 @@
                {
                    pwd.id = pack.Data.ToString();
                    codeIV.ImageBytes = Scan.BytesFromText(pwdEditText.Text, codeIV.Width, codeIV.Height);
                    codeSaveTipBtn.Visible = true;
                    RefreshVisitorVoucherBtn();
                }
                else {
                    var tip_dialog = new Tip()
                    {
                        Text = pack.message,
                        CloseTime = 2,
                        Direction = AMPopTipDirection.None
                    };
                    tip_dialog.Show(MainPage.BaseView);
                }
            }
            RefreshVisitorVoucherBtn();
            return result;
        }