diff --git a/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java b/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java index 3f1d231ab5..480b3efd6b 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java +++ b/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java @@ -296,6 +296,12 @@ public class ChartDataServer implements ChartDataApi { } } + @Override + public void innerExportDataSetDetails(ChartExcelRequest request, HttpServletResponse response) throws Exception { + this.innerExportDetails(request, response); + } + + public static void setExcelData(Sheet detailsSheet, CellStyle cellStyle, Object[] header, List details, ViewDetailField[] detailFields, Integer[] excelTypes) { boolean mergeHead = false; diff --git a/core/core-frontend/src/api/chart.ts b/core/core-frontend/src/api/chart.ts index c6239cd222..0c5ce85fef 100644 --- a/core/core-frontend/src/api/chart.ts +++ b/core/core-frontend/src/api/chart.ts @@ -72,6 +72,16 @@ export const innerExportDetails = async (data): Promise => { }) } +export const innerExportDataSetDetails = async (data): Promise => { + return request.post({ + url: '/chartData/innerExportDataSetDetails', + method: 'post', + data: data, + loading: true, + responseType: 'blob' + }) +} + // 通过图表id获取数据 export const getChart = async (id): Promise => { return request.post({ url: `/chart/getChart/${id}`, data: {} }).then(res => { diff --git a/core/core-frontend/src/views/chart/components/js/util.ts b/core/core-frontend/src/views/chart/components/js/util.ts index 6638e5552b..35ea614685 100644 --- a/core/core-frontend/src/views/chart/components/js/util.ts +++ b/core/core-frontend/src/views/chart/components/js/util.ts @@ -7,7 +7,7 @@ import { getGeoJson } from '@/api/map' import { computed, toRaw } from 'vue' import { Options } from '@antv/g2plot/esm' import { PickOptions } from '@antv/g2plot/esm/core/plot' -import { innerExportDetails } from '@/api/chart' +import { innerExportDataSetDetails, innerExportDetails } from '@/api/chart' import { ElMessage } from 'element-plus-secondary' import { useI18n } from '@/hooks/web/useI18n' import { useLinkStoreWithOut } from '@/store/modules/link' @@ -498,6 +498,7 @@ export const exportExcelDownload = (chart, callBack?) => { const excelName = chart.title let request: any = { proxy: null, + dvId: chart.sceneId, viewId: chart.id, viewInfo: chart, viewName: excelName, @@ -530,7 +531,8 @@ export const exportExcelDownload = (chart, callBack?) => { if (isDataEaseBi.value || appStore.getIsIframe) { request.dataEaseBi = true } - innerExportDetails(request) + const method = request.downloadType === 'dataset' ? innerExportDataSetDetails : innerExportDetails + method(request) .then(res => { if (linkStore.getLinkToken || isDataEaseBi.value || appStore.getIsIframe) { const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/chart/ChartDataApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/chart/ChartDataApi.java index 5cf2cf43f7..7693e48177 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/chart/ChartDataApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/chart/ChartDataApi.java @@ -26,6 +26,10 @@ public interface ChartDataApi { @PostMapping("innerExportDetails") void innerExportDetails(@RequestBody ChartExcelRequest request, HttpServletResponse response) throws Exception; + @Operation(summary = "导出明细数据") + @PostMapping("innerExportDataSetDetails") + void innerExportDataSetDetails(@RequestBody ChartExcelRequest request, HttpServletResponse response) throws Exception; + @Operation(summary = "获取字段值") @PostMapping("getFieldData/{fieldId}/{fieldType}") List getFieldData(@RequestBody ChartViewDTO view, @PathVariable Long fieldId, @PathVariable String fieldType) throws Exception; diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/chart/request/ChartExcelRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/chart/request/ChartExcelRequest.java index 0cdd3ed3c7..225a550ff0 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/chart/request/ChartExcelRequest.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/chart/request/ChartExcelRequest.java @@ -15,6 +15,8 @@ public class ChartExcelRequest extends ChartExcelRequestInner { @Serial private static final long serialVersionUID = 3829386417457449431L; + private String dvId; + private String viewId; private String viewName;