From c779f97f42bcbe92e9f77d734793778261f76d8b Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Fri, 15 Nov 2024 15:30:52 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E5=9B=BE=E8=A1=A8):=20=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=87=BA=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/chart/server/ChartDataServer.java | 6 ++++++ core/core-frontend/src/api/chart.ts | 10 ++++++++++ .../src/views/chart/components/js/util.ts | 6 ++++-- .../main/java/io/dataease/api/chart/ChartDataApi.java | 4 ++++ .../dataease/api/chart/request/ChartExcelRequest.java | 2 ++ 5 files changed, 26 insertions(+), 2 deletions(-) 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;