From ef0985dafd2ee1dacd116b92ae7d45ca07f84650 Mon Sep 17 00:00:00 2001 From: junjun Date: Wed, 20 Dec 2023 11:26:14 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E8=A7=86=E5=9B=BE=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=99=A8=E6=94=AF=E6=8C=81=E4=B8=8E=E6=88=96=E5=85=B3?= =?UTF-8?q?=E7=B3=BB=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/components/ChartTitleUpdate.vue | 5 -- .../src/views/chart/view/ChartEdit.vue | 68 +------------------ 2 files changed, 2 insertions(+), 71 deletions(-) diff --git a/core/frontend/src/views/chart/components/ChartTitleUpdate.vue b/core/frontend/src/views/chart/components/ChartTitleUpdate.vue index 17103546b2..5a5a11927c 100644 --- a/core/frontend/src/views/chart/components/ChartTitleUpdate.vue +++ b/core/frontend/src/views/chart/components/ChartTitleUpdate.vue @@ -280,11 +280,6 @@ export default { ) { view.drillFields = [] } - // view.customFilter.forEach(function(ele) { - // if (ele && !ele.filter) { - // ele.filter = [] - // } - // }) view.xaxis = JSON.stringify(view.xaxis) view.viewFields = JSON.stringify(view.viewFields) view.xaxisExt = JSON.stringify(view.xaxisExt) diff --git a/core/frontend/src/views/chart/view/ChartEdit.vue b/core/frontend/src/views/chart/view/ChartEdit.vue index 49e41e1158..12155b7dbe 100644 --- a/core/frontend/src/views/chart/view/ChartEdit.vue +++ b/core/frontend/src/views/chart/view/ChartEdit.vue @@ -1840,7 +1840,6 @@ import { } from '@/api/chart/chart' import DimensionItem from '../components/dragItem/DimensionItem' import QuotaItem from '../components/dragItem/QuotaItem' -import FilterItem from '../components/dragItem/FilterItem' import ChartDragItem from '../components/dragItem/ChartDragItem' import DrillItem from '../components/dragItem/DrillItem' import ResultFilterEditor from '../components/filter/ResultFilterEditor' @@ -1916,7 +1915,6 @@ export default { ChartType, ChartComponentG2, QuotaExtItem, - FilterItem, FilterTree, FieldEdit, TableSelector, @@ -2289,7 +2287,7 @@ export default { bus.$off('show-rename', this.showRename) bus.$off('show-quota-edit-filter', this.showQuotaEditFilter) bus.$off('show-quota-edit-compare', this.showQuotaEditCompare) - bus.$off('show-edit-filter', this.showEditFilter) + bus.$off('show-edit-filter', this.openTreeFilter) bus.$off('show-edit-formatter', this.valueFormatter) bus.$off('calc-data', this.calcData) bus.$off('plugins-calc-style', this.calcStyle) @@ -2379,7 +2377,7 @@ export default { bus.$on('show-rename', this.showRename) bus.$on('show-quota-edit-filter', this.showQuotaEditFilter) bus.$on('show-quota-edit-compare', this.showQuotaEditCompare) - bus.$on('show-edit-filter', this.showEditFilter) + bus.$on('show-edit-filter', this.openTreeFilter) bus.$on('show-edit-formatter', this.valueFormatter) bus.$on('calc-data', this.calcData) bus.$on('plugins-calc-style', this.calcStyle) @@ -2643,11 +2641,6 @@ export default { view.type === 'table-pivot') { view.drillFields = [] } - // view.customFilter.forEach(function(ele) { - // if (ele && !ele.filter) { - // ele.filter = [] - // } - // }) this.chart = JSON.parse(JSON.stringify(view)) this.view = JSON.parse(JSON.stringify(view)) // stringify json param @@ -3068,63 +3061,6 @@ export default { this.closeQuotaFilter() }, - filterItemRemove(item) { - this.view.customFilter.splice(item.index, 1) - this.calcData(true) - }, - showEditFilter(item) { - this.filterItem = JSON.parse(JSON.stringify(item)) - this.chartForFilter = JSON.parse(JSON.stringify(this.view)) - if (!this.filterItem.logic) { - this.filterItem.logic = 'and' - } - if (!this.filterItem.filterType) { - this.filterItem.filterType = 'logic' - } - if (!this.filterItem.enumCheckField) { - this.filterItem.enumCheckField = [] - } - this.resultFilterEdit = true - }, - closeResultFilter() { - this.resultFilterEdit = false - }, - saveResultFilter() { - if (((this.filterItem.deType === 0 || this.filterItem.deType === 5) && this.filterItem.filterType !== 'enum') || - this.filterItem.deType === 1 || - this.filterItem.deType === 2 || - this.filterItem.deType === 3) { - for (let i = 0; i < this.filterItem.filter.length; i++) { - const f = this.filterItem.filter[i] - if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) { - this.$message({ - message: this.$t('chart.filter_value_can_null'), - type: 'error', - showClose: true - }) - return - } - if (this.filterItem.deType === 2 || this.filterItem.deType === 3) { - if (isNaN(f.value)) { - this.$message({ - message: this.$t('chart.filter_value_can_not_str'), - type: 'error', - showClose: true - }) - return - } - } - } - } - - this.view.customFilter[this.filterItem.index].filter = this.filterItem.filter - this.view.customFilter[this.filterItem.index].logic = this.filterItem.logic - this.view.customFilter[this.filterItem.index].filterType = this.filterItem.filterType - this.view.customFilter[this.filterItem.index].enumCheckField = this.filterItem.enumCheckField - this.calcData(true) - this.closeResultFilter() - }, - showRename(val) { this.itemForm = JSON.parse(JSON.stringify(val)) this.renameItem = true From 25966938d98218003a6b6d2345fa8922d567a7c8 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 20 Dec 2023 14:17:20 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E5=AE=9A=E6=97=B6=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E5=8F=91=E9=80=81=E6=98=8E=E7=BB=86=E8=A1=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=94=AF=E6=8C=81=E5=85=A8=E9=87=8F=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/service/chart/ViewExportExcel.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/backend/src/main/java/io/dataease/service/chart/ViewExportExcel.java b/core/backend/src/main/java/io/dataease/service/chart/ViewExportExcel.java index 009ff2722b..752ed3ac11 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ViewExportExcel.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ViewExportExcel.java @@ -71,6 +71,7 @@ public class ViewExportExcel { Map result = new HashMap<>(); Map> panelFilters = justView ? FilterBuildTemplate.buildFilters(components) : FilterBuildTemplate.buildEmpty(components); + List tableInfoViewIds = findTableInfoViewIds(components); for (Map.Entry> entry : panelFilters.entrySet()) { List chartExtFilterRequests = entry.getValue(); ChartExtRequest chartExtRequest = new ChartExtRequest(); @@ -78,11 +79,26 @@ public class ViewExportExcel { chartExtRequest.setFilter(chartExtFilterRequests); chartExtRequest.setResultCount((int) resultCount); chartExtRequest.setResultMode(resultMode); + if(tableInfoViewIds.contains(entry.getKey())){ + chartExtRequest.setGoPage(1L); + chartExtRequest.setPageSize(1000000L); + chartExtRequest.setExcelExportFlag(true); + } result.put(entry.getKey(), chartExtRequest); } return result; } + private List findTableInfoViewIds(List> components) { + List tableInfoViewIds = new ArrayList<>(); + components.forEach(element -> { + if (StringUtils.equals(element.get("type").toString(), "view") && StringUtils.equals(((Map) element.get("propValue")).get("innerType").toString(), "table-info")) { + tableInfoViewIds.add(((Map) element.get("propValue")).get("viewId").toString()); + } + }); + return tableInfoViewIds; + } + private ExcelSheetModel viewFiles(String viewId, ChartExtRequest request) { ExcelSheetModel result = new ExcelSheetModel(); ChartViewDTO chartViewDTO = null; From 2d098243f59c447752ff0835bfed1c8a261720e8 Mon Sep 17 00:00:00 2001 From: junjun Date: Wed, 20 Dec 2023 14:34:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E8=A7=86=E5=9B=BE=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=99=A8=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE=E5=85=BC?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/ChartViewOldDataMergeService.java | 187 +++++++++--------- 1 file changed, 99 insertions(+), 88 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewOldDataMergeService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewOldDataMergeService.java index a4f5a97697..a33141b1b2 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewOldDataMergeService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewOldDataMergeService.java @@ -52,7 +52,14 @@ public class ChartViewOldDataMergeService { for (ChartViewWithBLOBs view : chartViewWithBLOBs) { Type filterTokenType = new TypeToken>() { }.getType(); - List fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType); + List fieldCustomFilter; + // 尝试将历史数据转成list,如果转换出现异常,则忽略该视图继续执行下一个 + try { + fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType); + } catch (Exception e) { + continue; + } + if (CollectionUtils.isEmpty(fieldCustomFilter)) { // 将 '[]' 转换成 '{}' view.setCustomFilter("{}"); @@ -71,18 +78,17 @@ public class ChartViewOldDataMergeService { tree.getItems().add(item); } else { List filter = filterDTO.getFilter(); - if (CollectionUtils.isEmpty(filter)) { - continue; - } - for (ChartCustomFilterItemDTO f : filter) { - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(filterDTO.getId()); - item.setFilterType(filterDTO.getFilterType()); - item.setTerm(f.getTerm()); - item.setValue(f.getValue()); - item.setEnumValue(new ArrayList<>()); - tree.getItems().add(item); + if (CollectionUtils.isNotEmpty(filter)) { + for (ChartCustomFilterItemDTO f : filter) { + FilterTreeItem item = new FilterTreeItem(); + item.setType("item"); + item.setFieldId(filterDTO.getId()); + item.setFilterType(filterDTO.getFilterType()); + item.setTerm(f.getTerm()); + item.setValue(f.getValue()); + item.setEnumValue(new ArrayList<>()); + tree.getItems().add(item); + } } } } else { @@ -97,38 +103,37 @@ public class ChartViewOldDataMergeService { tree.getItems().add(item); } else { List filter = dto.getFilter(); - if (CollectionUtils.isEmpty(filter)) { - continue; - } - if (filter.size() == 1) { - ChartCustomFilterItemDTO f = filter.get(0); - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(dto.getId()); - item.setFilterType(dto.getFilterType()); - item.setTerm(f.getTerm()); - item.setValue(f.getValue()); - item.setEnumValue(new ArrayList<>()); - tree.getItems().add(item); - } else { - FilterTreeItem item = new FilterTreeItem(); - item.setType("tree"); - item.setEnumValue(new ArrayList<>()); - FilterTreeObj subTree = new FilterTreeObj(); - subTree.setLogic(dto.getLogic()); - subTree.setItems(new ArrayList<>()); - for (ChartCustomFilterItemDTO f : filter) { - FilterTreeItem itemTree = new FilterTreeItem(); - itemTree.setType("item"); - itemTree.setFieldId(dto.getId()); - itemTree.setFilterType(dto.getFilterType()); - itemTree.setTerm(f.getTerm()); - itemTree.setValue(f.getValue()); - itemTree.setEnumValue(new ArrayList<>()); - subTree.getItems().add(itemTree); + if (CollectionUtils.isNotEmpty(filter)) { + if (filter.size() == 1) { + ChartCustomFilterItemDTO f = filter.get(0); + FilterTreeItem item = new FilterTreeItem(); + item.setType("item"); + item.setFieldId(dto.getId()); + item.setFilterType(dto.getFilterType()); + item.setTerm(f.getTerm()); + item.setValue(f.getValue()); + item.setEnumValue(new ArrayList<>()); + tree.getItems().add(item); + } else { + FilterTreeItem item = new FilterTreeItem(); + item.setType("tree"); + item.setEnumValue(new ArrayList<>()); + FilterTreeObj subTree = new FilterTreeObj(); + subTree.setLogic(dto.getLogic()); + subTree.setItems(new ArrayList<>()); + for (ChartCustomFilterItemDTO f : filter) { + FilterTreeItem itemTree = new FilterTreeItem(); + itemTree.setType("item"); + itemTree.setFieldId(dto.getId()); + itemTree.setFilterType(dto.getFilterType()); + itemTree.setTerm(f.getTerm()); + itemTree.setValue(f.getValue()); + itemTree.setEnumValue(new ArrayList<>()); + subTree.getItems().add(itemTree); + } + item.setSubTree(subTree); + tree.getItems().add(item); } - item.setSubTree(subTree); - tree.getItems().add(item); } } } @@ -160,7 +165,15 @@ public class ChartViewOldDataMergeService { for (ChartViewCacheWithBLOBs view : chartViewWithBLOBs) { Type filterTokenType = new TypeToken>() { }.getType(); - List fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType); + + List fieldCustomFilter; + // 尝试将历史数据转成list,如果转换出现异常,则忽略该视图继续执行下一个 + try { + fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType); + } catch (Exception e) { + continue; + } + if (CollectionUtils.isEmpty(fieldCustomFilter)) { // 将 '[]' 转换成 '{}' view.setCustomFilter("{}"); @@ -179,18 +192,17 @@ public class ChartViewOldDataMergeService { tree.getItems().add(item); } else { List filter = filterDTO.getFilter(); - if (CollectionUtils.isEmpty(filter)) { - continue; - } - for (ChartCustomFilterItemDTO f : filter) { - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(filterDTO.getId()); - item.setFilterType(filterDTO.getFilterType()); - item.setTerm(f.getTerm()); - item.setValue(f.getValue()); - item.setEnumValue(new ArrayList<>()); - tree.getItems().add(item); + if (CollectionUtils.isNotEmpty(filter)) { + for (ChartCustomFilterItemDTO f : filter) { + FilterTreeItem item = new FilterTreeItem(); + item.setType("item"); + item.setFieldId(filterDTO.getId()); + item.setFilterType(filterDTO.getFilterType()); + item.setTerm(f.getTerm()); + item.setValue(f.getValue()); + item.setEnumValue(new ArrayList<>()); + tree.getItems().add(item); + } } } } else { @@ -205,38 +217,37 @@ public class ChartViewOldDataMergeService { tree.getItems().add(item); } else { List filter = dto.getFilter(); - if (CollectionUtils.isEmpty(filter)) { - continue; - } - if (filter.size() == 1) { - ChartCustomFilterItemDTO f = filter.get(0); - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(dto.getId()); - item.setFilterType(dto.getFilterType()); - item.setTerm(f.getTerm()); - item.setValue(f.getValue()); - item.setEnumValue(new ArrayList<>()); - tree.getItems().add(item); - } else { - FilterTreeItem item = new FilterTreeItem(); - item.setType("tree"); - item.setEnumValue(new ArrayList<>()); - FilterTreeObj subTree = new FilterTreeObj(); - subTree.setLogic(dto.getLogic()); - subTree.setItems(new ArrayList<>()); - for (ChartCustomFilterItemDTO f : filter) { - FilterTreeItem itemTree = new FilterTreeItem(); - itemTree.setType("item"); - itemTree.setFieldId(dto.getId()); - itemTree.setFilterType(dto.getFilterType()); - itemTree.setTerm(f.getTerm()); - itemTree.setValue(f.getValue()); - itemTree.setEnumValue(new ArrayList<>()); - subTree.getItems().add(itemTree); + if (CollectionUtils.isNotEmpty(filter)) { + if (filter.size() == 1) { + ChartCustomFilterItemDTO f = filter.get(0); + FilterTreeItem item = new FilterTreeItem(); + item.setType("item"); + item.setFieldId(dto.getId()); + item.setFilterType(dto.getFilterType()); + item.setTerm(f.getTerm()); + item.setValue(f.getValue()); + item.setEnumValue(new ArrayList<>()); + tree.getItems().add(item); + } else { + FilterTreeItem item = new FilterTreeItem(); + item.setType("tree"); + item.setEnumValue(new ArrayList<>()); + FilterTreeObj subTree = new FilterTreeObj(); + subTree.setLogic(dto.getLogic()); + subTree.setItems(new ArrayList<>()); + for (ChartCustomFilterItemDTO f : filter) { + FilterTreeItem itemTree = new FilterTreeItem(); + itemTree.setType("item"); + itemTree.setFieldId(dto.getId()); + itemTree.setFilterType(dto.getFilterType()); + itemTree.setTerm(f.getTerm()); + itemTree.setValue(f.getValue()); + itemTree.setEnumValue(new ArrayList<>()); + subTree.getItems().add(itemTree); + } + item.setSubTree(subTree); + tree.getItems().add(item); } - item.setSubTree(subTree); - tree.getItems().add(item); } } }