From 113c5f63528dcb0723c97dbf5d82a5ffb3b0f64b Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Thu, 25 Jan 2024 17:43:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=A7=86=E5=9B=BE-=E7=AC=A6=E5=8F=B7?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE):=20=E7=AC=A6=E5=8F=B7=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=85=8D=E7=BD=AE=E5=AD=97=E6=AE=B5=E6=9D=A5?= =?UTF-8?q?=E5=8C=BA=E5=88=86=E9=A2=9C=E8=89=B2#5735?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/ChartViewService.java | 3 +- .../service/chart/util/ChartDataBuild.java | 1 + .../view/official/dto/SymbolMapResultDTO.java | 2 + .../official/handler/SymbolMapRSHandler.java | 68 ++++++++++--------- .../view/official/impl/SymbolMapService.java | 7 +- .../src/components/views/DimensionExtItem.vue | 22 +----- .../src/de-base/lang/en.js | 3 +- .../src/de-base/lang/tw.js | 3 +- .../src/de-base/lang/zh.js | 3 +- .../src/views/antv/symbolmap/data.vue | 59 ++++++++++++++-- .../src/views/antv/symbolmap/index.vue | 7 +- 11 files changed, 115 insertions(+), 63 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 0716e5355f..62ec26c512 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -1058,9 +1058,10 @@ public class ChartViewService { }); xAxis.addAll(xAxisExtList); } + fieldMap.put("xAxis", xAxis); + fieldMap.put("xAxisExt", xAxisExt); fieldMap.put("extStack", extStack); fieldMap.put("extBubble", extBubble); - fieldMap.put("xAxis", xAxis); fieldMap.put("yAxis", yAxis); PluginViewParam pluginViewParam = buildPluginParam(fieldMap, fieldCustomFilter, extFilterList, ds, table, view, rowPermissionsTree, chartExtRequest); String sql = pluginViewSql(pluginViewParam, view); diff --git a/core/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java b/core/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java index a214d94f28..6c37eb0cba 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java +++ b/core/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java @@ -1087,6 +1087,7 @@ public class ChartDataBuild { List fields = new ArrayList<>(); List yfields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(fieldMap.get("xAxis"))) fields.addAll(fieldMap.get("xAxis")); + if (CollectionUtils.isNotEmpty(fieldMap.get("xAxisExt"))) fields.addAll(fieldMap.get("xAxisExt")); for (Map.Entry> entry : fieldMap.entrySet()) { if (StringUtils.equalsAny(entry.getKey(), keys)) { diff --git a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/dto/SymbolMapResultDTO.java b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/dto/SymbolMapResultDTO.java index 63a1189dc1..79286db563 100644 --- a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/dto/SymbolMapResultDTO.java +++ b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/dto/SymbolMapResultDTO.java @@ -12,6 +12,8 @@ public class SymbolMapResultDTO extends AxisChartDataAntVDTO { private String latitude; + private String color; + private Object busiValue; private Map properties; diff --git a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/handler/SymbolMapRSHandler.java b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/handler/SymbolMapRSHandler.java index cf0f335db4..c26b103066 100644 --- a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/handler/SymbolMapRSHandler.java +++ b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/handler/SymbolMapRSHandler.java @@ -35,11 +35,15 @@ public class SymbolMapRSHandler implements PluginViewRSHandler { public Map format(PluginViewParam pluginViewParam, List data, boolean isDrill) { List xAxis = new ArrayList<>(); List yAxis = new ArrayList<>(); + List xAxisExt = new ArrayList<>(); pluginViewParam.getPluginViewFields().forEach(pluginViewField -> { if (StringUtils.equals(pluginViewField.getTypeField(), "xAxis")) { xAxis.add(pluginViewField); } + if (StringUtils.equals(pluginViewField.getTypeField(), "xAxisExt")) { + xAxisExt.add(pluginViewField); + } if (StringUtils.equals(pluginViewField.getTypeField(), "yAxis") || trans2Ykeys.contains(pluginViewField.getTypeField())) { yAxis.add(pluginViewField); @@ -65,40 +69,31 @@ public class SymbolMapRSHandler implements PluginViewRSHandler { } if (CollectionUtils.isEmpty(yAxis)) { - for (int i = 0; i < xAxis.size() + yAxis.size(); i++) { - SymbolMapResultDTO axisChartDataDTO = new SymbolMapResultDTO(); - axisChartDataDTO.setField(a.toString()); - axisChartDataDTO.setName(a.toString()); + SymbolMapResultDTO axisChartDataDTO = new SymbolMapResultDTO(); + axisChartDataDTO.setField(a.toString()); + axisChartDataDTO.setName(a.toString()); - List dimensionList = new ArrayList<>(); - List quotaList = new ArrayList<>(); + List dimensionList = new ArrayList<>(); - for (int j = 0; j < xAxis.size(); j++) { - ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); - chartDimensionDTO.setId(xAxis.get(j).getId()); - chartDimensionDTO.setValue(row[j]); - dimensionList.add(chartDimensionDTO); - } - axisChartDataDTO.setDimensionList(dimensionList); - - int j = i - xAxis.size(); - if (j > -1) { - ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO(); - chartQuotaDTO.setId(yAxis.get(j).getId()); - quotaList.add(chartQuotaDTO); - axisChartDataDTO.setQuotaList(quotaList); - try { - axisChartDataDTO.setBusiValue(row[i]); - axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i])); - } catch (Exception e) { - axisChartDataDTO.setValue(new BigDecimal(0)); - } - axisChartDataDTO.setCategory(yAxis.get(j).getName()); - } - axisChartDataDTO.setLongitude(dimensionList.get(0).getValue()); - axisChartDataDTO.setLatitude(dimensionList.get(1).getValue()); - datalist.add(axisChartDataDTO); + for (int j = 0; j < xAxis.size(); j++) { + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(xAxis.get(j).getId()); + chartDimensionDTO.setValue(row[j]); + dimensionList.add(chartDimensionDTO); } + for (int j = 0; j < xAxisExt.size(); j++) { + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(xAxisExt.get(j).getId()); + chartDimensionDTO.setValue(row[j + xAxis.size()]); + dimensionList.add(chartDimensionDTO); + } + axisChartDataDTO.setDimensionList(dimensionList); + axisChartDataDTO.setLongitude(dimensionList.get(0).getValue()); + axisChartDataDTO.setLatitude(dimensionList.get(1).getValue()); + if (!xAxisExt.isEmpty()) { + axisChartDataDTO.setColor(dimensionList.get(2).getValue()); + } + datalist.add(axisChartDataDTO); } else { SymbolMapResultDTO axisChartDataDTO = new SymbolMapResultDTO(); axisChartDataDTO.setField(a.toString()); @@ -112,10 +107,19 @@ public class SymbolMapRSHandler implements PluginViewRSHandler { chartDimensionDTO.setValue(row[j]); dimensionList.add(chartDimensionDTO); } + for (int j = 0; j < xAxisExt.size(); j++) { + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(xAxisExt.get(j).getId()); + chartDimensionDTO.setValue(row[j + xAxis.size()]); + dimensionList.add(chartDimensionDTO); + } + if (!xAxisExt.isEmpty()) { + axisChartDataDTO.setColor(dimensionList.get(2).getValue()); + } axisChartDataDTO.setDimensionList(dimensionList); axisChartDataDTO.setQuotaList(new ArrayList<>()); axisChartDataDTO.setProperties(new HashMap<>()); - int step = xAxis.size(); + int step = xAxis.size() + xAxisExt.size(); Boolean valueFilled = false; for (int i = 0; i < yAxis.size(); i++) { PluginViewField curY = yAxis.get(i); diff --git a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/impl/SymbolMapService.java b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/impl/SymbolMapService.java index a4f5f46d5d..2f32c6c938 100644 --- a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/impl/SymbolMapService.java +++ b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/impl/SymbolMapService.java @@ -140,7 +140,10 @@ public class SymbolMapService extends ViewPluginService { if (CollectionUtils.isEmpty(xAxis) || xAxis.size() < 2) { return null; } - + List xAxisExt = pluginViewParam.getFieldsByType("xAxisExt"); + if (CollectionUtils.isNotEmpty(xAxisExt)) { + xAxisExt.forEach(i -> i.setTypeField("xAxis")); + } if (CollectionUtils.isNotEmpty(yAxis)) { String generateSQL = super.generateSQL(pluginViewParam); pluginViewParam.setPluginViewFields(pluginViewFields); @@ -149,7 +152,7 @@ public class SymbolMapService extends ViewPluginService { // 下面考虑符号大小为空的情况 String result = symbolMapStatHandler.build(pluginViewParam, this); - // pluginViewParam.setPluginViewFields(pluginViewFields); + pluginViewParam.setPluginViewFields(pluginViewFields); return result; } diff --git a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-frontend/src/components/views/DimensionExtItem.vue b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-frontend/src/components/views/DimensionExtItem.vue index 9a94cce8f1..a308acf622 100644 --- a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-frontend/src/components/views/DimensionExtItem.vue +++ b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-frontend/src/components/views/DimensionExtItem.vue @@ -1,6 +1,6 @@