diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java index 6dced84944..2e26522b8f 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java @@ -431,20 +431,17 @@ public class DataVisualizationServer implements DataVisualizationApi { @Override public String checkCanvasChange(DataVisualizationBaseRequest request) { Long dvId = request.getId(); - Boolean checkHistory = request.getCheckHistory(); if (dvId == null) { DEException.throwException("ID can not be null"); } // 内容ID校验 - if(checkHistory !=null && checkHistory){ - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("content_id", request.getContentId()); - queryWrapper.eq("id", dvId); - if (visualizationInfoMapper.exists(queryWrapper)) { - return "Repeat"; - } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("content_id", request.getContentId()); + queryWrapper.eq("id", dvId); + if (!visualizationInfoMapper.exists(queryWrapper)) { + return "Repeat"; } - return null; + return "Success"; } @DeLog(id = "#p0.id", ot = LogOT.MODIFY, stExp = "#p0.type") diff --git a/core/core-frontend/src/components/dashboard/DbToolbar.vue b/core/core-frontend/src/components/dashboard/DbToolbar.vue index 7dc8a17efb..e4628809c3 100644 --- a/core/core-frontend/src/components/dashboard/DbToolbar.vue +++ b/core/core-frontend/src/components/dashboard/DbToolbar.vue @@ -36,7 +36,7 @@ import MultiplexingCanvas from '@/views/common/MultiplexingCanvas.vue' import { useI18n } from '@/hooks/web/useI18n' import { getPanelAllLinkageInfo, saveLinkage } from '@/api/visualization/linkage' import { queryVisualizationJumpInfo } from '@/api/visualization/linkJump' -import { canvasSave, initCanvasData } from '@/utils/canvasUtils' +import { canvasSave, checkCanvasChangePre, initCanvasData } from '@/utils/canvasUtils' import { useEmitt } from '@/hooks/web/useEmitt' import { copyStoreWithOut } from '@/store/modules/data-visualization/copy' import TabsGroup from '@/custom-component/component-group/TabsGroup.vue' @@ -206,7 +206,9 @@ const saveCanvasWithCheck = () => { return } } - saveResource() + checkCanvasChangePre(() => { + saveResource() + }) } const saveResource = () => { diff --git a/core/core-frontend/src/components/data-visualization/DvToolbar.vue b/core/core-frontend/src/components/data-visualization/DvToolbar.vue index 04cd0574b1..500f12511f 100644 --- a/core/core-frontend/src/components/data-visualization/DvToolbar.vue +++ b/core/core-frontend/src/components/data-visualization/DvToolbar.vue @@ -26,13 +26,7 @@ import MediaGroup from '@/custom-component/component-group/MediaGroup.vue' import TextGroup from '@/custom-component/component-group/TextGroup.vue' import CommonGroup from '@/custom-component/component-group/CommonGroup.vue' import DeResourceGroupOpt from '@/views/common/DeResourceGroupOpt.vue' -import { - canvasSave, - checkCanvasChangePre, - checkCanvasHistory, - confirmUpdateCanvas, - initCanvasData -} from '@/utils/canvasUtils' +import { canvasSave, checkCanvasChangePre, initCanvasData } from '@/utils/canvasUtils' import { changeSizeWithScale } from '@/utils/changeComponentsSizeWithScale' import MoreComGroup from '@/custom-component/component-group/MoreComGroup.vue' import { XpackComponent } from '@/components/plugin' diff --git a/core/core-frontend/src/utils/canvasUtils.ts b/core/core-frontend/src/utils/canvasUtils.ts index 6dfaff4e53..9924511f20 100644 --- a/core/core-frontend/src/utils/canvasUtils.ts +++ b/core/core-frontend/src/utils/canvasUtils.ts @@ -13,7 +13,6 @@ import { appCanvasNameCheck, checkCanvasChange, decompression, - deleteLogic, dvNameCheck, findById, findCopyResource, @@ -32,16 +31,11 @@ import { deepCopy } from '@/utils/utils' import { ElMessage, ElMessageBox } from 'element-plus-secondary' import { guid } from '@/views/visualized/data/dataset/form/util' const dvMainStore = dvMainStoreWithOut() -const { - inMobile, - curBatchOptComponents, - dvInfo, - canvasStyleData, - componentData, - canvasViewInfo, - appData -} = storeToRefs(dvMainStore) +const { inMobile, dvInfo, canvasStyleData, componentData, canvasViewInfo, appData } = + storeToRefs(dvMainStore) const snapshotStore = snapshotStoreWithOut() +import { useI18n } from '@/hooks/web/useI18n' +const { t } = useI18n() export function chartTransStr2Object(targetIn, copy) { const target = copy === 'Y' ? cloneDeep(targetIn) : targetIn @@ -517,31 +511,27 @@ export function initCanvasDataMobile(dvId, busiFlag, callBack) { ) } -export function checkIsBatchOptView(viewId) { - return curBatchOptComponents.value.includes(viewId) -} - -export function checkCanvasHistory(callBack) { - ElMessageBox.confirm('当前存在变更是否覆盖', { - confirmButtonType: 'danger', - type: 'warning', - tip: '确认覆盖', - autofocus: false, - showClose: false - }).then(() => { - callBack() - }) -} - export function checkCanvasChangePre(callBack) { // do pre const isUpdate = dvInfo.value.id && dvInfo.value.optType !== 'copy' if (isUpdate) { - checkCanvasChange(dvInfo.value).then(rsp => { - if (rsp.data === 'Repeat') { - checkCanvasHistory(() => { + const params = { ...dvInfo.value, watermarkInfo: null } + const tips = + (dvInfo.value.type === 'dashboard' + ? t('work_branch.dashboard') + : t('work_branch.big_data_screen')) + '已被他人更新,是否覆盖保存?' + checkCanvasChange(params).then(rsp => { + if (rsp && rsp.data === 'Repeat') { + ElMessageBox.confirm(tips, { + confirmButtonType: 'danger', + type: 'warning', + autofocus: false, + showClose: false + }).then(() => { callBack() }) + } else { + callBack() } }) } else { @@ -602,7 +592,7 @@ export async function canvasSave(callBack) { }) } method(canvasInfo).then(res => { - dvMainStore.updateDvInfoId(res.data) + dvMainStore.updateDvInfoId(res.data, newContentId) snapshotStore.resetStyleChangeTimes() callBack(res) }) diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/DataVisualizationVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/DataVisualizationVO.java index 7ca3a31849..8609eaa452 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/DataVisualizationVO.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/DataVisualizationVO.java @@ -148,6 +148,7 @@ public class DataVisualizationVO implements Serializable { /** * 内容标识 */ + @JsonSerialize(using = ToStringSerializer.class) private String contentId; /**