Ver código fonte

fix(kanban): default dynamic dashboards to L1 layered cards

Use l1_cards globally when L1 metrics exist so S2-S4 match S1 drill-down UX; bump server 1.0.159.

Co-authored-by: Cursor <cursoragent@cursor.com>
skygu 9 horas atrás
pai
commit
fa6ae2f7e9

+ 3 - 3
server/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj

@@ -11,9 +11,9 @@
     <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
     <Copyright>Admin.NET</Copyright>
     <Description>Admin.NET 通用权限开发平台</Description>
-    <AssemblyVersion>1.0.158</AssemblyVersion>
-    <FileVersion>1.0.158</FileVersion>
-    <Version>1.0.158</Version>
+    <AssemblyVersion>1.0.159</AssemblyVersion>
+    <FileVersion>1.0.159</FileVersion>
+    <Version>1.0.159</Version>
   </PropertyGroup>
 
   <ItemGroup>

+ 6 - 4
server/Plugins/Admin.NET.Plugin.AiDOP/Controllers/AidopKanbanController.DashboardPage.cs

@@ -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)