diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java index 8259c8727e..d70a50a101 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java @@ -674,6 +674,7 @@ public class DatasetDataManage { } // 排序 + boolean sortDistinct = true; if (ObjectUtils.isNotEmpty(request.getSortId())) { DatasetTableFieldDTO field = datasetTableFieldManage.selectById(request.getSortId()); if (field == null) { @@ -683,13 +684,14 @@ public class DatasetDataManage { BeanUtils.copyBean(deSortField, field); deSortField.setOrderDirection(request.getSort()); datasetGroupInfoDTO.setSortFields(Collections.singletonList(deSortField)); + sortDistinct = false; } Field2SQLObj.field2sqlObj(sqlMeta, fields, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap); ExtWhere2Str.extWhere2sqlOjb(sqlMeta, extFilterList, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap); WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, fields, crossDs, dsMap); Order2SQLObj.getOrders(sqlMeta, fields, datasetGroupInfoDTO.getSortFields(), crossDs, dsMap); - String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, ids.size() == 1, 0, 1000); + String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, sortDistinct && ids.size() == 1, 0, 1000); querySQL = SqlUtils.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); logger.info("calcite data enum sql: " + querySQL); diff --git a/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java b/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java index 2d435bc732..744f79da9e 100644 --- a/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java +++ b/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java @@ -160,7 +160,7 @@ public class ExportCenterManage { exportTaskMapper.updateById(exportTask); FileUtils.deleteDirectoryRecursively(exportData_path + id); if (exportTask.getExportFromType().equalsIgnoreCase("chart")) { - ChartExcelRequest request = JsonUtil.parse(exportTask.getParams(), ChartExcelRequest.class); + ChartExcelRequest request = JsonUtil.parseObject(exportTask.getParams(), ChartExcelRequest.class); startViewTask(exportTask, request); } } diff --git a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java index 4f53fb57a0..6a263eabc5 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java @@ -54,14 +54,18 @@ public class CoreVisualizationExportManage { } if (CollectionUtils.isEmpty(chartViewDTOS)) return null; Map chartExtRequestMap = buildViewRequest(visualization, onlyDisplay); - List sheets = chartViewDTOS.stream().map(view -> { + List sheets = new ArrayList<>(); + for (int i = 0; i < chartViewDTOS.size(); i++) { + ChartViewDTO view = chartViewDTOS.get(i); ChartExtRequest extRequest = chartExtRequestMap.get(view.getId().toString()); if (ObjectUtils.isNotEmpty(extRequest)) { view.setChartExtRequest(extRequest); } view.getChartExtRequest().setUser(AuthUtils.getUser().getUserId()); - return exportViewData(view); - }).toList(); + view.setTitle((i + 1) + "-" + view.getTitle()); + sheets.add(exportViewData(view)); + } + return VisualizationExcelUtils.exportExcel(sheets, visualization.getName(), visualization.getId().toString()); } diff --git a/core/core-backend/src/main/resources/application-standalone.yml b/core/core-backend/src/main/resources/application-standalone.yml index e6102c02c8..b521aa59d0 100644 --- a/core/core-backend/src/main/resources/application-standalone.yml +++ b/core/core-backend/src/main/resources/application-standalone.yml @@ -3,10 +3,6 @@ spring: url: jdbc:mysql://localhost:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 -# datasource: -# url: jdbc:mysql://39.98.78.97:13306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true -# username: root -# password: Password123@mysql messages: basename: i18n/lic,i18n/core,i18n/permissions,i18n/xpack flyway: diff --git a/core/core-frontend/src/assets/svg/db-more-web.svg b/core/core-frontend/src/assets/svg/db-more-web.svg index d0c9a5abcd..9bc701c656 100644 --- a/core/core-frontend/src/assets/svg/db-more-web.svg +++ b/core/core-frontend/src/assets/svg/db-more-web.svg @@ -1 +1 @@ - + diff --git a/core/core-frontend/src/assets/svg/icon-stream.svg b/core/core-frontend/src/assets/svg/icon-stream.svg index 45b0fdc914..3f2aaa3d5c 100644 --- a/core/core-frontend/src/assets/svg/icon-stream.svg +++ b/core/core-frontend/src/assets/svg/icon-stream.svg @@ -1 +1 @@ - + diff --git a/core/core-frontend/src/assets/svg/icon-video.svg b/core/core-frontend/src/assets/svg/icon-video.svg index 1e0c4ede65..1d7e84e93f 100644 --- a/core/core-frontend/src/assets/svg/icon-video.svg +++ b/core/core-frontend/src/assets/svg/icon-video.svg @@ -1 +1 @@ - + diff --git a/core/core-frontend/src/components/collapse-switch-item/src/CollapseSwitchItem.vue b/core/core-frontend/src/components/collapse-switch-item/src/CollapseSwitchItem.vue index e46fd207b6..046ce69e8d 100644 --- a/core/core-frontend/src/components/collapse-switch-item/src/CollapseSwitchItem.vue +++ b/core/core-frontend/src/components/collapse-switch-item/src/CollapseSwitchItem.vue @@ -69,7 +69,7 @@ const switchValue = computed({ display: flex; justify-content: space-between; align-items: center; - padding-right: 8px; + padding-right: 10px; flex-grow: 1; :deep(.ed-switch.is-checked .ed-switch__core > .ed-switch__action) { left: calc(100% - 12px); diff --git a/core/core-frontend/src/components/data-visualization/canvas/ComponentWrapper.vue b/core/core-frontend/src/components/data-visualization/canvas/ComponentWrapper.vue index 28addd5895..66077baac5 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/ComponentWrapper.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/ComponentWrapper.vue @@ -207,7 +207,11 @@ const deepScale = computed(() => scale.value / 100) @userViewEnlargeOpen="opt => emits('userViewEnlargeOpen', opt)" >
diff --git a/core/core-frontend/src/components/data-visualization/canvas/ContextMenuDetails.vue b/core/core-frontend/src/components/data-visualization/canvas/ContextMenuDetails.vue index e824380a85..02f3516647 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/ContextMenuDetails.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/ContextMenuDetails.vue @@ -10,6 +10,7 @@ import { computed, toRefs } from 'vue' import { ElDivider } from 'element-plus-secondary' import eventBus from '@/utils/eventBus' import { getCurInfo } from '@/store/modules/data-visualization/common' +import { useEmitt } from '@/hooks/web/useEmitt' const dvMainStore = dvMainStoreWithOut() const copyStore = copyStoreWithOut() const lockStore = lockStoreWithOut() @@ -20,6 +21,7 @@ const composeStore = composeStoreWithOut() const { areaData } = storeToRefs(composeStore) const { curComponent } = storeToRefs(dvMainStore) const emit = defineEmits(['close', 'rename']) +const { emitter } = useEmitt() const props = defineProps({ activePosition: { type: String, @@ -157,6 +159,10 @@ const composeDivider = computed(() => { const isGroupArea = computed(() => { return curComponent.value?.component === 'GroupArea' }) + +const editQueryCriteria = () => { + emitter.emit(`editQueryCriteria${curComponent.value.id}`) +}