mirror of
https://github.com/dataease/dataease.git
synced 2025-02-24 11:32:57 +08:00
refactor(图表): 图表导出权限控制优化
This commit is contained in:
parent
f62efef775
commit
c779f97f42
@ -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<Object[]> details, ViewDetailField[] detailFields, Integer[] excelTypes) {
|
||||
boolean mergeHead = false;
|
||||
|
@ -72,6 +72,16 @@ export const innerExportDetails = async (data): Promise<IResponse> => {
|
||||
})
|
||||
}
|
||||
|
||||
export const innerExportDataSetDetails = async (data): Promise<IResponse> => {
|
||||
return request.post({
|
||||
url: '/chartData/innerExportDataSetDetails',
|
||||
method: 'post',
|
||||
data: data,
|
||||
loading: true,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// 通过图表id获取数据
|
||||
export const getChart = async (id): Promise<IResponse> => {
|
||||
return request.post({ url: `/chart/getChart/${id}`, data: {} }).then(res => {
|
||||
|
@ -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' })
|
||||
|
@ -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<String> getFieldData(@RequestBody ChartViewDTO view, @PathVariable Long fieldId, @PathVariable String fieldType) throws Exception;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user