From 7e2da332e403fdd6b89d9e95abc48d7c0dc06a62 Mon Sep 17 00:00:00 2001 From: junjie Date: Tue, 23 Mar 2021 18:08:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=A7=86=E5=9B=BE):=20UI=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=8C=E6=B1=87=E6=80=BB=E7=BB=93=E6=9E=9C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8D=87=E3=80=81=E9=99=8D=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/dto/chart/ChartViewFieldDTO.java | 2 + .../service/chart/ChartViewService.java | 16 ++- frontend/src/lang/zh.js | 8 +- frontend/src/views/chart/chart/chart.js | 6 +- .../src/views/chart/components/QuotaItem.vue | 98 ++++++++++++++----- .../component_style/XAxisSelector.vue | 3 + .../component_style/YAxisSelector.vue | 3 + .../components/shape_attr/TooltipSelector.vue | 2 +- frontend/src/views/chart/view/ChartEdit.vue | 13 ++- 9 files changed, 114 insertions(+), 37 deletions(-) diff --git a/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldDTO.java b/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldDTO.java index b748b624d9..5b93d472d3 100644 --- a/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldDTO.java +++ b/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldDTO.java @@ -27,4 +27,6 @@ public class ChartViewFieldDTO { private Integer deType; private String summary; + + private String sort; } 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 3d66198fc0..2f3341a1b1 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -160,6 +160,20 @@ public class ChartViewService { // TODO 字段汇总 排序等 String[] field = yAxis.stream().map(y -> "CAST(" + y.getSummary() + "(" + y.getOriginName() + ") AS DECIMAL(20,2)) AS _" + y.getSummary() + "_" + y.getOriginName()).toArray(String[]::new); String[] group = xAxis.stream().map(ChartViewFieldDTO::getOriginName).toArray(String[]::new); - return MessageFormat.format("SELECT {0},{1} FROM {2} GROUP BY {3}", StringUtils.join(group, ","), StringUtils.join(field, ","), table, StringUtils.join(group, ",")); + String[] order = yAxis.stream().filter(y -> StringUtils.isNotEmpty(y.getSort()) && !StringUtils.equalsIgnoreCase(y.getSort(), "none")) + .map(y -> "_" + y.getSummary() + "_" + y.getOriginName() + " " + y.getSort()).toArray(String[]::new); + + String sql = MessageFormat.format("SELECT {0},{1} FROM {2} WHERE 1=1 {3} GROUP BY {4} ORDER BY null,{5}", + StringUtils.join(group, ","), + StringUtils.join(field, ","), + table, + "", + StringUtils.join(group, ","), + StringUtils.join(order, ",")); + if (sql.endsWith(",")) { + sql = sql.substring(0, sql.length() - 1); + } + // 如果是对结果字段过滤,则再包裹一层sql + return sql; } } diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 8f35fa2549..235154e72a 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -673,7 +673,13 @@ export default { position: '位置', rotate: '角度', name: '名称', - icon: '图标' + icon: '图标', + trigger_position: '触发位置', + asc: '升序', + desc: '降序', + sort: '排序', + filter: '过滤', + none: '无' }, dataset: { datalist: '数据集', diff --git a/frontend/src/views/chart/chart/chart.js b/frontend/src/views/chart/chart/chart.js index 06703dd01c..1d5df1b4ee 100644 --- a/frontend/src/views/chart/chart/chart.js +++ b/frontend/src/views/chart/chart/chart.js @@ -58,7 +58,8 @@ export const DEFAULT_XAXIS_STYLE = { position: 'bottom', name: '', axisLabel: { - rotate: 0 + rotate: 0, + formatter: '{value}' } } export const DEFAULT_YAXIS_STYLE = { @@ -66,7 +67,8 @@ export const DEFAULT_YAXIS_STYLE = { position: 'left', name: '', axisLabel: { - rotate: 0 + rotate: 0, + formatter: '{value}' } } // chart config diff --git a/frontend/src/views/chart/components/QuotaItem.vue b/frontend/src/views/chart/components/QuotaItem.vue index 08af376fc3..8cdaab0ad8 100644 --- a/frontend/src/views/chart/components/QuotaItem.vue +++ b/frontend/src/views/chart/components/QuotaItem.vue @@ -6,10 +6,15 @@ {{ item.name }}{{ $t('chart.'+item.summary) }} - - - - {{ $t('chart.summary') }}({{ $t('chart.'+item.summary) }}) + + + + + + {{ $t('chart.summary') }} + ({{ $t('chart.'+item.summary) }}) + + {{ $t('chart.sum') }} @@ -22,16 +27,41 @@ - - - - {{ $t('chart.quick_calc') }}(无) + + + + + + {{ $t('chart.quick_calc') }} + (无) + + + + + + + + {{ $t('chart.sort') }} + ({{ $t('chart.'+item.sort) }}) + + + + + {{ $t('chart.none') }} + {{ $t('chart.asc') }} + {{ $t('chart.desc') }} + + + + + {{ $t('chart.filter') }}... + {{ $t('chart.show_name_set') }} @@ -45,7 +75,7 @@ - +