新增磁导航内部交管和信号交互界面
This commit is contained in:
@@ -37,21 +37,40 @@ public static class DeploymentCatalog
|
||||
["wms"] = new[] { "admin-config-facility", "admin-config-warehouse" },
|
||||
};
|
||||
|
||||
/// <summary>所有「可被选型控制」的页面 Key(Module → 页 映射值的并集)。</summary>
|
||||
/// <summary>
|
||||
/// 场景插件 → 平台页面 Key。磁导航选型会并入 <see cref="DeploymentProfile.SignalSceneId"/>,
|
||||
/// 从而点亮「数据中心」菜单(PLC 握手 + 磁条交管配置)。
|
||||
/// </summary>
|
||||
public static readonly IReadOnlyDictionary<string, string[]> SceneToPages =
|
||||
new Dictionary<string, string[]>(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
[DeploymentProfile.SignalSceneId] = new[] { "admin-data-center" },
|
||||
};
|
||||
|
||||
/// <summary>所有「可被选型控制」的页面 Key(Module / Scene 映射值的并集)。</summary>
|
||||
public static IReadOnlyCollection<string> TailorablePages()
|
||||
{
|
||||
var set = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
||||
foreach (var v in ModuleToPages.Values) foreach (var p in v) set.Add(p);
|
||||
foreach (var v in SceneToPages.Values) foreach (var p in v) set.Add(p);
|
||||
return set;
|
||||
}
|
||||
|
||||
/// <summary>当前部署画像下被「点亮」的可裁剪页(已启用 Module 映射到的页)。</summary>
|
||||
/// <summary>当前部署画像下被「点亮」的可裁剪页(已启用 Module / 激活场景映射到的页)。</summary>
|
||||
public static IReadOnlyCollection<string> EnabledPages(DeploymentProfile dp)
|
||||
{
|
||||
var set = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
||||
if (dp == null) return set;
|
||||
foreach (var m in dp.Modules ?? new List<string>())
|
||||
if (ModuleToPages.TryGetValue(m, out var ps)) foreach (var p in ps) set.Add(p);
|
||||
|
||||
var activeScenes = dp.ToLauncherSceneIds();
|
||||
foreach (var (sceneId, pages) in SceneToPages)
|
||||
{
|
||||
if (!activeScenes.Contains(sceneId, StringComparer.OrdinalIgnoreCase)) continue;
|
||||
foreach (var p in pages) set.Add(p);
|
||||
}
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user