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