From 562aa8ca254faf1587970a708a5dffb5c69fedcc Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 17 Nov 2022 16:56:42 +0800 Subject: [PATCH 1/6] =?UTF-8?q?refactor(=E8=A7=86=E5=9B=BE):=20=E5=AF=8C?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E8=A7=86=E5=9B=BE=E5=85=81=E8=AE=B8=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../canvas/components/editor/EditBar.vue | 2 +- frontend/src/views/background/index.vue | 2 +- frontend/src/views/chart/chart/util.js | 10 +- .../componentStyle/TitleSelectorAntV.vue | 45 ++- frontend/src/views/chart/view/ChartStyle.vue | 316 +++++++++--------- 5 files changed, 202 insertions(+), 173 deletions(-) diff --git a/frontend/src/components/canvas/components/editor/EditBar.vue b/frontend/src/components/canvas/components/editor/EditBar.vue index 5802d847ca..6a4d7bd3c2 100644 --- a/frontend/src/components/canvas/components/editor/EditBar.vue +++ b/frontend/src/components/canvas/components/editor/EditBar.vue @@ -137,7 +137,7 @@ :target="curComponent.hyperlinks.openMode " :href="curComponent.hyperlinks.content " > - + diff --git a/frontend/src/views/background/index.vue b/frontend/src/views/background/index.vue index 9d119dcf56..f8a6679f35 100644 --- a/frontend/src/views/background/index.vue +++ b/frontend/src/views/background/index.vue @@ -112,7 +112,7 @@ :http-request="upload" :file-list="fileList" > - + {{ $t('chart.show') }} + >{{ $t('chart.show') }} + -
+
{{ $t('chart.italic') }} + >{{ $t('chart.italic') }} + {{ $t('chart.bolder') }} + >{{ $t('chart.bolder') }} + {{ $t('chart.font_shadow') }} + >{{ $t('chart.font_shadow') }} + {{ $t('chart.show') }} + >{{ $t('chart.show') }} + {{ $t('chart.cancel') }} + >{{ $t('chart.cancel') }} + {{ $t('chart.confirm') }} + >{{ $t('chart.confirm') }} +
@@ -350,7 +357,7 @@ export default { +.no-senior { + width: 100%; + text-align: center; + font-size: 12px; + padding-top: 40px; + overflow: auto; + border-right: 1px solid #e6e6e6; + height: 100%; +} + +.form-item-slider ::v-deep .el-form-item__label { + font-size: 12px; + line-height: 38px; +} + +.form-item ::v-deep .el-form-item__label { + font-size: 12px; +} + +.no-properties { + width: 100%; + text-align: center; + font-size: 12px; + padding-top: 40px; + overflow: auto; + height: 100%; +} + From eee3c25d63bc339f5b25fa707987eafcb2c51221 Mon Sep 17 00:00:00 2001 From: junjun Date: Thu, 17 Nov 2022 19:59:51 +0800 Subject: [PATCH 2/6] =?UTF-8?q?refactor(=E8=A7=86=E5=9B=BE):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=A7=86=E5=9B=BE=E8=AE=A1=E7=AE=97=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/ChartViewService.java | 47 ++++++++++--------- frontend/src/views/chart/view/ChartEdit.vue | 3 ++ 2 files changed, 29 insertions(+), 21 deletions(-) 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 32d6f0f62d..4ac293ebc8 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -578,8 +578,8 @@ public class ChartViewService { List xAxis = gson.fromJson(view.getXAxis(), tokenType); List xAxisExt = gson.fromJson(view.getXAxisExt(), tokenType); if (StringUtils.equalsIgnoreCase(view.getType(), "table-pivot") - || StringUtils.containsIgnoreCase(view.getType(), "group") - || ("antv".equalsIgnoreCase(view.getRender()) && "line".equalsIgnoreCase(view.getType()))) { + || StringUtils.containsIgnoreCase(view.getType(), "group") + || ("antv".equalsIgnoreCase(view.getRender()) && "line".equalsIgnoreCase(view.getType()))) { xAxis.addAll(xAxisExt); } List yAxis = gson.fromJson(view.getYAxis(), tokenType); @@ -596,6 +596,12 @@ public class ChartViewService { List fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType); List drill = gson.fromJson(view.getDrillFields(), tokenType); + // 视图计算字段,用dataeaseName作为唯一标识 + ChartViewField chartViewField = new ChartViewField(); + chartViewField.setChartId(view.getId()); + List chartViewFields = chartViewFieldService.list(chartViewField); + List chartViewFieldNameList = chartViewFields.stream().map(ChartViewField::getDataeaseName).collect(Collectors.toList()); + DatasetTableField datasetTableFieldObj = DatasetTableField.builder().tableId(view.getTableId()).checked(Boolean.TRUE).build(); List fields = dataSetTableFieldsService.list(datasetTableFieldObj); @@ -609,11 +615,10 @@ public class ChartViewService { //将没有权限的列删掉 List dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList()); dataeaseNames.add("*"); - fieldCustomFilter = fieldCustomFilter.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); - extStack = extStack.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); - extBubble = extBubble.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); - drill = drill.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); - + fieldCustomFilter = fieldCustomFilter.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + extStack = extStack.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + extBubble = extBubble.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + drill = drill.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); //行权限 List rowPermissionsTree = permissionsTreeService.getRowPermissionsTree(fields, table, chartExtRequest.getUser()); @@ -644,7 +649,7 @@ public class ChartViewService { switch (view.getType()) { case "label": - xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); yAxis = new ArrayList<>(); if (CollectionUtils.isEmpty(xAxis)) { return emptyChartViewDTO(view); @@ -654,32 +659,32 @@ public class ChartViewService { case "gauge": case "liquid": xAxis = new ArrayList<>(); - yAxis = yAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); if (CollectionUtils.isEmpty(yAxis)) { return emptyChartViewDTO(view); } break; case "table-info": yAxis = new ArrayList<>(); - xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); + xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); if (CollectionUtils.isEmpty(xAxis)) { return emptyChartViewDTO(view); } break; case "table-normal": - xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); - yAxis = yAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); + xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); + yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); break; case "bar-group": case "bar-group-stack": - xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); - yAxis = yAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); - xAxisBase = xAxisBase.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); - xAxisExt = xAxisExt.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + xAxisBase = xAxisBase.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + xAxisExt = xAxisExt.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); break; default: - xAxis = xAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); - yAxis = yAxis.stream().filter(item -> StringUtils.isNotEmpty(item.getChartId()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); + yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); } // 过滤来自仪表板的条件 @@ -701,8 +706,8 @@ public class ChartViewService { hasParameters = true; } if (parameter.contains("|DE|") - && table.getId().equals(parameter.split("\\|DE\\|")[0]) - && sqlVariables + && table.getId().equals(parameter.split("\\|DE\\|")[0]) + && sqlVariables .stream() .map(SqlVariableDetails::getVariableName) .collect(Collectors.toList()) @@ -1160,7 +1165,7 @@ public class ChartViewService { mapChart = ChartDataBuild.transChartData(xAxis, yAxis, view, data, isDrill); } } else if (StringUtils.equalsIgnoreCase(view.getRender(), "antv")) { - if (StringUtils.equalsAnyIgnoreCase(view.getType(), "bar-group","line")) { + if (StringUtils.equalsAnyIgnoreCase(view.getType(), "bar-group", "line")) { mapChart = ChartDataBuild.transBaseGroupDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill); } else if (StringUtils.equalsIgnoreCase(view.getType(), "bar-group-stack")) { mapChart = ChartDataBuild.transGroupStackDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, extStack, data, view, isDrill); diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index ca517c265f..ae3f8df8fe 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -2790,6 +2790,8 @@ export default { closeEditChartField() { this.showEditChartField = false this.initTableField(this.table.id) + // 因动态计算较多,更新字段后重新计算视图数据 + this.calcData() }, // drag @@ -2879,6 +2881,7 @@ export default { } } } + this.view.customFilter[e.newDraggableIndex].filter = [] this.dragMoveDuplicate(this.view.customFilter, e) this.dragRemoveChartField(this.view.customFilter, e) this.calcData(true) From 6cf8943a0647330a7d5aee692f6aaa98883eb3e2 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Fri, 18 Nov 2022 00:01:03 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat(=E6=95=B0=E6=8D=AE=E9=9B=86):=20?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/DataSetTableFieldController.java | 22 ++++++++++++-- .../engine/doris/DorisQueryProvider.java | 13 ++++++++ .../engine/mysql/MysqlQueryProvider.java | 13 ++++++++ .../query/mysql/MysqlQueryProvider.java | 30 +++++++++---------- .../sqlserver/SqlserverQueryProvider.java | 12 ++++++++ frontend/src/api/dataset/dataset.js | 8 +++++ frontend/src/views/dataset/data/FieldEdit.vue | 6 +++- 7 files changed, 85 insertions(+), 19 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java index 8d71eaf194..8b3f97c1e2 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java @@ -16,10 +16,16 @@ import io.dataease.controller.response.DatasetTableField4Type; import io.dataease.i18n.Translator; import io.dataease.plugins.common.base.domain.DatasetTable; import io.dataease.plugins.common.base.domain.DatasetTableField; +import io.dataease.plugins.common.base.domain.Datasource; +import io.dataease.plugins.datasource.entity.Dateformat; +import io.dataease.plugins.datasource.query.QueryProvider; +import io.dataease.provider.ProviderFactory; import io.dataease.service.dataset.DataSetFieldService; import io.dataease.service.dataset.DataSetTableFieldsService; import io.dataease.service.dataset.DataSetTableService; import io.dataease.service.dataset.PermissionService; +import io.dataease.service.datasource.DatasourceService; +import io.dataease.service.engine.EngineService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ObjectUtils; @@ -46,14 +52,16 @@ import java.util.stream.Collectors; public class DataSetTableFieldController { @Resource private DataSetTableFieldsService dataSetTableFieldsService; - @Autowired private DataSetFieldService dataSetFieldService; - @Resource private DataSetTableService dataSetTableService; @Resource private PermissionService permissionService; + @Resource + private EngineService engineService; + @Resource + private DatasourceService datasourceService; @DePermission(type = DePermissionType.DATASET) @ApiOperation("查询表下属字段") @@ -208,4 +216,14 @@ public class DataSetTableFieldController { ArrayList::new)); return list; } + + @DePermission(type = DePermissionType.DATASET) + @ApiOperation("时间格式") + @PostMapping("dateformats/{tableId}") + public List dateformats(@PathVariable String tableId) throws Exception{ + DatasetTable datasetTable = dataSetTableService.get(tableId); + Datasource ds = datasetTable.getMode() == 0 ? datasourceService.get(datasetTable.getDataSourceId()) : engineService.getDeEngine(); + QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); + return qp.dateformat(); + } } diff --git a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java index 8b9a23b56d..03ba7d0460 100644 --- a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java @@ -1,5 +1,6 @@ package io.dataease.provider.engine.doris; +import com.alibaba.fastjson.JSONArray; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; @@ -16,6 +17,7 @@ import io.dataease.plugins.common.dto.sqlObj.SQLObj; import io.dataease.plugins.common.request.chart.ChartExtFilterRequest; import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO; import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem; +import io.dataease.plugins.datasource.entity.Dateformat; import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.Utils; import org.apache.commons.collections4.CollectionUtils; @@ -1311,4 +1313,15 @@ public class DorisQueryProvider extends QueryProvider { return sql; } } + + public List dateformat() { + return JSONArray.parseArray("[\n" + + "{\"dateformat\": \"%Y-%m-%d\"},\n" + + "{\"dateformat\": \"%Y/%m/%d\"},\n" + + "{\"dateformat\": \"%Y%m%d\"},\n" + + "{\"dateformat\": \"%Y-%m-%d %H:%i:%S\"},\n" + + "{\"dateformat\": \"%Y/%m/%d %H:%i:%S\"},\n" + + "{\"dateformat\": \"%Y%m%d %H:%i:%S\"}\n" + + "]", Dateformat.class); + } } diff --git a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java index cb426517e4..8ab3793784 100644 --- a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java @@ -1,5 +1,6 @@ package io.dataease.provider.engine.mysql; +import com.alibaba.fastjson.JSONArray; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; @@ -16,6 +17,7 @@ import io.dataease.plugins.common.dto.sqlObj.SQLObj; import io.dataease.plugins.common.request.chart.ChartExtFilterRequest; import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO; import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem; +import io.dataease.plugins.datasource.entity.Dateformat; import io.dataease.plugins.datasource.query.QueryProvider; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -1312,4 +1314,15 @@ public class MysqlQueryProvider extends QueryProvider { return sql; } } + + public List dateformat() { + return JSONArray.parseArray("[\n" + + "{\"dateformat\": \"%Y-%m-%d\"},\n" + + "{\"dateformat\": \"%Y/%m/%d\"},\n" + + "{\"dateformat\": \"%Y%m%d\"},\n" + + "{\"dateformat\": \"%Y-%m-%d %H:%i:%S\"},\n" + + "{\"dateformat\": \"%Y/%m/%d %H:%i:%S\"},\n" + + "{\"dateformat\": \"%Y%m%d %H:%i:%S\"}\n" + + "]", Dateformat.class); + } } diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index b02ee4ef54..93e2d2ad59 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -1,5 +1,6 @@ package io.dataease.provider.query.mysql; +import com.alibaba.fastjson.JSONArray; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; @@ -17,7 +18,7 @@ import io.dataease.plugins.common.dto.sqlObj.SQLObj; import io.dataease.plugins.common.request.chart.ChartExtFilterRequest; import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO; import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem; -import io.dataease.plugins.datasource.entity.PageInfo; +import io.dataease.plugins.datasource.entity.Dateformat; import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.Utils; import org.apache.commons.collections4.CollectionUtils; @@ -374,20 +375,6 @@ public class MysqlQueryProvider extends QueryProvider { @Override public String getSQLTableInfo(String table, List xAxis, List fieldCustomFilter, List rowPermissionsTree, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) { - return sqlLimit(originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view), view); - } - - @Override - public String getSQLWithPage(boolean isTable, String table, List xAxis, List fieldCustomFilter, List rowPermissionsTree, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view, PageInfo pageInfo) { - String limit = ((pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) ? " LIMIT " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize() + "," + pageInfo.getPageSize() : ""); - if (isTable) { - return originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view) + limit; - } else { - return originalTableInfo("(" + sqlFix(table) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view) + limit; - } - } - - private String originalTableInfo(String table, List xAxis, List fieldCustomFilter, List rowPermissionsTree, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -458,7 +445,7 @@ public class MysqlQueryProvider extends QueryProvider { .build(); if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders); if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL); - return st.render(); + return sqlLimit(st.render(), view); } @Override @@ -1333,4 +1320,15 @@ public class MysqlQueryProvider extends QueryProvider { public String sqlForPreview(String table, Datasource ds) { return "SELECT * FROM " + String.format(MySQLConstants.KEYWORD_TABLE, table); } + + public List dateformat() { + return JSONArray.parseArray("[\n" + + "{\"dateformat\": \"%Y-%m-%d\"},\n" + + "{\"dateformat\": \"%Y/%m/%d\"},\n" + + "{\"dateformat\": \"%Y%m%d\"},\n" + + "{\"dateformat\": \"%Y-%m-%d %H:%i:%S\"},\n" + + "{\"dateformat\": \"%Y/%m/%d %H:%i:%S\"},\n" + + "{\"dateformat\": \"%Y%m%d %H:%i:%S\"}\n" + + "]", Dateformat.class); + } } diff --git a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java index 46cc773569..5acfdef48b 100644 --- a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java @@ -1,5 +1,7 @@ package io.dataease.provider.query.sqlserver; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.plugins.common.base.domain.DatasetTableField; @@ -17,6 +19,7 @@ import io.dataease.plugins.common.dto.sqlObj.SQLObj; import io.dataease.plugins.common.request.chart.ChartExtFilterRequest; import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO; import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem; +import io.dataease.plugins.datasource.entity.Dateformat; import io.dataease.plugins.datasource.entity.JdbcConfiguration; import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.Utils; @@ -1331,4 +1334,13 @@ public class SqlserverQueryProvider extends QueryProvider { schema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema); return "SELECT * FROM " + schema + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, table); } + + public List dateformat() { + return JSONArray.parseArray("[\n" + + "{\"dateformat\": \"102\", \"desc\": \"yyyy.mm.dd\"},\n" + + "{\"dateformat\": \"23\", \"desc\": \"yyyy-mm-dd\"},\n" + + "{\"dateformat\": \"111\", \"desc\": \"yyyy/mm/dd\"},\n" + + "{\"dateformat\": \"120\", \"desc\": \"yyyy-mm-dd hh:mi:ss\"}\n" + + "]", Dateformat.class); + } } diff --git a/frontend/src/api/dataset/dataset.js b/frontend/src/api/dataset/dataset.js index c96d1a7bec..fc4c5b7c69 100644 --- a/frontend/src/api/dataset/dataset.js +++ b/frontend/src/api/dataset/dataset.js @@ -136,6 +136,14 @@ export function fieldListDQ(id, showLoading = true) { }) } +export function dateformats(id, showLoading = true) { + return request({ + url: '/dataset/field/dateformats/' + id, + loading: showLoading, + method: 'post' + }) +} + export function batchEdit(data) { return request({ url: '/dataset/field/batchEdit', diff --git a/frontend/src/views/dataset/data/FieldEdit.vue b/frontend/src/views/dataset/data/FieldEdit.vue index 44eb1336f7..6e879d8947 100644 --- a/frontend/src/views/dataset/data/FieldEdit.vue +++ b/frontend/src/views/dataset/data/FieldEdit.vue @@ -736,7 +736,7 @@