diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java index 80f2873052..a8df862022 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java @@ -203,6 +203,7 @@ public class ChartDataManage { switch (view.getType()) { case "label": xAxis = xAxis.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); + xAxisBase = xAxisBase.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); yAxis = new ArrayList<>(); if (ObjectUtils.isEmpty(xAxis)) { return emptyChartViewDTO(view); @@ -220,16 +221,19 @@ public class ChartDataManage { case "table-info": yAxis = new ArrayList<>(); xAxis = xAxis.stream().filter(item -> dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); + xAxisBase = xAxisBase.stream().filter(item -> dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); if (ObjectUtils.isEmpty(xAxis)) { return emptyChartViewDTO(view); } break; case "table-normal": xAxis = xAxis.stream().filter(item -> dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); + xAxisBase = xAxisBase.stream().filter(item -> dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); break; default: xAxis = xAxis.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); + xAxisBase = xAxisBase.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); } diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 5bff42219b..b1fe059a6d 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -1081,6 +1081,7 @@ export default { conform_below: '符合以下', addition: '条件', drill_field_error: '下钻起始字段需在维度中', + error_not_number: '不支持拖拽非数值类型指标', error_q_2_d: '不支持拖拽指标至维度', error_d_2_q: '不支持拖拽维度至指标', only_input_number: '请输入正确数值', diff --git a/core/core-frontend/src/views/chart/components/editor/index.vue b/core/core-frontend/src/views/chart/components/editor/index.vue index f8294724a7..a61fd09645 100644 --- a/core/core-frontend/src/views/chart/components/editor/index.vue +++ b/core/core-frontend/src/views/chart/components/editor/index.vue @@ -442,6 +442,27 @@ const addAxis = (e, axis: AxisType) => { if (type) { typeValid = dragCheckType(view.value[axis], type) } + // 针对指标卡进行数值类型判断 + if (typeValid && type === 'q' && view.value.type === 'indicator') { + const list = view.value[axis] + if (list && list.length > 0) { + let valid = true + for (let i = 0; i < list.length; i++) { + if (list[i].deType !== 2 && list[i].deType !== 3) { + list.splice(i, 1) + valid = false + } + } + typeValid = valid + if (!typeValid) { + ElMessage({ + message: t('chart.error_not_number'), + type: 'warning' + }) + } + } + } + if (!duplicate) { dup = dragMoveDuplicate(view.value[axis], e, 'chart') } @@ -470,6 +491,12 @@ const addAxis = (e, axis: AxisType) => { emitter.emit('removeAxis', { axisType: 'yAxis', axis, editType: 'remove' }) } } + if (view.value.type === 'indicator') { + if (view.value?.yAxis?.length > 1) { + const axis = view.value.yAxis.splice(1) + emitter.emit('removeAxis', { axisType: 'yAxis', axis, editType: 'remove' }) + } + } } const addXaxis = e => {