|
|
@@ -43,7 +43,7 @@ public partial class AidopKanbanController
|
|
|
var values = await LoadDashboardValuesAsync(tenantId, factoryId, mc);
|
|
|
var sections = BuildDashboardSections(widgets, values, kpiByCode);
|
|
|
var tabs = BuildDashboardTabs(kpis);
|
|
|
- var navigationMode = ResolveNavigationMode(pageConfig?.NavigationMode, tabs.Count, mc);
|
|
|
+ var navigationMode = ResolveNavigationMode(pageConfig?.NavigationMode, tabs.Count);
|
|
|
|
|
|
return Ok(new
|
|
|
{
|
|
|
@@ -205,12 +205,14 @@ public partial class AidopKanbanController
|
|
|
return s is "tabs_by_l1" or "l1_cards" or "single_page" or "auto" ? s : "auto";
|
|
|
}
|
|
|
|
|
|
- private static string ResolveNavigationMode(string? navigationMode, int tabCount, string moduleCode)
|
|
|
+ /// <summary>
|
|
|
+ /// 全局默认:有 L1 指标则分层卡片(l1_cards),否则单页;显式配置优先于 auto。
|
|
|
+ /// </summary>
|
|
|
+ private static string ResolveNavigationMode(string? navigationMode, int tabCount)
|
|
|
{
|
|
|
var mode = NormalizeNavigationMode(navigationMode);
|
|
|
if (mode != "auto") return mode;
|
|
|
- if (string.Equals(moduleCode, "S1", StringComparison.OrdinalIgnoreCase) && tabCount > 0) return "l1_cards";
|
|
|
- return tabCount > 3 ? "tabs_by_l1" : "single_page";
|
|
|
+ return tabCount > 0 ? "l1_cards" : "single_page";
|
|
|
}
|
|
|
|
|
|
private static int NormalizeSpan(int span)
|