refactor: 仪表板不同导出增加日志记录 (#17061)

This commit is contained in:
王嘉豪
2025-09-23 11:42:34 +08:00
committed by GitHub
parent 6ce18b5b2b
commit 338534e87c
9 changed files with 95 additions and 1 deletions

View File

@@ -10,6 +10,7 @@ import io.dataease.chart.constant.ChartConstants;
import io.dataease.chart.manage.ChartDataManage;
import io.dataease.constant.AuthConstant;
import io.dataease.constant.CommonConstants;
import io.dataease.constant.LogOT;
import io.dataease.dataset.manage.PermissionManage;
import io.dataease.dataset.server.DatasetFieldServer;
import io.dataease.constant.DeTypeConstants;
@@ -21,6 +22,7 @@ import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
import io.dataease.extensions.view.dto.*;
import io.dataease.i18n.Lang;
import io.dataease.license.manage.F2CLicLimitedManage;
import io.dataease.log.DeLog;
import io.dataease.result.ResultCode;
import io.dataease.utils.JsonUtil;
import io.dataease.utils.LogUtil;

View File

@@ -952,6 +952,26 @@ public class DataVisualizationServer implements DataVisualizationApi {
return new VisualizationExport2AppVO(chartViewVOInfo, datasetGroupVOInfo, datasetTableVOInfo, datasetTableFieldVOInfo, datasourceVOInfo, datasourceTaskVOInfo, linkJumpVOInfo, linkJumpInfoVOInfo, listJumpTargetViewInfoVO, linkageVOInfo, linkageFieldVOInfo);
}
@DeLog(id = "#p0.id", ot = LogOT.APP_TEMPLATE_EXPORT, stExp = "#p0.type")
public void exportLogApp(DataVisualizationBaseRequest request){
}
@DeLog(id = "#p0.id", ot = LogOT.TEMPLATE_EXPORT, stExp = "#p0.type")
public void exportLogTemplate(DataVisualizationBaseRequest request){
}
@DeLog(id = "#p0.id", ot = LogOT.PDF_EXPORT, stExp = "#p0.type")
public void exportLogPDF(DataVisualizationBaseRequest request){
}
@DeLog(id = "#p0.id", ot = LogOT.IMG_EXPORT, stExp = "#p0.type")
public void exportLogImg(DataVisualizationBaseRequest request){
}
@Override
public void nameCheck(DataVisualizationBaseRequest request) {

View File

@@ -160,3 +160,12 @@ export const queryShareBaseApi = () => {
loading: false
})
}
export const exportLogApp = data => request.post({ url: '/dataVisualization/exportLogApp', data })
export const exportLogTemplate = data =>
request.post({ url: '/dataVisualization/exportLogTemplate', data })
export const exportLogPDF = data => request.post({ url: '/dataVisualization/exportLogPDF', data })
export const exportLogImg = data => request.post({ url: '/dataVisualization/exportLogImg', data })

View File

@@ -19,6 +19,12 @@ import { useEmitt } from '@/hooks/web/useEmitt'
import { useUserStoreWithOut } from '@/store/modules/user'
import { useI18n } from '@/hooks/web/useI18n'
import CanvasOptBar from '@/components/visualization/CanvasOptBar.vue'
import {
exportLogApp,
exportLogImg,
exportLogPDF,
exportLogTemplate
} from '@/api/visualization/dataVisualization'
const userStore = useUserStoreWithOut()
const userName = computed(() => userStore.getName)
@@ -136,6 +142,11 @@ const downloadH2 = type => {
const vueDom = previewCanvasContainer.value.querySelector('.canvas-container')
downloadCanvas2(type, vueDom, state.dvInfo.name, () => {
downloadStatus.value = false
const param = {
id: state.dvInfo.id,
type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen'
}
type === 'img' ? exportLogImg(param) : exportLogPDF(param)
mapElementIds.forEach(id => useEmitt().emitter.emit('l7-unprepare-picture', id))
})
})
@@ -182,6 +193,11 @@ const fileDownload = (downloadType, attachParams) => {
const vueDom = previewCanvasContainer.value.querySelector('.canvas-container')
download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, () => {
downloadStatus.value = false
const param = {
id: state.dvInfo.id,
type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen'
}
downloadType === 'app' ? exportLogApp(param) : exportLogTemplate(param)
})
})
}

View File

@@ -20,6 +20,12 @@ import { useEmitt } from '@/hooks/web/useEmitt'
import { useUserStoreWithOut } from '@/store/modules/user'
import { useI18n } from '@/hooks/web/useI18n'
import {
exportLogApp,
exportLogImg,
exportLogPDF,
exportLogTemplate
} from '@/api/visualization/dataVisualization'
const userStore = useUserStoreWithOut()
const userName = computed(() => userStore.getName)
@@ -113,6 +119,11 @@ const download = type => {
const vueDom = previewCanvasContainer.value.querySelector('.canvas-container')
downloadCanvas2(type, vueDom, state.dvInfo.name, () => {
downloadStatus.value = false
const param = {
id: state.dvInfo.id,
type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen'
}
type === 'img' ? exportLogImg(param) : exportLogPDF(param)
})
}, 200)
}
@@ -123,6 +134,11 @@ const fileDownload = (downloadType, attachParams) => {
const vueDom = previewCanvasContainer.value.querySelector('.canvas-container')
download2AppTemplate(downloadType, vueDom, state.dvInfo.name, attachParams, () => {
downloadStatus.value = false
const param = {
id: state.dvInfo.id,
type: state.dvInfo.type === 'dashboard' ? 'panel' : 'screen'
}
downloadType === 'app' ? exportLogApp(param) : exportLogTemplate(param)
})
})
}

View File

@@ -148,4 +148,26 @@ public interface DataVisualizationApi {
@PostMapping("/export2AppCheck")
@Operation(summary = "仪表板视图明细数据")
VisualizationExport2AppVO export2AppCheck(@RequestBody VisualizationAppExportRequest appExportRequest);
@PostMapping("/exportLogApp")
@Operation(summary = "导出应用模板日志记录")
void exportLogApp(@RequestBody DataVisualizationBaseRequest request) throws Exception;
@PostMapping("/exportLogTemplate")
@Operation(summary = "导出样式模板日志记录")
void exportLogTemplate(@RequestBody DataVisualizationBaseRequest request) throws Exception;
@PostMapping("/exportLogPDF")
@Operation(summary = "导出PDF日志记录")
void exportLogPDF(@RequestBody DataVisualizationBaseRequest request) throws Exception;
@PostMapping("/exportLogImg")
@Operation(summary = "导出图片日志记录")
void exportLogImg(@RequestBody DataVisualizationBaseRequest request) throws Exception;
}

View File

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.dataease.api.visualization.vo.DataVisualizationVO;
import io.dataease.api.visualization.vo.VisualizationExport2AppVO;
import io.dataease.constant.LogOT;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -38,6 +39,8 @@ public class DataVisualizationBaseRequest extends DataVisualizationVO {
// 查询来源 main-edit= 主工程编辑区 main=主工程 report=定时报告
private String source;
private Integer logOTValue;
// 定时报告id
@JsonSerialize(using = ToStringSerializer.class)
private Long reportId;

View File

@@ -17,7 +17,11 @@ public enum LogOT {
BIND(12, "OPERATE_TYPE_BIND"),
UNBIND(13, "OPERATE_TYPE_UNBIND"),
LOGIN(14, "OPERATE_TYPE_LOGIN"),
DOWNLOAD(15, "OPERATE_TYPE_DOWNLOAD");
DOWNLOAD(15, "OPERATE_TYPE_DOWNLOAD"),
TEMPLATE_EXPORT(16, "OPERATE_TYPE_TEMPLATE_EXPORT"),
APP_TEMPLATE_EXPORT(17, "OPERATE_TYPE_APP_EXPORT"),
PDF_EXPORT(18, "OPERATE_TYPE_PDF_EXPORT"),
IMG_EXPORT(19, "OPERATE_TYPE_IMG_EXPORT");
private Integer value;
private String name;

View File

@@ -7,6 +7,8 @@ public enum LogST {
SCREEN(2, "SOURCE_TYPE_SCREEN"),
DATASET(3, "SOURCE_TYPE_DATASET"),
DATASOURCE(4, "SOURCE_TYPE_DATASOURCE"),
STYLE_TEMPLATE(4, "SOURCE_STYLE_TEMPLATE"),
APP_TEMPLATE(4, "SOURCE_APP_TEMPLATE"),
USER(5, "SOURCE_TYPE_USER"),
ROLE(6, "SOURCE_TYPE_ROLE"),
ORG(7, "SOURCE_TYPE_DEPT"),