ソースを参照

fix: 优化组件获取数据接口,兼容新的嵌套组件Tab

优化组件获取数据接口,兼容新的嵌套组件Tab
hong.yang 1 年間 前
コミット
cd912b5271

+ 40 - 1
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ChartTabChart.java

@@ -27,7 +27,7 @@ public class ChartTabChart extends Chart{
     public static class Customize {
 
         @ApiModelProperty(notes = "组件tab列表")
-        private List tabList;
+        private List<Tab> tabList;
 
         @ApiModelProperty(notes = "字体大小")
         private Integer fontSize;
@@ -38,6 +38,45 @@ public class ChartTabChart extends Chart{
         @ApiModelProperty(notes = "字体颜色")
         private String color;
 
+        @ApiModelProperty(notes = "线条颜色")
+        private String lineColor;
+
+        @ApiModelProperty(notes = "线条位置")
+        private String position;
+
+    }
+
+    @Data
+    public static class Tab {
+
+        @ApiModelProperty(notes = "组件编码")
+        private String chartCode;
+
+        @ApiModelProperty(notes = "组件名称")
+        private String name;
+
+        @ApiModelProperty(notes = "tab图表")
+        private Chart chart;
+    }
+
+    /**
+     * 获取内部图表
+     * @param chartCode
+     * @return
+     */
+    public Chart getInnerChart(String chartCode) {
+        if (customize == null) {
+            return null;
+        }
+        if (customize.tabList == null || customize.tabList.isEmpty()) {
+            return null;
+        }
+        for (Tab tab : customize.tabList) {
+            if (tab.getChartCode().equals(chartCode)) {
+                return tab.getChart();
+            }
+        }
+        return null;
     }
 
 }

+ 9 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/controller/ChartDataController.java

@@ -3,6 +3,7 @@ package com.gccloud.dataroom.core.module.chart.controller;
 import com.gccloud.dataroom.core.module.basic.dto.BasePageDTO;
 import com.gccloud.dataroom.core.module.basic.entity.PageEntity;
 import com.gccloud.dataroom.core.module.chart.bean.Chart;
+import com.gccloud.dataroom.core.module.chart.components.ChartTabChart;
 import com.gccloud.dataroom.core.module.chart.components.ScreenFlyMapChart;
 import com.gccloud.dataroom.core.module.chart.dto.ChartDataSearchDTO;
 import com.gccloud.dataroom.core.module.chart.service.BaseChartDataService;
@@ -111,6 +112,14 @@ public class ChartDataController {
             if (chart.getCode().equals(code)) {
                 return chart;
             }
+            // 如果是Tab图表,尝试从内部图表中获取
+            if (chart instanceof ChartTabChart) {
+                ChartTabChart chartTabChart = (ChartTabChart) chart;
+                Chart innerChart = chartTabChart.getInnerChart(code);
+                if (innerChart != null) {
+                    return innerChart;
+                }
+            }
         }
         return null;
     }