xm
2021-12-01 6d73bf6e816570291865674bef8bce8972e4de3f
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddButton.cs
@@ -12,12 +12,17 @@
        }
        public void Show(Control control)
        {
            #region 界面布局
            this.BackgroundColor = CSS.CSS_Color.viewMiddle;
            PirDevice.View.TopView topView = new View.TopView();
            topView.topNameBtn.TextID = StringId.tianjiayaokongqi;
            this.AddChidren(topView.FLayoutView());
            topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); };
            topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
            {
                RemoveFromParent();
            };
            FrameLayout editfLayout = new FrameLayout
            {
@@ -108,6 +113,13 @@
            ///下一步的点击事件
            saveBtn.MouseUpEventHandler += (sender, e) =>
            {
                if (control.status.Count > 29)
                {
                    ///超出30个红外宝内存满了会出现异常
                    new PirMethod().ErrorShow(null, "添加按钮超出30个");
                    return;
                }
                var texts = editText.Text.Trim();
                if (string.IsNullOrEmpty(editText.Text))
                {
@@ -122,74 +134,81 @@
                }
                //new引导界面
                View.ReplicationView replication = new View.ReplicationView();
               // MainPage.BasePageView.AddChidren(replication);
                replication.Show(this);
               // MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                //添加数据对象
                Entity.AttributesStatus buttonObj = new Entity.AttributesStatus();
                buttonObj.key = "key" + control.status.Count.ToString();
                string keyName = GetKeyName(control.status);
                buttonObj.key = keyName;
                buttonObj.value = texts;
                PirSend.CodeStudy(control, buttonObj, (responsePackNew) =>
                PirSend.CodeStudy(control, buttonObj, (mqttdate) =>
                {
                    if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                    if (mqttdate != null)
                    {
                        Method method = new Method();
                        Method.buttondata = "";
                        var mqttdate = method.MqttDate("按键", control.sid, 25);
                        if (mqttdate != null)
                        //休眠是为显示引导界面
                        // System.Threading.Thread.Sleep(3000);
                        //移除添加按钮引导界面
                        replication.RemView();
                        var buttonName = control.status.Find((c) => c.value == buttonObj.value);
                        if (buttonName == null)
                        {
                            //休眠是为显示引导界面
                            // System.Threading.Thread.Sleep(3000);
                            //移除添加按钮引导界面
                            replication.RemView();
                            var buttonName = control.status.Find((c) => c.value == buttonObj.value);
                            if (buttonName == null)
                            {
                                //添加数据
                                control.status.Add(buttonObj);
                            }
                            //移除添加按钮界面
                            this.RemoveFromParent();
                            for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--)
                            {
                                var view = MainPage.BasePageView.GetChildren(i);
                                if (view.GetType() == typeof(AddControl))
                                {
                                    //new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiachenggong));
                                    view.RemoveFromParent();
                                }
                            }
                            //加载数据界面
                            AddControl addControl = new AddControl();
                            MainPage.BasePageView.AddChidren(addControl);
                            addControl.Show(control);
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            //添加数据
                            control.status.Add(buttonObj);
                        }
                        else
                        {
                            replication.RemView();
                            new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiashibai));
                        }
                        //移除添加按钮界面
                        this.RemoveFromParent();
                        //移除之前可能存在的界面
                        PirMethod.RemoveView("AddControl");
                        //加载数据界面
                        AddControl addControl = new AddControl();
                        MainPage.BasePageView.AddChidren(addControl);
                        addControl.Show(control);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                    else
                    {
                        Method method = new Method();
                        method.ErrorShow(responsePackNew, "");
                        replication.RemView();
                        PirMethod method = new PirMethod();
                        method.ErrorShow(null, "添加失败");
                    }
                });
            };
        }
        /// <summary>
        /// 移除界面
        /// </summary>
        public override void RemoveFromParent()
        {
            //刷新指定界面
            PirMethod.RefreshView("PirMain");
            base.RemoveFromParent();
        }
        /// <summary>
        /// 查找唯一健名值
        /// </summary>
        /// <param name="listKeyName">已经存在健名列表</param>
        /// <returns></returns>
        private string GetKeyName(List<Entity.AttributesStatus> listKeyName)
        {
            //目前红外宝学习按钮最多是30个;
            for (int i = 0; i < 50; i++)
            {
                string keyName = "key" + i.ToString();
                ///查找是否存在
                var currKeyName = listKeyName.Find((c) => c.key == keyName);
                if (currKeyName == null)
                {
                    return keyName;
                }
            }
            return "key" + listKeyName.Count;
        }
    }
}