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 @@
-
+