黄学彪
2020-09-22 ade5917841b0fdcb1df7353ef7c56b1a1bdc9282
ZigbeeApp/Shared/Phone/UserCenter/Suggestion/FeedbackForm.cs
@@ -11,6 +11,15 @@
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 0:Bug、1:优化、2:新需求
        /// </summary>
        private int typeMode = 0;
        /// <summary>
        /// 意见反馈剩余次数
        /// </summary>
        private int suggestionCount = 3;
        #endregion
        #region ■ 初始化_____________________________
@@ -35,19 +44,312 @@
            //清空bodyFrame
            this.ClearBodyFrame();
            //提交
            var btnSubmit = new BottomClickButton();
            var frameInput = new FrameLayout();
            frameInput.Height = Application.GetRealHeight(576);
            frameInput.BackgroundColor = UserCenterColor.Current.White;
            bodyFrameLayout.AddChidren(frameInput);
            var txtInput = new TextInputControl(bodyFrameLayout.Width - ControlCommonResourse.XXLeft * 2, Application.GetRealHeight(473), false);
            //txtInput.PlaceholderTextColor=UserCenterColor.Current
            //字数
            var btnFild = new NormalViewControl(150, 60, true);
            btnFild.X = frameInput.Width - ControlCommonResourse.XXLeft - Application.GetRealWidth(150);
            btnFild.Y = Application.GetRealHeight(503);
            btnFild.TextColor = UserCenterColor.Current.TextGrayColor1;
            btnFild.TextSize = 12;
            btnFild.Text = "500";
            btnFild.TextAlignment = TextAlignment.CenterRight;
            frameInput.AddChidren(btnFild);
            //您的反馈和意见会让我们变得更好
            var txtInput = new EditTextView();
            txtInput.Width = bodyFrameLayout.Width - ControlCommonResourse.XXLeft * 2;
            txtInput.Height = Application.GetRealHeight(470);
            txtInput.Y = Application.GetRealHeight(32);
            txtInput.TextAlignment = TextAlignment.TopLeft;
            txtInput.Gravity = Gravity.CenterHorizontal;
            txtInput.TextColor = UserCenterColor.Current.TextColor1;
            txtInput.PlaceholderTextColor = UserCenterColor.Current.TextGrayColor1;
            txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uYouSuggestionMsg);
            frameInput.AddChidren(txtInput);
            txtInput.InitIosPlaceholderUILabelWithHeight(Application.GetRealHeight(60));
            txtInput.TextChangeEventHandler += (sender, txtvalue) =>
            {
                if (this.suggestionCount <= 0)
                {
                    return;
                }
                int length = txtvalue.Length;
                if (length == 0)
                {
                    if (btnSubmit.CanClick == true) { btnSubmit.CanClick = false; }
                }
                else
                {
                    if (btnSubmit.CanClick == false)
                    {
                        //变灰色字体
                        btnFild.TextColor = UserCenterColor.Current.TextGrayColor1;
                        btnSubmit.CanClick = true;
                    }
                }
                btnFild.Text = (500 - length).ToString();
                if (length > 500)
                {
                    if (btnSubmit.CanClick == true)
                    {
                        btnSubmit.CanClick = false;
                        //变红色字体
                        btnFild.TextColor = Common.ZigbeeColor.Current.GXCTextRed;
                    }
                }
            };
            var framType = new FrameLayout();
            framType.Height = Application.GetRealHeight(150);
            framType.Y = frameInput.Bottom + Application.GetRealHeight(23);
            framType.BackgroundColor = UserCenterColor.Current.White;
            bodyFrameLayout.AddChidren(framType);
            IconViewControl btnBugIcon = null;
            IconViewControl btnOptimizationIcon = null;
            IconViewControl btnDemandIcon = null;
            //反馈类型
            var btnType = new NormalViewControl(220, 60, true);
            btnType.X = ControlCommonResourse.XXLeft;
            btnType.Gravity = Gravity.CenterVertical;
            btnType.TextID = R.MyInternationalizationString.uSuggestionType;
            framType.AddChidren(btnType);
            //Bug
            var frameBug = new FrameLayoutStatuControl();
            frameBug.UseClickStatu = false;
            frameBug.Width = Application.GetRealWidth(200);
            frameBug.X = Application.GetRealWidth(314);
            framType.AddChidren(frameBug);
            btnBugIcon = new IconViewControl(58);
            btnBugIcon.UnSelectedImagePath = "Item/ItemUnSelected.png";
            btnBugIcon.SelectedImagePath = "Item/ItemSelected.png";
            btnBugIcon.Gravity = Gravity.CenterVertical;
            frameBug.AddChidren(btnBugIcon);
            btnBugIcon.IsSelected = true;
            var btnBug = new NormalViewControl(140, 60, true);
            btnBug.X = btnBugIcon.Right + Application.GetRealWidth(12);
            btnBug.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnBug.Gravity = Gravity.CenterVertical;
            btnBug.Text = "Bug";
            frameBug.AddChidren(btnBug);
            frameBug.ButtonClickEvent += (sender, e) =>
            {
                if (btnBugIcon.IsSelected == false)
                {
                    btnBugIcon.IsSelected = true;
                    btnOptimizationIcon.IsSelected = false;
                    btnDemandIcon.IsSelected = false;
                    this.typeMode = 0;
                }
            };
            //优化
            var frameOptimization = new FrameLayoutStatuControl();
            frameOptimization.UseClickStatu = false;
            frameOptimization.Width = Application.GetRealWidth(200);
            frameOptimization.X = Application.GetRealWidth(524);
            framType.AddChidren(frameOptimization);
            btnOptimizationIcon = new IconViewControl(58);
            btnOptimizationIcon.UnSelectedImagePath = "Item/ItemUnSelected.png";
            btnOptimizationIcon.SelectedImagePath = "Item/ItemSelected.png";
            btnOptimizationIcon.Gravity = Gravity.CenterVertical;
            frameOptimization.AddChidren(btnOptimizationIcon);
            var btnOptimization = new NormalViewControl(140, 60, true);
            btnOptimization.X = btnOptimizationIcon.Right + Application.GetRealWidth(12);
            btnOptimization.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnOptimization.Gravity = Gravity.CenterVertical;
            btnOptimization.TextID = R.MyInternationalizationString.uOptimization;
            frameOptimization.AddChidren(btnOptimization);
            frameOptimization.ButtonClickEvent += (sender, e) =>
            {
                if (btnOptimizationIcon.IsSelected == false)
                {
                    btnOptimizationIcon.IsSelected = true;
                    btnBugIcon.IsSelected = false;
                    btnDemandIcon.IsSelected = false;
                    this.typeMode = 1;
                }
            };
            //新需求
            var frameDemand = new FrameLayoutStatuControl();
            frameDemand.UseClickStatu = false;
            frameDemand.Width = Application.GetRealWidth(200);
            frameDemand.X = Application.GetRealWidth(734);
            framType.AddChidren(frameDemand);
            btnDemandIcon = new IconViewControl(58);
            btnDemandIcon.UnSelectedImagePath = "Item/ItemUnSelected.png";
            btnDemandIcon.SelectedImagePath = "Item/ItemSelected.png";
            btnDemandIcon.Gravity = Gravity.CenterVertical;
            frameDemand.AddChidren(btnDemandIcon);
            var btnDemand = new NormalViewControl(140, 60, true);
            btnDemand.X = btnDemandIcon.Right + Application.GetRealWidth(12);
            btnDemand.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnDemand.Gravity = Gravity.CenterVertical;
            btnDemand.TextID = R.MyInternationalizationString.uNewDemand;
            frameDemand.AddChidren(btnDemand);
            frameDemand.ButtonClickEvent += (sender, e) =>
            {
                if (btnDemandIcon.IsSelected == false)
                {
                    btnDemandIcon.IsSelected = true;
                    btnBugIcon.IsSelected = false;
                    btnOptimizationIcon.IsSelected = false;
                    this.typeMode = 2;
                }
            };
            var frameEmail = new FrameLayout();
            frameEmail.Height = Application.GetRealHeight(150);
            frameEmail.BackgroundColor = UserCenterColor.Current.White;
            frameEmail.Y = framType.Bottom + Application.GetRealHeight(23);
            bodyFrameLayout.AddChidren(frameEmail);
            //联系方式
            var btnContact = new NormalViewControl(220, 60, true);
            btnContact.X = ControlCommonResourse.XXLeft;
            btnContact.Gravity = Gravity.CenterVertical;
            btnContact.TextID = R.MyInternationalizationString.uContactInformation;
            frameEmail.AddChidren(btnContact);
            var txtEmail = new TextInputControl(720, 60, true);
            txtEmail.X = Application.GetRealWidth(314);
            txtEmail.Gravity = Gravity.CenterVertical;
            txtEmail.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputYourContactInformation);
            frameEmail.AddChidren(txtEmail);
            //提交
            btnSubmit.oldBackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
            btnSubmit.TextID = R.MyInternationalizationString.uSubmit;
            bodyFrameLayout.AddChidren(btnSubmit);
            btnSubmit.CanClick = false;
            btnSubmit.ButtonClickEvent += (sender, e) =>
            {
                //如果是虚拟住宅,则此功能无效
                if (Common.Config.Instance.Home.IsVirtually == true)
                {
                    return;
                }
                //上传意见
                this.UploadSuggestion(txtInput.Text, txtEmail.Text);
            };
            var strFile = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Common.Config.Instance.Guid, DirNameResourse.SuggestionFile);
            if (System.IO.File.Exists(strFile) == false)
            {
                return;
            }
            var data = UserCenterLogic.LoadFileContent(strFile);
            if (data != null)
            {
                var strNowData = DateTime.Now.ToString("yyyyMMdd");
                if (strNowData != data.Substring(1))
                {
                    this.suggestionCount = 3;
                    return;
                }
                //剩余次数
                this.suggestionCount = Convert.ToInt32(data.Substring(0, 1));
                if (this.suggestionCount <= 1)
                {
                    btnSubmit.TextID = R.MyInternationalizationString.uSubmitCountIsOverMsg;
                }
            }
        }
        #endregion
        #region ■ 一般方法___________________________
        #region ■ 上传意见___________________________
        /// <summary>
        /// 上传意见
        /// </summary>
        /// <param name="strContent"></param>
        /// <param name="email"></param>
        private void UploadSuggestion(string strContent, string email)
        {
            HdlThreadLogic.Current.RunThread(() =>
            {
                var pra = new
                {
                    RequestVersion = Common.CommonPage.RequestVersion,
                    LoginAccessToken = Common.Config.Instance.Token,
                    Content = strContent,
                    OpinionFeedbackType = this.typeMode,
                    Email = email
                };
                var result = UserCenterLogic.GetResultStatuByRequestHttps("App/AddOpinionFeedback", false, pra);
                if (result == true)
                {
                    //保存次数
                    this.suggestionCount--;
                    var strFile = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Common.Config.Instance.Guid, DirNameResourse.SuggestionFile);
                    var byteData = System.Text.Encoding.UTF8.GetBytes(this.suggestionCount + DateTime.Now.ToString("yyyyMMdd"));
                    //写入内容
                    Shared.IO.FileUtils.WriteFileByBytes(strFile, byteData);
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        //显示成功的界面
                        this.ShowSuccessMsg();
                    });
                }
            });
        }
        /// <summary>
        /// 显示成功的界面
        /// </summary>
        private void ShowSuccessMsg()
        {
            var frameBack = new FrameLayout();
            frameBack.BackgroundColor = 0x80000000;
            this.AddChidren(frameBack);
            var frameMsg = new FrameLayout();
            frameMsg.BackgroundColor = UserCenterColor.Current.White;
            frameMsg.Width = Application.GetRealWidth(622);
            frameMsg.Height = Application.GetRealHeight(317);
            frameMsg.Radius = (uint)Application.GetRealHeight(17);
            frameMsg.Gravity = Gravity.CenterHorizontal;
            frameMsg.Y = Application.GetRealHeight(792);
            frameBack.AddChidren(frameMsg);
            //提示
            var btnTitle = new NormalViewControl(492, 65, true);
            btnTitle.Y = Application.GetRealHeight(68);
            btnTitle.Gravity = Gravity.CenterHorizontal;
            btnTitle.TextID = R.MyInternationalizationString.NormalTip;
            btnTitle.TextAlignment = TextAlignment.Center;
            btnTitle.TextColor = 0xFF333443;
            frameMsg.AddChidren(btnTitle);
            //您的反馈已成功提交
            var btnSuccess = new NormalViewControl(frameMsg.Width, Application.GetRealHeight(60), false);
            btnSuccess.Y = Application.GetRealHeight(166);
            btnSuccess.TextAlignment = TextAlignment.Center;
            btnSuccess.TextColor = UserCenterColor.Current.TextGrayColor1;
            btnSuccess.TextID = R.MyInternationalizationString.uSubmitSuccessMsg;
            frameMsg.AddChidren(btnSuccess);
            HdlThreadLogic.Current.RunThread(() =>
            {
                System.Threading.Thread.Sleep(2000);
                HdlThreadLogic.Current.RunMain(() =>
                {
                    this.CloseForm();
                });
            });
        }
        #endregion
    }