黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/Login/AccountForgotPasswordForm.cs
New file
@@ -0,0 +1,696 @@
using System;
using System.Collections.Generic;
using Shared.Common;
namespace Shared.Phone.Login
{
    /// <summary>
    /// 忘记密码界面(注:此界面特殊,需要避开底层的处理)
    /// </summary>
    public class AccountForgotPasswordForm : EditorCommonForm
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 1:手机号 2:邮箱
        /// </summary>
        private int SelectIndex = 1;
        /// <summary>
        /// 输入的手机号(防止二次更改)
        /// </summary>
        private string strInputPhone = string.Empty;
        /// <summary>
        /// 输入的邮箱(防止二次更改)
        /// </summary>
        private string strInputEmail = string.Empty;
        /// <summary>
        /// 当前的输入控件 0:手机号或者邮箱  1:验证码  2:第一次密码  3:第二次密码
        /// </summary>
        private List<TextInputControl> ListNowInputControl = new List<TextInputControl> { null, null, null, null };
        /// <summary>
        /// 错误提示控件
        /// </summary>
        private NormalViewControl btnErrorMsg = null;
        /// <summary>
        /// 重置按钮
        /// </summary>
        private BottomClickButton btnReset = null;
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 界面显示
        /// </summary>
        public void ShowForm()
        {
            CommonPage.Instance.IsDrawerLockMode = true;
            this.Tag = "Forgot";
            //初始化头部控件
            base.InitTopFrameLayout();
            //初始化中部控件
            base.InitBodyFrameLayout();
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.ForgotPWD));
            //重置按钮
            this.btnReset = new BottomClickButton(688);
            btnReset.Y = Application.GetRealHeight(1290);
            btnReset.TextID = R.MyInternationalizationString.ComfirmReset;
            btnReset.oldBackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
            bodyFrameLayout.AddChidren(btnReset);
            btnReset.CanClick = false;
            btnReset.ButtonClickEvent += (sender, e) =>
            {
                //注册用户
                this.ResetPassword();
            };
            //几个输入控件的集合
            var listControl = new List<TextInputControl>();
            //初始化手机号输入控件
            var framePhone = this.InitPhoneInputView(ref listControl);
            //初始化邮箱输入控件
            var frameEmail = this.InitEmailInputView(ref listControl);
            //错误提示Btn
            this.btnErrorMsg = new NormalViewControl(700, 58, true);
            btnErrorMsg.X = Application.GetRealWidth(127);
            btnErrorMsg.Y = Application.GetRealHeight(1060);
            btnErrorMsg.TextColor = ZigbeeColor.Current.GXCTextRed;
            btnErrorMsg.IsBold = true;
            bodyFrameLayout.AddChidren(btnErrorMsg);
            //邮箱,手机号的切换控件
            var sitchControl = new Controls.PhoneEmailSelectControl();
            sitchControl.Y = Application.GetRealHeight(127);
            bodyFrameLayout.AddChidren(sitchControl);
            sitchControl.SelectMenuEvent += (selectMenu) =>
            {
                this.SelectIndex = selectMenu;
                //手机号
                if (this.SelectIndex == 1)
                {
                    framePhone.Visible = true;
                    frameEmail.Visible = false;
                    //当前的输入控件
                    ListNowInputControl[0] = listControl[0];
                    ListNowInputControl[1] = listControl[1];
                    ListNowInputControl[2] = listControl[2];
                    ListNowInputControl[3] = listControl[3];
                }
                //邮箱
                else if (this.SelectIndex == 2)
                {
                    framePhone.Visible = false;
                    frameEmail.Visible = true;
                    //当前的输入控件
                    ListNowInputControl[0] = listControl[4];
                    ListNowInputControl[1] = listControl[5];
                    ListNowInputControl[2] = listControl[6];
                    ListNowInputControl[3] = listControl[7];
                }
                //检测注册按钮的状态
                this.CheckResetButtonStatu();
            };
            //执行初始化
            sitchControl.InitControl(ZigbeeColor.Current.GXCButtonBlackSelectedColor, 1);
        }
        /// <summary>
        ///  初始化手机号输入的界面
        /// </summary>
        /// <param name="listControl">几个输入控件的集合</param>
        /// <returns></returns>
        private FrameLayout InitPhoneInputView(ref List<TextInputControl> listControl)
        {
            //背景框
            var frameBack = new FrameLayout();
            frameBack.Y = Application.GetRealHeight(334);
            frameBack.Height = Application.GetRealHeight(852);
            frameBack.Width = Application.GetRealWidth(942);
            frameBack.Gravity = Gravity.CenterHorizontal;
            frameBack.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
            frameBack.Radius = (uint)Application.GetRealHeight(17);
            bodyFrameLayout.AddChidren(frameBack);
            //手机号行的容器
            var framePhone = new FrameLayout();
            framePhone.X = Application.GetRealWidth(29);
            framePhone.Y = Application.GetRealHeight(29);
            framePhone.Width = Application.GetRealWidth(884);
            framePhone.Height = Application.GetRealHeight(138);
            frameBack.AddChidren(framePhone);
            //地区码
            var btnAreaCode = new NormalViewControl(160, 92, true);
            btnAreaCode.Gravity = Gravity.CenterVertical;
            btnAreaCode.TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            btnAreaCode.Text = $"+{CommonPage.PhoneZoneStr}";
            btnAreaCode.TextAlignment = TextAlignment.Center;
            framePhone.AddChidren(btnAreaCode);
            //手机号输入框
            var txtPhone = new TextInputControl(600, 92, true);
            txtPhone.X = Application.GetRealWidth(222);
            txtPhone.Gravity = Gravity.CenterVertical;
            txtPhone.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPhoneNum);
            txtPhone.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            txtPhone.IsNumberKeyboardType = true;
            framePhone.AddChidren(txtPhone);
            listControl.Add(txtPhone);
            //手机号输入框的底线
            var btnPhoneLine = new NormalViewControl(framePhone.Width, HdlControlResourse.BottomLineHeight, false);
            btnPhoneLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnPhoneLine.Y = framePhone.Height - HdlControlResourse.BottomLineHeight;
            framePhone.AddChidren(btnPhoneLine);
            //联动底线
            txtPhone.btnLine = btnPhoneLine;
            //验证码的容器
            var frameCode = new FrameLayout();
            frameCode.X = Application.GetRealWidth(29);
            frameCode.Y = Application.GetRealHeight(196);
            frameCode.Width = framePhone.Width;
            frameCode.Height = framePhone.Height;
            frameBack.AddChidren(frameCode);
            //验证码输入框
            var txtCode = new TextInputControl(536, 92, true);
            txtCode.X = Application.GetRealWidth(29);
            txtCode.Gravity = Gravity.CenterVertical;
            txtCode.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputVerificationCode);
            txtCode.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            frameCode.AddChidren(txtCode);
            listControl.Add(txtCode);
            //获取验证码
            var btnSendCode = new NormalViewControl(300, 127, true);
            btnSendCode.X = frameCode.Width - Application.GetRealWidth(300);
            btnSendCode.Gravity = Gravity.CenterVertical;
            btnSendCode.TextID = R.MyInternationalizationString.SendVerificationCode;
            btnSendCode.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
            btnSendCode.TextAlignment = TextAlignment.Center;
            btnSendCode.BackgroundColor = 0xFFFEBCA9;
            btnSendCode.CanClick = false;
            btnSendCode.Radius = (uint)Application.GetRealHeight(12);
            btnSendCode.IsBold = true;
            frameCode.AddChidren(btnSendCode);
            btnSendCode.ButtonClickEvent += (sender, e) =>
            {
                //发送验证码
                this.SendVerificationCode(btnSendCode);
            };
            //获取验证码的底线
            var btnCodeLine = new NormalViewControl(Application.GetRealWidth(536), HdlControlResourse.BottomLineHeight, false);
            btnCodeLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnCodeLine.Y = frameCode.Height - HdlControlResourse.BottomLineHeight;
            frameCode.AddChidren(btnCodeLine);
            //联动底线
            txtCode.btnLine = btnCodeLine;
            //第一次密码的容器
            var framePswOne = new FrameLayout();
            framePswOne.X = Application.GetRealWidth(29);
            framePswOne.Y = Application.GetRealHeight(363);
            framePswOne.Width = framePhone.Width;
            framePswOne.Height = framePhone.Height;
            frameBack.AddChidren(framePswOne);
            //第一次密码的输入框
            var txtPswOne = new TextInputControl(700, 92, true);
            txtPswOne.X = Application.GetRealWidth(29);
            txtPswOne.Gravity = Gravity.CenterVertical;
            txtPswOne.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPWD);
            txtPswOne.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            txtPswOne.SecureTextEntry = true;
            framePswOne.AddChidren(txtPswOne);
            listControl.Add(txtPswOne);
            //第一次密码可视图标
            var btnPswOneHiden = new IconViewControl(92);
            btnPswOneHiden.X = Application.GetRealWidth(775);
            btnPswOneHiden.Gravity = Gravity.CenterVertical;
            btnPswOneHiden.SelectedImagePath = "Account/HidePwd.png";
            btnPswOneHiden.UnSelectedImagePath = "Account/UnhidePwd.png";
            btnPswOneHiden.IsSelected = true;
            framePswOne.AddChidren(btnPswOneHiden);
            btnPswOneHiden.ButtonClickEvent += (sender, e) =>
            {
                btnPswOneHiden.IsSelected = !btnPswOneHiden.IsSelected;
                txtPswOne.SecureTextEntry = btnPswOneHiden.IsSelected;
            };
            //第一次密码输入框的底线
            var btnPswOneLine = new NormalViewControl(framePswOne.Width, HdlControlResourse.BottomLineHeight, false);
            btnPswOneLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnPswOneLine.Y = framePswOne.Height - HdlControlResourse.BottomLineHeight;
            framePswOne.AddChidren(btnPswOneLine);
            //联动底线
            txtPswOne.btnLine = btnPswOneLine;
            //第二次密码的容器
            var framePswTwo = new FrameLayout();
            framePswTwo.X = Application.GetRealWidth(29);
            framePswTwo.Y = Application.GetRealHeight(530);
            framePswTwo.Width = framePhone.Width;
            framePswTwo.Height = framePhone.Height;
            frameBack.AddChidren(framePswTwo);
            //第二次密码的输入框
            var txtPswTwo = new TextInputControl(700, 92, true);
            txtPswTwo.X = Application.GetRealWidth(29);
            txtPswTwo.Gravity = Gravity.CenterVertical;
            txtPswTwo.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPWD);
            txtPswTwo.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            txtPswTwo.SecureTextEntry = true;
            framePswTwo.AddChidren(txtPswTwo);
            listControl.Add(txtPswTwo);
            //第二次密码可视图标
            var btnPswTwoHiden = new IconViewControl(92);
            btnPswTwoHiden.X = Application.GetRealWidth(775);
            btnPswTwoHiden.Gravity = Gravity.CenterVertical;
            btnPswTwoHiden.SelectedImagePath = "Account/HidePwd.png";
            btnPswTwoHiden.UnSelectedImagePath = "Account/UnhidePwd.png";
            btnPswTwoHiden.IsSelected = true;
            framePswTwo.AddChidren(btnPswTwoHiden);
            btnPswTwoHiden.ButtonClickEvent += (sender, e) =>
            {
                btnPswTwoHiden.IsSelected = !btnPswTwoHiden.IsSelected;
                txtPswTwo.SecureTextEntry = btnPswTwoHiden.IsSelected;
            };
            //第二次密码输入框的底线
            var btnPswTwoLine = new NormalViewControl(framePswTwo.Width, HdlControlResourse.BottomLineHeight, false);
            btnPswTwoLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnPswTwoLine.Y = framePswTwo.Height - HdlControlResourse.BottomLineHeight;
            framePswTwo.AddChidren(btnPswTwoLine);
            //联动底线
            txtPswTwo.btnLine = btnPswTwoLine;
            //验证码输入变更时
            txtCode.TextChangeEventHandler += (sender, value) =>
            {
                //检测注册按钮的状态
                this.CheckResetButtonStatu();
            };
            //密码输入变更时
            txtPswOne.TextChangeEventHandler += (sender, value) =>
            {
                //检测注册按钮的状态
                this.CheckResetButtonStatu();
            };
            txtPswTwo.TextChangeEventHandler += (sender, value) =>
            {
                //检测注册按钮的状态
                this.CheckResetButtonStatu();
            };
            //手机号输入变更时
            txtPhone.TextChangeEventHandler += (sender, value) =>
            {
                this.btnErrorMsg.Text = string.Empty;
                if (txtPhone.Text.Trim() != string.Empty)
                {
                    if (btnSendCode.CanClick == false)
                    {
                        btnSendCode.CanClick = true;
                        btnSendCode.BackgroundColor = 0xFFFC744B;
                    }
                }
                else
                {
                    btnSendCode.CanClick = false;
                    btnSendCode.BackgroundColor = 0xFFFEBCA9;
                }
            };
            return frameBack;
        }
        /// <summary>
        /// 初始化邮箱输入的界面
        /// </summary>
        /// <param name="listControl">几个输入控件的集合</param>
        /// <returns></returns>
        private FrameLayout InitEmailInputView(ref List<TextInputControl> listControl)
        {
            //背景框
            var frameBack = new FrameLayout();
            frameBack.Y = Application.GetRealHeight(334);
            frameBack.Height = Application.GetRealHeight(852);
            frameBack.Width = Application.GetRealWidth(942);
            frameBack.Gravity = Gravity.CenterHorizontal;
            frameBack.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
            frameBack.Radius = (uint)Application.GetRealHeight(17);
            bodyFrameLayout.AddChidren(frameBack);
            //邮箱行的容器
            var frameEmail = new FrameLayout();
            frameEmail.X = Application.GetRealWidth(29);
            frameEmail.Y = Application.GetRealHeight(29);
            frameEmail.Width = Application.GetRealWidth(884);
            frameEmail.Height = Application.GetRealHeight(138);
            frameBack.AddChidren(frameEmail);
            //邮箱输入框
            var txtEmail = new TextInputControl(700, 92, true);
            txtEmail.X = Application.GetRealWidth(29);
            txtEmail.Gravity = Gravity.CenterVertical;
            txtEmail.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputEmail);
            txtEmail.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            frameEmail.AddChidren(txtEmail);
            listControl.Add(txtEmail);
            //邮箱输入框的底线
            var btnEmailLine = new NormalViewControl(frameEmail.Width, HdlControlResourse.BottomLineHeight, false);
            btnEmailLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnEmailLine.Y = frameEmail.Height - HdlControlResourse.BottomLineHeight;
            frameEmail.AddChidren(btnEmailLine);
            //联动底线
            txtEmail.btnLine = btnEmailLine;
            //验证码的容器
            var frameCode = new FrameLayout();
            frameCode.X = Application.GetRealWidth(29);
            frameCode.Y = Application.GetRealHeight(196);
            frameCode.Width = frameEmail.Width;
            frameCode.Height = frameEmail.Height;
            frameBack.AddChidren(frameCode);
            //验证码输入框
            var txtCode = new TextInputControl(536, 92, true);
            txtCode.X = Application.GetRealWidth(29);
            txtCode.Gravity = Gravity.CenterVertical;
            txtCode.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputVerificationCode);
            txtCode.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            frameCode.AddChidren(txtCode);
            listControl.Add(txtCode);
            //获取验证码
            var btnSendCode = new NormalViewControl(300, 127, true);
            btnSendCode.X = frameCode.Width - Application.GetRealWidth(300);
            btnSendCode.Gravity = Gravity.CenterVertical;
            btnSendCode.TextID = R.MyInternationalizationString.SendVerificationCode;
            btnSendCode.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
            btnSendCode.TextAlignment = TextAlignment.Center;
            btnSendCode.BackgroundColor = 0xFFFEBCA9;
            btnSendCode.CanClick = false;
            btnSendCode.Radius = (uint)Application.GetRealHeight(12);
            btnSendCode.IsBold = true;
            frameCode.AddChidren(btnSendCode);
            btnSendCode.ButtonClickEvent += (sender, e) =>
            {
                //发送验证码
                this.SendVerificationCode(btnSendCode);
            };
            //获取验证码的底线
            var btnCodeLine = new NormalViewControl(Application.GetRealWidth(536), HdlControlResourse.BottomLineHeight, false);
            btnCodeLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnCodeLine.Y = frameCode.Height - HdlControlResourse.BottomLineHeight;
            frameCode.AddChidren(btnCodeLine);
            //联动底线
            txtCode.btnLine = btnCodeLine;
            //第一次密码的容器
            var framePswOne = new FrameLayout();
            framePswOne.X = Application.GetRealWidth(29);
            framePswOne.Y = Application.GetRealHeight(363);
            framePswOne.Width = frameEmail.Width;
            framePswOne.Height = frameEmail.Height;
            frameBack.AddChidren(framePswOne);
            //第一次密码的输入框
            var txtPswOne = new TextInputControl(700, 92, true);
            txtPswOne.X = Application.GetRealWidth(29);
            txtPswOne.Gravity = Gravity.CenterVertical;
            txtPswOne.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPWD);
            txtPswOne.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            txtPswOne.SecureTextEntry = true;
            framePswOne.AddChidren(txtPswOne);
            listControl.Add(txtPswOne);
            //第一次密码可视图标
            var btnPswOneHiden = new IconViewControl(92);
            btnPswOneHiden.X = Application.GetRealWidth(775);
            btnPswOneHiden.Gravity = Gravity.CenterVertical;
            btnPswOneHiden.SelectedImagePath = "Account/HidePwd.png";
            btnPswOneHiden.UnSelectedImagePath = "Account/UnhidePwd.png";
            btnPswOneHiden.IsSelected = true;
            framePswOne.AddChidren(btnPswOneHiden);
            btnPswOneHiden.ButtonClickEvent += (sender, e) =>
            {
                btnPswOneHiden.IsSelected = !btnPswOneHiden.IsSelected;
                txtPswOne.SecureTextEntry = btnPswOneHiden.IsSelected;
            };
            //第一次密码输入框的底线
            var btnPswOneLine = new NormalViewControl(framePswOne.Width, HdlControlResourse.BottomLineHeight, false);
            btnPswOneLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnPswOneLine.Y = framePswOne.Height - HdlControlResourse.BottomLineHeight;
            framePswOne.AddChidren(btnPswOneLine);
            //联动底线
            txtPswOne.btnLine = btnPswOneLine;
            //第二次密码的容器
            var framePswTwo = new FrameLayout();
            framePswTwo.X = Application.GetRealWidth(29);
            framePswTwo.Y = Application.GetRealHeight(530);
            framePswTwo.Width = frameEmail.Width;
            framePswTwo.Height = frameEmail.Height;
            frameBack.AddChidren(framePswTwo);
            //第二次密码的输入框
            var txtPswTwo = new TextInputControl(700, 92, true);
            txtPswTwo.X = Application.GetRealWidth(29);
            txtPswTwo.Gravity = Gravity.CenterVertical;
            txtPswTwo.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPWD);
            txtPswTwo.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            txtPswTwo.SecureTextEntry = true;
            framePswTwo.AddChidren(txtPswTwo);
            listControl.Add(txtPswTwo);
            //第二次密码可视图标
            var btnPswTwoHiden = new IconViewControl(92);
            btnPswTwoHiden.X = Application.GetRealWidth(775);
            btnPswTwoHiden.Gravity = Gravity.CenterVertical;
            btnPswTwoHiden.SelectedImagePath = "Account/HidePwd.png";
            btnPswTwoHiden.UnSelectedImagePath = "Account/UnhidePwd.png";
            btnPswTwoHiden.IsSelected = true;
            framePswTwo.AddChidren(btnPswTwoHiden);
            btnPswTwoHiden.ButtonClickEvent += (sender, e) =>
            {
                btnPswTwoHiden.IsSelected = !btnPswTwoHiden.IsSelected;
                txtPswTwo.SecureTextEntry = btnPswTwoHiden.IsSelected;
            };
            //第二次密码输入框的底线
            var btnPswTwoLine = new NormalViewControl(framePswTwo.Width, HdlControlResourse.BottomLineHeight, false);
            btnPswTwoLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnPswTwoLine.Y = framePswTwo.Height - HdlControlResourse.BottomLineHeight;
            framePswTwo.AddChidren(btnPswTwoLine);
            //联动底线
            txtPswTwo.btnLine = btnPswTwoLine;
            //验证码输入变更时
            txtCode.TextChangeEventHandler += (sender, value) =>
            {
                //检测注册按钮的状态
                this.CheckResetButtonStatu();
            };
            //密码输入变更时
            txtPswOne.TextChangeEventHandler += (sender, value) =>
            {
                //检测注册按钮的状态
                this.CheckResetButtonStatu();
            };
            txtPswTwo.TextChangeEventHandler += (sender, value) =>
            {
                //检测注册按钮的状态
                this.CheckResetButtonStatu();
            };
            //手机号输入变更时
            txtEmail.TextChangeEventHandler += (sender, value) =>
            {
                this.btnErrorMsg.Text = string.Empty;
                if (txtEmail.Text.Trim() != string.Empty)
                {
                    if (btnSendCode.CanClick == false)
                    {
                        btnSendCode.CanClick = true;
                        btnSendCode.BackgroundColor = 0xFFFC744B;
                    }
                }
                else
                {
                    btnSendCode.CanClick = false;
                    btnSendCode.BackgroundColor = 0xFFFEBCA9;
                }
            };
            return frameBack;
        }
        #endregion
        #region ■ 发送验证码_________________________
        /// <summary>
        /// 发送验证码
        /// </summary>
        /// <param name="control"></param>
        private void SendVerificationCode(NormalViewControl control)
        {
            //检测输入的账号
            if (this.CheckInputAccount(1) == false)
            {
                return;
            }
            //不能再点击
            control.CanClick = false;
            var errorMsg = string.Empty;
            //手机
            if (this.SelectIndex == 1)
            {
                this.strInputPhone = ListNowInputControl[0].Text.Trim();
                errorMsg = HdlAccountLogic.Current.SendVeriCodeToPhone("86", this.strInputPhone, VerCodeType.A找回密码);
            }
            //邮箱
            else
            {
                this.strInputEmail = ListNowInputControl[0].Text.Trim();
                errorMsg = HdlAccountLogic.Current.SendVeriCodeToEmail(this.strInputEmail, VerCodeType.A找回密码);
            }
            if (errorMsg == null)
            {
                //发送验证码成功,请注意查收
                this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.SendVerificationCodeSuccess));
                control.BackgroundColor = UserCenterColor.Current.White;
                control.TextColor = ZigbeeColor.Current.GXCTextBlackColor;
                //启动倒计时
                HdlThreadLogic.Current.RunThread(() =>
                {
                    //后重发
                    string txtValue = Language.StringByID(R.MyInternationalizationString.SendVerificationCodeAgain);
                    int timeOut = 60;
                    while (timeOut > 0 && control.Parent != null)
                    {
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            control.Text = timeOut + "s" + txtValue;
                        });
                        timeOut--;
                        System.Threading.Thread.Sleep(1000);
                    }
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        control.TextID = R.MyInternationalizationString.SendVerificationCode;
                        control.BackgroundColor = 0xFFFC744B;
                        control.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
                        control.CanClick = true;
                    });
                });
                return;
            }
            this.btnErrorMsg.Text = errorMsg;
            control.CanClick = true;
        }
        #endregion
        #region ■ 重置密码___________________________
        /// <summary>
        /// 重置密码
        /// </summary>
        private void ResetPassword()
        {
            //检测输入的账号
            if (this.CheckInputAccount(2) == false)
            {
                return;
            }
            //不能再点击
            this.btnReset.CanClick = false;
            var errorMsg = string.Empty;
            //手机
            if (this.SelectIndex == 1)
            {
                errorMsg = HdlAccountLogic.Current.ResetPassword(this.strInputPhone, ListNowInputControl[2].Text.Trim(), ListNowInputControl[1].Text.Trim());
            }
            //邮箱
            else
            {
                errorMsg = HdlAccountLogic.Current.ResetPassword(this.strInputEmail, ListNowInputControl[2].Text.Trim(), ListNowInputControl[1].Text.Trim());
            }
            if (errorMsg == null)
            {
                var form = new AccountResetPswResultForm();
                CommonPage.Instance.AddChidren(form);
                form.Show();
                return;
            }
            this.btnErrorMsg.Text = errorMsg;
            //可以再次点击
            this.btnReset.CanClick = true;
        }
        #endregion
        #region ■ 一般方法___________________________
        /// <summary>
        /// 检测重置按钮的状态
        /// </summary>
        private void CheckResetButtonStatu()
        {
            this.btnErrorMsg.Text = string.Empty;
            //只要有一个为空,则重置按钮不可用
            if (this.ListNowInputControl[0].Text.Trim() == string.Empty
                || this.ListNowInputControl[1].Text.Trim() == string.Empty
                || this.ListNowInputControl[2].Text.Trim() == string.Empty
                || this.ListNowInputControl[3].Text.Trim() == string.Empty)
            {
                this.btnReset.CanClick = false;
                return;
            }
            this.btnReset.CanClick = true;
        }
        /// <summary>
        /// 检测输入的账号
        /// </summary>
        /// <returns></returns>
        private bool CheckInputAccount(int div)
        {
            this.btnErrorMsg.Text = string.Empty;
            //手机
            if (this.SelectIndex == 1)
            {
                if (HdlCheckLogic.Current.CheckPhoneNumber(ListNowInputControl[0].Text.Trim(), CommonPage.PhoneZoneStr) == false)
                {
                    this.btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError;
                    return false;
                }
            }
            //邮箱
            else
            {
                if (HdlCheckLogic.Current.CheckEmail(ListNowInputControl[0].Text.Trim()) == false)
                {
                    this.btnErrorMsg.TextID = R.MyInternationalizationString.TheEmailError;
                    return false;
                }
            }
            if (div == 1)
            {
                //如果是发送验证码,则不需要检测密码
                return true;
            }
            //先判断2次密码输入是否一致
            if (ListNowInputControl[2].Text != ListNowInputControl[3].Text)
            {
                this.btnErrorMsg.TextID = R.MyInternationalizationString.TwoPasswordInconsistency;
                return false;
            }
            if (HdlCheckLogic.Current.CheckPwdLength(ListNowInputControl[2].Text.Trim()) == false)
            {
                this.btnErrorMsg.TextID = R.MyInternationalizationString.ThePWDLengthError;
                return false;
            }
            return true;
        }
        #endregion
    }
}