From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 14 十二月 2020 09:59:01 +0800
Subject: [PATCH] 请合并代码,完成晾衣架最终功能。

---
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectAcForm.cs |  381 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 381 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectAcForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectAcForm.cs
new file mode 100755
index 0000000..10f20ce
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectAcForm.cs
@@ -0,0 +1,381 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 绌鸿皟绫荤殑瀹夐槻鎶ヨ璁剧疆鐣岄潰
+    /// </summary>
+    public class AlarmTargetStatuSelectAcForm : DialogCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 缁撴潫閫夋嫨鐨勪簨浠�(key:鍏ㄩ儴鐘舵�佺殑缈昏瘧鏂囨湰)
+        /// </summary>
+        public Action<string, List<Safeguard.TaskListInfo>> FinishSelectEvent = null;
+        /// <summary>
+        /// 鍔ㄤ綔淇℃伅
+        /// </summary>
+        private Dictionary<int, Safeguard.TaskListInfo> dicTaskinfo = new Dictionary<int, Safeguard.TaskListInfo>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="i_listTaskInfo"></param>
+        public void ShowForm(CommonDevice device, List<Safeguard.TaskListInfo> i_listTaskInfo)
+        {
+            if (i_listTaskInfo != null)
+            {
+                foreach (var data in i_listTaskInfo)
+                {
+                    //浠ラ槻涓囦竴,鍓旈櫎涓嶅悎娉曟暟鎹�
+                    if (data.TaskType == 5)
+                    {
+                        dicTaskinfo[data.Data1] = data;
+                    }
+                }
+            }
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(device);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame(CommonDevice device)
+        {
+            //鐬庢悶鐨勪竴涓櫧妗�
+            var frameBack = new FrameLayout();
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Height = Application.GetRealHeight(1092);
+            frameBack.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
+            frameBack.Gravity = Gravity.BottomCenter;
+            bodyFrameLayout.AddChidren(frameBack);
+
+            //澶撮儴淇℃伅
+            var btnTitle = new NormalViewControl(frameBack.Width, Application.GetRealHeight(65), false);
+            btnTitle.Y = Application.GetRealHeight(34);
+            btnTitle.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
+            btnTitle.TextColor = UserCenterColor.Current.TextColor4;
+            btnTitle.TextSize = 16;
+            btnTitle.TextAlignment = TextAlignment.Center;
+            frameBack.AddChidren(btnTitle);
+
+            //鍙栨秷
+            var btnCancel = new NormalViewControl(200, 60, true);
+            btnCancel.X = Application.GetRealWidth(81);
+            btnCancel.Y = Application.GetRealHeight(39);
+            btnCancel.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnCancel.TextID = R.MyInternationalizationString.uCancel;
+            frameBack.AddChidren(btnCancel);
+            btnCancel.ButtonClickEvent += (sender, e) =>
+            {
+                this.CloseForm();
+            };
+
+            //瀹屾垚
+            var btnFinish = new NormalViewControl(200, 60, true);
+            btnFinish.X = Application.GetRealWidth(800);
+            btnFinish.Y = Application.GetRealHeight(39);
+            btnFinish.TextAlignment = TextAlignment.CenterRight;
+            btnFinish.TextColor = 0xfffb744a;
+            btnFinish.TextID = R.MyInternationalizationString.uFinish;
+            frameBack.AddChidren(btnFinish);
+
+            //绾�
+            var btnLine1 = new NormalViewControl(frameBack.Width, ControlCommonResourse.BottomLineHeight, false);
+            btnLine1.Y = Application.GetRealHeight(138);
+            btnLine1.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            frameBack.AddChidren(btnLine1);
+
+            //寮�
+            var rowOpen = new FrameRowControl();
+            rowOpen.Y = btnLine1.Bottom + Application.GetRealHeight(69);
+            rowOpen.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowOpen.RightOffset = ControlCommonResourse.XXLeft - Application.GetRealWidth(81);
+            frameBack.AddChidren(rowOpen);
+            var btnOpen = rowOpen.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleOpen), 400);
+            btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+            var btnOpenSelect = rowOpen.AddMostRightEmptyIcon(58, 58);
+            btnOpenSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            btnOpenSelect.Visible = false;
+            //搴曠嚎
+            var btnOpenLine = rowOpen.AddBottomLine();
+
+            //绌鸿皟閰嶇疆閫夋嫨绌洪棿
+            var pickerView = new UIPickerView();
+            pickerView.Y = rowOpen.Bottom;
+            pickerView.Height = Application.GetRealHeight(564);
+            frameBack.AddChidren(pickerView);
+            //杩欓噷鍔犱竴涓伄缃�,璁╁畠涓嶈兘鐐瑰嚮
+            var framePickerShaw = new FrameLayout();
+            framePickerShaw.Y = pickerView.Y;
+            framePickerShaw.Height = pickerView.Height;
+            framePickerShaw.BackgroundColor = 0x60ffffff;
+            frameBack.AddChidren(framePickerShaw);
+            //鎭掓俯鍣� Data1锛堟暟鍊硷級: 0鍔犵儹/1鍒跺喎/2鑷姩璋冭妭/3 璁剧疆宸ヤ綔妯″紡/4 璁剧疆鍔犵儹搴︽暟 5/璁剧疆鍒跺喎搴︽暟 6/璁剧疆椋庢墖妯″紡
+            //鎭掓俯鍣―ata2鏁板�煎涓嬶細  
+            //銆愬綋Data1=0|1|2鏃讹紝Data2涓鸿鍙樺寲鐨勫害鏁帮紝鍗曚綅锛�0.1鈩� 銆傘��
+            //銆愯嫢Data1=3锛孌ata2涓鸿璁惧畾鐨勭┖璋冩ā寮忥紙0-9锛夛紝0锛歰ff锛�1锛歛uto锛�3锛歝ool锛� 4锛歨eat 锛�5锛歟mergency heating, 6锛歱recooling锛�7锛歠an only 锛�8锛歞ry锛�9锛歴leep銆傘��
+            //銆愯嫢Data1=4|5锛孌ata2涓哄姞鐑垨鍒跺喎搴︽暟锛屽崟浣�0.01鎽勬皬搴︺�傘��
+            //銆愯嫢Data1=6锛孌ata2涓鸿璁惧畾鐨勯鎵囨ā寮忥紙0-6锛夛紝0锛歰ff锛�1锛歭ow锛�2锛歮edium锛�3锛歨igh锛�4锛歰n锛�5锛歛uto锛�6锛歴mart銆�
+            var listTemperature = new List<int>();
+            var listTemperatureStr = new List<string>();
+            for (int i = 16; i <= 32; i++)
+            {
+                listTemperature.Add(i);
+                listTemperatureStr.Add($"{i} 鈩�");
+            }
+            //妯″紡
+            var listMode = new List<int> { 1, 3, 4, 7, 8 };
+            var listModeStr = new List<string> {
+                Language.StringByID(R.MyInternationalizationString.Mode_Auto),
+                Language.StringByID(R.MyInternationalizationString.Mode_Cool),
+                Language.StringByID(R.MyInternationalizationString.Mode_Heat),
+                Language.StringByID(R.MyInternationalizationString.Mode_FanOnly),
+                Language.StringByID(R.MyInternationalizationString.Mode_Dry)
+            };
+            //椋庨��
+            var listFan = new List<int> { 1, 2, 3 };
+            var listFanStr = new List<string> {
+                Language.StringByID(R.MyInternationalizationString.Fan_Low),
+                Language.StringByID(R.MyInternationalizationString.Fan_Middle),
+                Language.StringByID(R.MyInternationalizationString.Fan_Height)
+            };
+            pickerView.setNPicker(listTemperatureStr, listModeStr, listFanStr);
+            //绌鸿皟鎺т欢榛樿涓虹伆鑹�
+            pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 0);
+            pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 1);
+            pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 2);
+
+            //鎺т欢閫夋嫨浜嬩欢
+            int selectTemperatureIndex = 0;
+            int selectModelIndex = 0;
+            int selectFanIndex = 0;
+            pickerView.OnSelectChangeEvent = (value1, value2, value3) =>
+            {
+                //鏇存敼绱㈠紩
+                selectTemperatureIndex = value1;
+                selectModelIndex = value2;
+                selectFanIndex = value3;
+            };
+            //搴曠嚎
+            var btnPickerLine = new NormalViewControl(btnOpenLine.Width, ControlCommonResourse.BottomLineHeight, false);
+            btnPickerLine.X = btnOpenLine.X;
+            btnPickerLine.Y = pickerView.Bottom;
+            btnPickerLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            frameBack.AddChidren(btnPickerLine);
+
+            //鍏�
+            var rowClose = new FrameRowControl();
+            rowClose.Y = btnPickerLine.Bottom + Application.GetRealHeight(12);
+            rowClose.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowClose.RightOffset = ControlCommonResourse.XXLeft - Application.GetRealWidth(81);
+            frameBack.AddChidren(rowClose);
+            var btnClose = rowClose.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleClose), 400);
+            btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+            var btnCloseSelect = rowClose.AddMostRightEmptyIcon(58, 58);
+            btnCloseSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            btnCloseSelect.Visible = false;
+
+            //鐐瑰嚮寮�
+            rowOpen.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnOpenSelect.Visible == true)
+                {
+                    //绌鸿皟鎺т欢鐗规晥
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 0);
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 1);
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 2);
+                    pickerView.setCurrentItems(selectTemperatureIndex, selectModelIndex, selectFanIndex);
+                    framePickerShaw.Visible = true;
+
+                    //鍙栨秷,寮� 涓嶅彲鐢�
+                    btnOpenSelect.Visible = false;
+                    btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+                }
+                else
+                {
+                    //绌鸿皟鎺т欢鐗规晥
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextColor1, 0);
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextColor1, 1);
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextColor1, 2);
+                    pickerView.setCurrentItems(selectTemperatureIndex, selectModelIndex, selectFanIndex);
+                    framePickerShaw.Visible = false;
+
+                    //閫夋嫨鍥炬爣鍒囨崲
+                    btnOpenSelect.Visible = true;
+                    btnCloseSelect.Visible = false;
+
+                    //寮� 鍙敤
+                    btnOpen.TextColor = UserCenterColor.Current.TextColor1;
+                    //鍏� 涓嶅彲鐢�
+                    btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+                }
+            };
+            //鐐瑰嚮鍏�
+            rowClose.ButtonClickEvent += (sender, e) =>
+            {
+                if (framePickerShaw.Visible == false)
+                {
+                    //绌鸿皟鎺т欢鐗规晥
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 0);
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 1);
+                    pickerView.setTextColorCenter(UserCenterColor.Current.TextGrayColor1, 2);
+                    pickerView.setCurrentItems(selectTemperatureIndex, selectModelIndex, selectFanIndex);
+                    framePickerShaw.Visible = true;
+                }
+                if (btnCloseSelect.Visible == true)
+                {
+                    //鍙栨秷,鍏� 涓嶅彲鐢�
+                    btnCloseSelect.Visible = false;
+                    btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+                }
+                else
+                {
+                    //閫夋嫨鍥炬爣鍒囨崲
+                    btnCloseSelect.Visible = true;
+                    btnOpenSelect.Visible = false;
+
+                    //鍏� 鍙敤
+                    btnClose.TextColor = UserCenterColor.Current.TextColor1;
+                    //寮� 涓嶅彲鐢�
+                    btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+                }
+            };
+
+            //妫�娴嬬┖璋冪殑鎵撳紑鐘舵�� 0:鍏抽棴 1:鎵撳紑
+            int openStatu = -1;
+            foreach (var data1 in dicTaskinfo.Keys)
+            {
+                var Taskinfo = dicTaskinfo[data1];
+                if (data1 == 3)
+                {
+                    if (Taskinfo.Data2 == 0)
+                    {
+                        //鍏崇姸鎬�
+                        openStatu = 0;
+                    }
+                    else
+                    {
+                        //妯″紡
+                        selectModelIndex = listMode.IndexOf(Taskinfo.Data2);
+                        openStatu = 1;
+                    }
+                }
+                else if (data1 == 6)
+                {
+                    //椋庨��
+                    selectFanIndex = listFan.IndexOf(Taskinfo.Data2);
+                    openStatu = 1;
+                }
+                if (data1 == 4 || data1 == 5)
+                {
+                    //娓╁害
+                    selectTemperatureIndex = listTemperature.IndexOf(Taskinfo.Data2 / 100);
+                    openStatu = 1;
+                }
+            }
+
+            //璁剧疆寮�鐨勯粯璁ゅ��
+            if (openStatu == 1)
+            {
+                //璁剧疆绌鸿皟鐨勫垵濮嬪��
+                pickerView.setCurrentItems(selectTemperatureIndex, selectModelIndex, selectFanIndex);
+                rowOpen.ButtonClickEvent?.Invoke(null, null);
+            }
+            else if (openStatu == 0)
+            {
+                rowClose.ButtonClickEvent?.Invoke(null, null);
+            }
+
+            //瀹屾垚浜嬩欢
+            btnFinish.ButtonClickEvent += (sender, e) =>
+            {
+                var listData = new List<Safeguard.TaskListInfo>();
+                //鍏�
+                if (btnCloseSelect.Visible == true)
+                {
+                    var taskInfo = new Safeguard.TaskListInfo();
+                    taskInfo.TaskType = 5;
+                    taskInfo.Data1 = 3;
+                    taskInfo.Data2 = 0;
+                    listData.Add(taskInfo);
+                }
+                //寮�
+                else if (btnOpenSelect.Visible == true)
+                {
+                    //閫侀
+                    var taskInfo = new Safeguard.TaskListInfo();
+                    taskInfo.TaskType = 5;
+                    taskInfo.Data1 = 6;
+                    taskInfo.Data2 = listFan[selectFanIndex];
+                    listData.Add(taskInfo);
+
+                    //妯″紡
+                    var taskInfo2 = new Safeguard.TaskListInfo();
+                    taskInfo2.TaskType = 5;
+                    taskInfo2.Data1 = 3;
+                    taskInfo2.Data2 = listMode[selectModelIndex];
+                    listData.Add(taskInfo2);
+
+                    //娓╁害
+                    var taskInfo3 = new Safeguard.TaskListInfo();
+                    taskInfo3.TaskType = 5;
+                    taskInfo3.Data2 = listTemperature[selectTemperatureIndex] * 100;
+                    //1:鑷姩 3:鍒跺喎 4:鍒剁儹 7:閫侀 8:闄ゆ箍
+
+                    //鑷姩
+                    if (listMode[selectModelIndex] == 1)
+                    {
+                        taskInfo3.Data1 = 7;
+                        listData.Add(taskInfo3);
+                    }
+                    //鍒剁儹
+                    else if (listMode[selectModelIndex] == 4)
+                    {
+                        taskInfo3.Data1 = 4;
+                        listData.Add(taskInfo3);
+                    }
+                    //鍒跺喎锛岄櫎婀块粯璁ら兘鏄� 鍒跺喎
+                    else if (listMode[selectModelIndex] == 3 || listMode[selectModelIndex] == 8)
+                    {
+                        taskInfo3.Data1 = 5;
+                        listData.Add(taskInfo3);
+                    }
+                    //閫侀娌℃湁娓╁害鐨勬蹇�
+                }
+
+                //鑾峰彇鐘舵�佺殑鏄剧ず鏂囨湰
+                string statuText = HdlSafeguardLogic.Current.GetAdjustTargetStatuText(listData);
+                this.FinishSelectEvent(statuText, listData);
+
+                this.CloseForm();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            this.FinishSelectEvent = null;
+            base.CloseFormBefore();
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0