forked from github/dataease
refactor(视图): 优化视图计算字段交互
This commit is contained in:
parent
1037623a08
commit
eee3c25d63
@ -578,8 +578,8 @@ public class ChartViewService {
|
|||||||
List<ChartViewFieldDTO> xAxis = gson.fromJson(view.getXAxis(), tokenType);
|
List<ChartViewFieldDTO> xAxis = gson.fromJson(view.getXAxis(), tokenType);
|
||||||
List<ChartViewFieldDTO> xAxisExt = gson.fromJson(view.getXAxisExt(), tokenType);
|
List<ChartViewFieldDTO> xAxisExt = gson.fromJson(view.getXAxisExt(), tokenType);
|
||||||
if (StringUtils.equalsIgnoreCase(view.getType(), "table-pivot")
|
if (StringUtils.equalsIgnoreCase(view.getType(), "table-pivot")
|
||||||
|| StringUtils.containsIgnoreCase(view.getType(), "group")
|
|| StringUtils.containsIgnoreCase(view.getType(), "group")
|
||||||
|| ("antv".equalsIgnoreCase(view.getRender()) && "line".equalsIgnoreCase(view.getType()))) {
|
|| ("antv".equalsIgnoreCase(view.getRender()) && "line".equalsIgnoreCase(view.getType()))) {
|
||||||
xAxis.addAll(xAxisExt);
|
xAxis.addAll(xAxisExt);
|
||||||
}
|
}
|
||||||
List<ChartViewFieldDTO> yAxis = gson.fromJson(view.getYAxis(), tokenType);
|
List<ChartViewFieldDTO> yAxis = gson.fromJson(view.getYAxis(), tokenType);
|
||||||
@ -596,6 +596,12 @@ public class ChartViewService {
|
|||||||
List<ChartFieldCustomFilterDTO> fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType);
|
List<ChartFieldCustomFilterDTO> fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType);
|
||||||
List<ChartViewFieldDTO> drill = gson.fromJson(view.getDrillFields(), tokenType);
|
List<ChartViewFieldDTO> drill = gson.fromJson(view.getDrillFields(), tokenType);
|
||||||
|
|
||||||
|
// 视图计算字段,用dataeaseName作为唯一标识
|
||||||
|
ChartViewField chartViewField = new ChartViewField();
|
||||||
|
chartViewField.setChartId(view.getId());
|
||||||
|
List<ChartViewField> chartViewFields = chartViewFieldService.list(chartViewField);
|
||||||
|
List<String> chartViewFieldNameList = chartViewFields.stream().map(ChartViewField::getDataeaseName).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
DatasetTableField datasetTableFieldObj = DatasetTableField.builder().tableId(view.getTableId()).checked(Boolean.TRUE).build();
|
DatasetTableField datasetTableFieldObj = DatasetTableField.builder().tableId(view.getTableId()).checked(Boolean.TRUE).build();
|
||||||
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableFieldObj);
|
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableFieldObj);
|
||||||
@ -609,11 +615,10 @@ public class ChartViewService {
|
|||||||
//将没有权限的列删掉
|
//将没有权限的列删掉
|
||||||
List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList());
|
List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList());
|
||||||
dataeaseNames.add("*");
|
dataeaseNames.add("*");
|
||||||
fieldCustomFilter = fieldCustomFilter.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
fieldCustomFilter = fieldCustomFilter.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
extStack = extStack.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
extStack = extStack.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
extBubble = extBubble.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
extBubble = extBubble.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
drill = drill.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
drill = drill.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
//行权限
|
//行权限
|
||||||
List<DataSetRowPermissionsTreeDTO> rowPermissionsTree = permissionsTreeService.getRowPermissionsTree(fields, table, chartExtRequest.getUser());
|
List<DataSetRowPermissionsTreeDTO> rowPermissionsTree = permissionsTreeService.getRowPermissionsTree(fields, table, chartExtRequest.getUser());
|
||||||
@ -644,7 +649,7 @@ public class ChartViewService {
|
|||||||
|
|
||||||
switch (view.getType()) {
|
switch (view.getType()) {
|
||||||
case "label":
|
case "label":
|
||||||
xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
yAxis = new ArrayList<>();
|
yAxis = new ArrayList<>();
|
||||||
if (CollectionUtils.isEmpty(xAxis)) {
|
if (CollectionUtils.isEmpty(xAxis)) {
|
||||||
return emptyChartViewDTO(view);
|
return emptyChartViewDTO(view);
|
||||||
@ -654,32 +659,32 @@ public class ChartViewService {
|
|||||||
case "gauge":
|
case "gauge":
|
||||||
case "liquid":
|
case "liquid":
|
||||||
xAxis = new ArrayList<>();
|
xAxis = new ArrayList<>();
|
||||||
yAxis = yAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(yAxis)) {
|
if (CollectionUtils.isEmpty(yAxis)) {
|
||||||
return emptyChartViewDTO(view);
|
return emptyChartViewDTO(view);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "table-info":
|
case "table-info":
|
||||||
yAxis = new ArrayList<>();
|
yAxis = new ArrayList<>();
|
||||||
xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
|
xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(xAxis)) {
|
if (CollectionUtils.isEmpty(xAxis)) {
|
||||||
return emptyChartViewDTO(view);
|
return emptyChartViewDTO(view);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "table-normal":
|
case "table-normal":
|
||||||
xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
|
xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
|
||||||
yAxis = yAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
|
yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
|
||||||
break;
|
break;
|
||||||
case "bar-group":
|
case "bar-group":
|
||||||
case "bar-group-stack":
|
case "bar-group-stack":
|
||||||
xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
yAxis = yAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
xAxisBase = xAxisBase.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
xAxisBase = xAxisBase.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
xAxisExt = xAxisExt.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
xAxisExt = xAxisExt.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
yAxis = yAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 过滤来自仪表板的条件
|
// 过滤来自仪表板的条件
|
||||||
@ -701,8 +706,8 @@ public class ChartViewService {
|
|||||||
hasParameters = true;
|
hasParameters = true;
|
||||||
}
|
}
|
||||||
if (parameter.contains("|DE|")
|
if (parameter.contains("|DE|")
|
||||||
&& table.getId().equals(parameter.split("\\|DE\\|")[0])
|
&& table.getId().equals(parameter.split("\\|DE\\|")[0])
|
||||||
&& sqlVariables
|
&& sqlVariables
|
||||||
.stream()
|
.stream()
|
||||||
.map(SqlVariableDetails::getVariableName)
|
.map(SqlVariableDetails::getVariableName)
|
||||||
.collect(Collectors.toList())
|
.collect(Collectors.toList())
|
||||||
@ -1160,7 +1165,7 @@ public class ChartViewService {
|
|||||||
mapChart = ChartDataBuild.transChartData(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transChartData(xAxis, yAxis, view, data, isDrill);
|
||||||
}
|
}
|
||||||
} else if (StringUtils.equalsIgnoreCase(view.getRender(), "antv")) {
|
} else if (StringUtils.equalsIgnoreCase(view.getRender(), "antv")) {
|
||||||
if (StringUtils.equalsAnyIgnoreCase(view.getType(), "bar-group","line")) {
|
if (StringUtils.equalsAnyIgnoreCase(view.getType(), "bar-group", "line")) {
|
||||||
mapChart = ChartDataBuild.transBaseGroupDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transBaseGroupDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill);
|
||||||
} else if (StringUtils.equalsIgnoreCase(view.getType(), "bar-group-stack")) {
|
} else if (StringUtils.equalsIgnoreCase(view.getType(), "bar-group-stack")) {
|
||||||
mapChart = ChartDataBuild.transGroupStackDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, extStack, data, view, isDrill);
|
mapChart = ChartDataBuild.transGroupStackDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, extStack, data, view, isDrill);
|
||||||
|
@ -2790,6 +2790,8 @@ export default {
|
|||||||
closeEditChartField() {
|
closeEditChartField() {
|
||||||
this.showEditChartField = false
|
this.showEditChartField = false
|
||||||
this.initTableField(this.table.id)
|
this.initTableField(this.table.id)
|
||||||
|
// 因动态计算较多,更新字段后重新计算视图数据
|
||||||
|
this.calcData()
|
||||||
},
|
},
|
||||||
|
|
||||||
// drag
|
// drag
|
||||||
@ -2879,6 +2881,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.view.customFilter[e.newDraggableIndex].filter = []
|
||||||
this.dragMoveDuplicate(this.view.customFilter, e)
|
this.dragMoveDuplicate(this.view.customFilter, e)
|
||||||
this.dragRemoveChartField(this.view.customFilter, e)
|
this.dragRemoveChartField(this.view.customFilter, e)
|
||||||
this.calcData(true)
|
this.calcData(true)
|
||||||
|
Loading…
Reference in New Issue
Block a user