From 351bdda734832d821a9764b0cde8be5d83c4ec50 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期四, 01 十二月 2022 09:56:25 +0800 Subject: [PATCH] 2022年12月01日09:56:23 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs | 310 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 310 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs new file mode 100644 index 0000000..a328d0f --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs @@ -0,0 +1,310 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone.UserCenter +{ + /// <summary> + /// 鎺т欢鐨勯�昏緫 + /// </summary> + public class HdlControlLogic + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 鎺т欢鐨勯�昏緫 + /// </summary> + private static HdlControlLogic m_Current = null; + /// <summary> + /// 鎺т欢鐨勯�昏緫 + /// </summary> + public static HdlControlLogic Current + { + get + { + if (m_Current == null) + { + m_Current = new HdlControlLogic(); + } + return m_Current; + } + } + + #endregion + + #region 鈻� 璁$畻鎺т欢鐪熷疄澶у皬___________________ + + /// <summary> + /// 璁$畻鍥剧墖鐨勭湡瀹為珮瀹藉害 + /// </summary> + /// <param name="i_size"></param> + /// <returns></returns> + public int GetPictrueRealSize(int i_size) + { + return Application.GetRealWidth(i_size); + } + + /// <summary> + /// 璁$畻鐪熷疄瀹藉害(鍙兘浠ュ悗浼氬彉鍔�,鎵�浠ュ0鏄庡嚭鏉ユ湁鐢ㄥ) + /// </summary> + /// <param name="i_size"></param> + /// <returns></returns> + public int GetRealWidth(int i_size) + { + return Application.GetRealWidth(i_size); + } + + /// <summary> + /// 璁$畻鐪熷疄楂樺害搴�(鍙兘浠ュ悗浼氬彉鍔�,鎵�浠ュ0鏄庡嚭鏉ユ湁鐢ㄥ) + /// </summary> + /// <param name="i_size"></param> + /// <returns></returns> + public int GetRealHeight(int i_size) + { + return Application.GetRealHeight(i_size); + } + + /// <summary> + /// 璁$畻鐪熷疄澶у皬(杩欎釜涓滆タ鏈夌壒娈婄敤澶�,鑰冭檻鍒板姞闀垮瀷灞忓箷鐨勬帶浠�,璋冪敤姝ゆ柟娉�) + /// </summary> + /// <param name="i_size"></param> + /// <returns></returns> + public int GetRealSizeEx(int i_size) + { + return Application.GetRealWidth(i_size); + } + + #endregion + + #region 鈻� 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛╛____________ + + /// <summary> + /// 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛�(褰撹繕娌℃湁鎴块棿鏃�,浼氳繑鍥瀎alse) + /// </summary> + /// <param name="RoomKey">榛樿閫夋嫨鐨勬埧闂翠富閿�</param> + /// <param name="titleText">鏍囬淇℃伅</param> + /// <param name="SelectRoomEvent">纭閫夋嫨鎴块棿鐨勫洖璋冨嚱鏁�(鎴块棿ID,鎴块棿鍚�(浼氭嫾涓婃ゼ灞�))</param> + public bool ShowBottomListRoomView(string RoomKey, string titleText, Action<string, string> SelectRoomEvent) + { + //妤煎眰鍒楄〃鍚嶅瓧 + var listFloorName = new List<string>(); + //妤煎眰鍒楄〃涓婚敭 + var listFloorKeys = new List<string>(); + //鎴块棿鍚嶅瓧 + var listRoomName = new List<List<string>>(); + //鎴块棿涓婚敭 + var listRoomKeys = new List<List<string>>(); + + //鍒濆鍖栨埧闂村垪琛ㄦ暟鎹� + bool result = this.InitRoomListData(ref listFloorName, ref listFloorKeys, ref listRoomName, ref listRoomKeys); + if (result == false) + { + return false; + } + + var room = HdlRoomLogic.Current.GetRoomById(RoomKey); + int index1 = room != null ? listFloorKeys.IndexOf(room.FloorId) : 0; + if (index1 == -1) { index1 = 0; } + int index2 = listRoomKeys[index1].IndexOf(RoomKey); + if (index2 == -1) { index2 = 0; } + + if (listFloorKeys.Count == 0) + { + //鏃犳ゼ灞傛ā寮� + PickerView.Show(listRoomName[0], (value) => + { + RoomKey = listRoomKeys[0][value]; + string roomName = string.Empty; + if (RoomKey != string.Empty) + { + //鎴块棿 + roomName = listRoomName[0][value]; + } + else + { + roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom); + } + SelectRoomEvent?.Invoke(RoomKey, roomName); + + }, index2, titleText, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + } + else + { + //鏈夋ゼ灞傛ā寮� + PickerView.ShowSecondary(listFloorName, listRoomName, (value1, value2) => + { + RoomKey = listRoomKeys[value1][value2]; + string roomName = string.Empty; + if (RoomKey != string.Empty) + { + //妤煎眰+鎴块棿 + roomName = listFloorName[value1] + " " + listRoomName[value1][value2]; + } + else + { + roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom); + } + SelectRoomEvent?.Invoke(RoomKey, roomName); + + }, index1, index2, titleText, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + } + return true; + } + + /// <summary> + /// 鍒濆鍖栨埧闂村垪琛ㄦ暟鎹� + /// </summary> + /// <param name="listFloorName">妤煎眰鍒楄〃鍚嶅瓧</param> + /// <param name="listFloorKeys">妤煎眰鍒楄〃涓婚敭</param> + /// <param name="listRoomName">鎴块棿鍚嶅瓧</param> + /// <param name="listRoomKeys">鎴块棿涓婚敭</param> + private bool InitRoomListData(ref List<string> listFloorName, ref List<string> listFloorKeys, ref List<List<string>> listRoomName, ref List<List<string>> listRoomKeys) + { + var dicFloor = HdlRoomLogic.Current.GetFloorSortList(); + if (dicFloor.Count == 0) + { + //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤 + var listKeys = new List<string>() { "" }; + var listName = new List<string>() { Language.StringByID(R.MyInternationalizationString.uUndistributed) }; + //鎴块棿鍚嶅瓧鍜屼富閿敹闆� + var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty, false); + foreach (var myRoom in listRoom) + { + listName.Add(myRoom.Name); + listKeys.Add(myRoom.Id); + } + listRoomName.Add(listName); + listRoomKeys.Add(listKeys); + } + else + { + //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤(鏈垎閰嶆斁鍦ㄦゼ灞傞偅涓彍鍗�) + var listKeys = new List<string>() { "" }; + var listName = new List<string>() { "" }; + listRoomName.Add(listName); + listRoomKeys.Add(listKeys); + listFloorKeys.Add(""); + listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed)); + + foreach (string fKeys in dicFloor.Keys) + { + var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false); + if (listRoom.Count > 0) + { + //妤煎眰鍚嶅瓧鍜屼富閿敹闆� + listFloorKeys.Add(fKeys); + listFloorName.Add(dicFloor[fKeys]); + //鎴块棿鍚嶅瓧鍜屼富閿敹闆� + listName = new List<string>(); + listKeys = new List<string>(); + foreach (var myRoom in listRoom) + { + listName.Add(myRoom.Name); + listKeys.Add(myRoom.Id); + } + listRoomName.Add(listName); + listRoomKeys.Add(listKeys); + } + } + } + //娌℃湁寤虹珛鎴块棿 + if (listFloorKeys.Count == 0 && listRoomKeys.Count == 0) + { + return false; + } + return true; + } + + #endregion + + #region 鈻� 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛╛____________ + + /// <summary> + /// 鏄剧ず搴曢儴寮圭獥鐨勬椂闂村垪琛� + /// </summary> + /// <param name="hKey">閫夋嫨鐨勬椂闂翠富閿�</param> + /// <param name="mKey">閫夋嫨鐨勫垎閽熶富閿�</param> + /// <param name="titleText">鏍囬淇℃伅</param> + /// <param name="SelectTimeEvent">纭閫夋嫨鏃堕棿鐨勫洖璋冨嚱鏁� </param> + /// <param name="type">鏅捐。鏋舵椂闂� 锛�1鐑樺共锛�2:椋庡共锛�3娑堟瘨</param> + public bool ShowBottomListTimeView(string hKey, string mKey, string titleText, Action<string, string> SelectTimeEvent, int type) + { + //灏忔椂鍒楄〃鍚嶅瓧 + var listHourName = new List<string>(); + //灏忔椂鍒楄〃涓婚敭 + var listHourKeys = new List<string>(); + //鍒嗛挓鍚嶅瓧 + var listMinName = new List<List<string>>(); + //鍒嗛挓涓婚敭 + var listMinKeys = new List<List<string>>(); + var listKeys = new List<string>() { "" }; + var listName = new List<string>() { "" }; + if (type == 3) + { + //鍚嶅瓧鍜岄敭鏀堕泦 + for (int i = 1; i < 31; i++) + { + listName.Add(i.ToString()); + listKeys.Add(i.ToString()); + } + listMinName.Add(listName); + listMinKeys.Add(listKeys); + } + else + { + //鍚嶅瓧鍜岄敭鏀堕泦 + for (int i = 0; i < 4; i++) + { + listHourName.Add(i.ToString()); + listHourKeys.Add((i + 1).ToString()); + } + for (int i = 0; i < 60; i++) + { + listName.Add(i.ToString()); + listKeys.Add((i + 1).ToString()); + } + listMinName.Add(listName); + listMinKeys.Add(listKeys); + } + + int index1 = hKey != null ? int.Parse(hKey) : 0; + int index2 = mKey != null ? int.Parse(mKey) : 0; + + if (type == 3) + { + //鍙湁鍒嗛挓锛屾秷姣掓椂闂� + PickerView.Show( + listMinName[0], + (value) => + { + mKey = listMinKeys[0][value]; + SelectTimeEvent?.Invoke(mKey, listMinKeys[0][value]); + }, + index2, + titleText, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + } + else + { + //鏈夊皬鏃讹紝鍒嗛挓 + PickerView.ShowSecondary(listHourName, listMinName, (value1, value2) => + { + mKey = listMinKeys[value1][value2]; + string name = listHourName[value1] + " " + listMinName[value1][value2]; + SelectTimeEvent?.Invoke(mKey, name); + + }, index1, index2, titleText, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + } + return true; + } + #endregion + + } +} -- Gitblit v1.8.0