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 d58eb762d8..b72e22a208 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 @@ -383,7 +383,10 @@ public class ChartDataManage { provider = ProviderFactory.getProvider(dsMap.entrySet().iterator().next().getValue().getType()); } - view.setCalParams(Utils.getParams(transFields(allFields))); + if (ObjectUtils.isEmpty(view.getCalParams())) { + view.setCalParams(Utils.getParams(transFields(allFields))); + } + SQLMeta sqlMeta = new SQLMeta(); Table2SQLObj.table2sqlobj(sqlMeta, null, "(" + sql + ")", crossDs); CustomWhere2Str.customWhere2sqlObj(sqlMeta, fieldCustomFilter, transFields(allFields), crossDs, dsMap, Utils.getParams(transFields(allFields)), view.getCalParams(), pluginManage); 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 3c6f3f0b48..661ae871ab 100644 --- a/core/core-frontend/src/views/chart/components/editor/index.vue +++ b/core/core-frontend/src/views/chart/components/editor/index.vue @@ -360,6 +360,12 @@ const recordSnapshotInfo = type => { snapshotStore.recordSnapshotCache(type, view.value.id) } +const changeDataset = () => { + // change dataset, do clear field or other thing + view.value['calParams'] = [] + recordSnapshotInfo('calcData') +} + const filterNode = (value, data) => { if (!value) { return true @@ -3410,7 +3416,7 @@ const deleteChartFieldItem = id => { :state-obj="state" :themes="themes" @add-ds-window="addDsWindow" - @on-dataset-change="recordSnapshotInfo('calcData')" + @on-dataset-change="changeDataset" />