| | |
| | | } |
| | | |
| | | popupWindowQueue.Add(popupWindow); |
| | | popupWindowQueue.Sort((x, y) => y.isNeedHomeWin.CompareTo(x.isNeedHomeWin)); |
| | | popupWindowQueue.Sort((x, y) => |
| | | { |
| | | // 1. 首先按 isNeedHomeWin 排序 (true 排在前面) |
| | | int homeWinCompare = y.isNeedHomeWin.CompareTo(x.isNeedHomeWin); |
| | | if (homeWinCompare != 0) |
| | | return homeWinCompare; |
| | | |
| | | // 2. 获取各自的 WinOrder (通过 WinName 查找配置表) |
| | | int xOrder = GetWinOrder(x.window); |
| | | int yOrder = GetWinOrder(y.window); |
| | | int orderCompare = xOrder.CompareTo(yOrder); |
| | | if (orderCompare != 0) |
| | | return orderCompare; |
| | | |
| | | // 3. WinOrder 相同时,按 ID 排序 (ID 小的排前面) |
| | | return x.functionId.CompareTo(y.functionId); |
| | | }); |
| | | } |
| | | |
| | | private int GetWinOrder(string winName) |
| | | { |
| | | var allConfigs = PopWinOrderConfig.GetValues(); |
| | | foreach (var config in allConfigs) |
| | | { |
| | | if (config.WinName == winName) |
| | | { |
| | | return config.WinOrder; |
| | | } |
| | | } |
| | | return int.MinValue; |
| | | } |
| | | |
| | | /// <summary> |