Merge pull request #582 from dataease/pr@dev@feat_视图下钻

feat: 视图下钻
This commit is contained in:
XiaJunjie2020 2021-08-11 10:35:52 +08:00 committed by GitHub
commit dabdc89704
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 6 deletions

View File

@ -258,7 +258,7 @@ public class ChartViewService {
// 下钻 // 下钻
boolean isDrill = false; boolean isDrill = false;
List<ChartDrillRequest> drillRequest = requestList.getDrill(); List<ChartDrillRequest> drillRequest = requestList.getDrill();
if (CollectionUtils.isNotEmpty(drillRequest) && (drill.size() >= drillRequest.size())) { if (CollectionUtils.isNotEmpty(drillRequest) && (drill.size() > drillRequest.size())) {
for (int i = 0; i < drillRequest.size(); i++) { for (int i = 0; i < drillRequest.size(); i++) {
ChartDrillRequest request = drillRequest.get(i); ChartDrillRequest request = drillRequest.get(i);
for (ChartDimensionDTO dto : request.getDimensionList()) { for (ChartDimensionDTO dto : request.getDimensionList()) {
@ -278,10 +278,16 @@ public class ChartViewService {
drillFilter.setOperator("in"); drillFilter.setOperator("in");
drillFilter.setDatasetTableField(datasetTableField); drillFilter.setDatasetTableField(datasetTableField);
extFilterList.add(drillFilter); extFilterList.add(drillFilter);
// xAxis.add(d);
// if (i == drillRequest.size() - 1) { if (!checkDrillExist(xAxis, extStack, d, view)) {
// xAxis.add(drill.get(i + 1)); xAxis.add(d);
// } }
if (i == drillRequest.size() - 1) {
ChartViewFieldDTO nextDrillField = drill.get(i + 1);
if (!checkDrillExist(xAxis, extStack, nextDrillField, view)) {
xAxis.add(nextDrillField);
}
}
} }
} }
} }
@ -436,6 +442,24 @@ public class ChartViewService {
return dto; return dto;
} }
private boolean checkDrillExist(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> extStack, ChartViewFieldDTO dto, ChartViewWithBLOBs view) {
if (CollectionUtils.isNotEmpty(xAxis)) {
for (ChartViewFieldDTO x : xAxis) {
if (StringUtils.equalsIgnoreCase(x.getId(), dto.getId())) {
return true;
}
}
}
if (StringUtils.containsIgnoreCase(view.getType(), "stack") && CollectionUtils.isNotEmpty(extStack)) {
for (ChartViewFieldDTO x : extStack) {
if (StringUtils.equalsIgnoreCase(x.getId(), dto.getId())) {
return true;
}
}
}
return false;
}
/** /**
* 避免缓存击穿 * 避免缓存击穿
* 虽然流量不一定能够达到击穿的水平 * 虽然流量不一定能够达到击穿的水平

View File

@ -161,7 +161,6 @@ const data = {
// 添加联动 下钻 等过滤组件 // 添加联动 下钻 等过滤组件
addViewTrackFilter(state, data) { addViewTrackFilter(state, data) {
debugger
const viewId = data.viewId const viewId = data.viewId
const trackInfo = state.nowPanelTrackInfo const trackInfo = state.nowPanelTrackInfo
for (let index = 0; index < state.componentData.length; index++) { for (let index = 0; index < state.componentData.length; index++) {