From 7957ac5a40023dd0bd3a5eb0e82557c9347eb706 Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 19 Jul 2021 15:47:23 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E8=BF=87=E6=BB=A4=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=9D=A1=E4=BB=B6=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filter/DimensionFilterEditor.vue | 40 +++++++++---------- .../components/filter/QuotaFilterEditor.vue | 20 +++++----- frontend/src/views/chart/view/ChartEdit.vue | 12 +++--- 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/frontend/src/views/chart/components/filter/DimensionFilterEditor.vue b/frontend/src/views/chart/components/filter/DimensionFilterEditor.vue index a5dd51d769..1146c9cbdc 100644 --- a/frontend/src/views/chart/components/filter/DimensionFilterEditor.vue +++ b/frontend/src/views/chart/components/filter/DimensionFilterEditor.vue @@ -64,26 +64,26 @@ export default { label: this.$t('chart.filter_not_like') }] }, - { - label: '', - options: [{ - value: 'lt', - label: this.$t('chart.filter_lt') - }, { - value: 'gt', - label: this.$t('chart.filter_gt') - }] - }, - { - label: '', - options: [{ - value: 'le', - label: this.$t('chart.filter_le') - }, { - value: 'ge', - label: this.$t('chart.filter_ge') - }] - }, + // { + // label: '', + // options: [{ + // value: 'lt', + // label: this.$t('chart.filter_lt') + // }, { + // value: 'gt', + // label: this.$t('chart.filter_gt') + // }] + // }, + // { + // label: '', + // options: [{ + // value: 'le', + // label: this.$t('chart.filter_le') + // }, { + // value: 'ge', + // label: this.$t('chart.filter_ge') + // }] + // }, { label: '', options: [{ diff --git a/frontend/src/views/chart/components/filter/QuotaFilterEditor.vue b/frontend/src/views/chart/components/filter/QuotaFilterEditor.vue index 45df54cb13..018dabae43 100644 --- a/frontend/src/views/chart/components/filter/QuotaFilterEditor.vue +++ b/frontend/src/views/chart/components/filter/QuotaFilterEditor.vue @@ -54,16 +54,16 @@ export default { label: this.$t('chart.filter_not_eq') }] }, - { - label: '', - options: [{ - value: 'like', - label: this.$t('chart.filter_like') - }, { - value: 'not like', - label: this.$t('chart.filter_not_like') - }] - }, + // { + // label: '', + // options: [{ + // value: 'like', + // label: this.$t('chart.filter_like') + // }, { + // value: 'not like', + // label: this.$t('chart.filter_not_like') + // }] + // }, { label: '', options: [{ diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index 9902748916..25f7003387 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -213,7 +213,7 @@
- + {{ $t('chart.dimension') }} @@ -230,7 +230,7 @@ - + {{ $t('chart.quota') }} @@ -246,7 +246,7 @@ -
+
{{ $t('chart.result_filter') }} {{ $t('chart.filter_condition') }} @@ -1233,7 +1233,7 @@ export default { } .attr-style{ - height: calc(100vh - 56px - 25vh - 40px - 60px); + height: calc(100vh - 56px - 25vh - 40px - 40px); } .attr-selector{ From c429821c5c2d68247b162c131984e03741612818 Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 19 Jul 2021 16:04:51 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E8=BF=87=E6=BB=A4=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=9D=A1=E4=BB=B6=E8=B0=83=E6=95=B4,=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E7=95=8C=E9=9D=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/chart/view/ChartEdit.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index 25f7003387..676e31ab7a 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -43,7 +43,7 @@
-
+
{{ $t('chart.dimension') }} Date: Tue, 20 Jul 2021 12:16:37 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E8=A7=86=E5=9B=BE=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E9=87=8D=E6=96=B0=E8=AE=BE=E8=AE=A1=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=8D=95=E7=BB=B4=E5=BA=A6=E6=8C=87=E6=A0=87=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/chart/ChartCustomFilterItemDTO.java | 18 ++ .../dto/chart/ChartFieldCustomFilterDTO.java | 18 ++ .../service/chart/ChartViewService.java | 39 ++- frontend/src/lang/en.js | 2 +- frontend/src/lang/tw.js | 2 +- frontend/src/lang/zh.js | 2 +- .../components/drag-item/DimensionItem.vue | 6 +- .../chart/components/drag-item/FilterItem.vue | 102 ++++--- .../components/filter/ResultFilterEditor.vue | 227 +++++++++----- frontend/src/views/chart/view/ChartEdit.vue | 288 ++++++++++++------ 10 files changed, 453 insertions(+), 251 deletions(-) create mode 100644 backend/src/main/java/io/dataease/dto/chart/ChartCustomFilterItemDTO.java create mode 100644 backend/src/main/java/io/dataease/dto/chart/ChartFieldCustomFilterDTO.java diff --git a/backend/src/main/java/io/dataease/dto/chart/ChartCustomFilterItemDTO.java b/backend/src/main/java/io/dataease/dto/chart/ChartCustomFilterItemDTO.java new file mode 100644 index 0000000000..092fcb3f29 --- /dev/null +++ b/backend/src/main/java/io/dataease/dto/chart/ChartCustomFilterItemDTO.java @@ -0,0 +1,18 @@ +package io.dataease.dto.chart; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + * @Author gin + * @Date 2021/7/20 11:34 上午 + */ +@Getter +@Setter +public class ChartCustomFilterItemDTO implements Serializable { + private String fieldId; + private String term; + private String value; +} diff --git a/backend/src/main/java/io/dataease/dto/chart/ChartFieldCustomFilterDTO.java b/backend/src/main/java/io/dataease/dto/chart/ChartFieldCustomFilterDTO.java new file mode 100644 index 0000000000..380ec0d4f2 --- /dev/null +++ b/backend/src/main/java/io/dataease/dto/chart/ChartFieldCustomFilterDTO.java @@ -0,0 +1,18 @@ +package io.dataease.dto.chart; + +import io.dataease.base.domain.DatasetTableField; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author gin + * @Date 2021/7/20 11:43 上午 + */ +@Getter +@Setter +public class ChartFieldCustomFilterDTO implements Serializable { + private List filter; +} diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index b816b40ef7..70149f7560 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -134,24 +134,31 @@ public class ChartViewService { }.getType()); List yAxis = new Gson().fromJson(view.getYAxis(), new TypeToken>() { }.getType()); - List customFilter = new Gson().fromJson(view.getCustomFilter(), new TypeToken>() { + List fieldCustomFilter = new Gson().fromJson(view.getCustomFilter(), new TypeToken>() { }.getType()); - customFilter.forEach(ele -> ele.setField(dataSetTableFieldsService.get(ele.getFieldId()))); + List customFilter = fieldCustomFilter.stream().map(ele -> { + ChartCustomFilterDTO dto = new ChartCustomFilterDTO(); + ele.getFilter().forEach(f -> { + BeanUtils.copyBean(dto, f); + dto.setField(dataSetTableFieldsService.get(f.getFieldId())); + }); + return dto; + }).collect(Collectors.toList()); - if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) { - xAxis = new ArrayList<>(); - if (CollectionUtils.isEmpty(yAxis)) { - ChartViewDTO dto = new ChartViewDTO(); - BeanUtils.copyBean(dto, view); - return dto; - } - } else { - if (CollectionUtils.isEmpty(xAxis) || CollectionUtils.isEmpty(yAxis)) { - ChartViewDTO dto = new ChartViewDTO(); - BeanUtils.copyBean(dto, view); - return dto; - } - } +// if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) { +// xAxis = new ArrayList<>(); +// if (CollectionUtils.isEmpty(yAxis)) { +// ChartViewDTO dto = new ChartViewDTO(); +// BeanUtils.copyBean(dto, view); +// return dto; +// } +// } else { +// if (CollectionUtils.isEmpty(xAxis) || CollectionUtils.isEmpty(yAxis)) { +// ChartViewDTO dto = new ChartViewDTO(); +// BeanUtils.copyBean(dto, view); +// return dto; +// } +// } // 过滤来自仪表板的条件 List extFilterList = new ArrayList<>(); diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 145e3dc5e2..562a390a04 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -598,7 +598,7 @@ export default { chart_type: 'Chart Type', shape_attr: 'Attribute', module_style: 'Style', - result_filter: 'Results Filter', + result_filter: 'Filters', x_axis: 'Horizontal axis', y_axis: 'Longitudinal axis', chart: 'Chart', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 61e56996ca..adb3e14d6d 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -598,7 +598,7 @@ export default { chart_type: '圖表類型', shape_attr: '圖形屬性', module_style: '組件樣式', - result_filter: '結果過濾器', + result_filter: '過濾器', x_axis: '橫軸', y_axis: '縱軸', chart: '視圖', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index ac6646de9a..94129df8ea 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -598,7 +598,7 @@ export default { chart_type: '图表类型', shape_attr: '图形属性', module_style: '组件样式', - result_filter: '结果过滤器', + result_filter: '过滤器', x_axis: '横轴', y_axis: '纵轴', chart: '视图', diff --git a/frontend/src/views/chart/components/drag-item/DimensionItem.vue b/frontend/src/views/chart/components/drag-item/DimensionItem.vue index b8e6d5e124..77e0e5024c 100644 --- a/frontend/src/views/chart/components/drag-item/DimensionItem.vue +++ b/frontend/src/views/chart/components/drag-item/DimensionItem.vue @@ -39,9 +39,9 @@ - - {{ $t('chart.filter') }}... - + + + diff --git a/frontend/src/views/chart/components/drag-item/FilterItem.vue b/frontend/src/views/chart/components/drag-item/FilterItem.vue index 9c309f8052..8af240eabe 100644 --- a/frontend/src/views/chart/components/drag-item/FilterItem.vue +++ b/frontend/src/views/chart/components/drag-item/FilterItem.vue @@ -1,13 +1,29 @@