From 1dadd2289c2da2aa4d32889c25755df36e359313 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 2 Apr 2025 15:21:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/DataVisualizationServer.java | 2 +- .../src/components/dashboard/DbToolbar.vue | 19 +++++++------ .../data-visualization/DvToolbar.vue | 27 ++++++++++++------- .../src/views/common/DeResourceGroupOpt.vue | 8 +++--- .../auth/dto/BusiResourceCreator.java | 1 + 5 files changed, 35 insertions(+), 22 deletions(-) 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 01fbdf5364..8a1adff22a 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 @@ -514,7 +514,7 @@ public class DataVisualizationServer implements DataVisualizationApi { coreVisualizationManage.move(request); } } - visualizationInfo.setStatus(request.getStatus()!=null?request.getStatus():CommonConstants.DV_STATUS.SAVED_UNPUBLISHED); + visualizationInfo.setStatus(CommonConstants.DV_STATUS.SAVED_UNPUBLISHED); coreVisualizationManage.innerEdit(visualizationInfo); //保存图表信息 chartDataManage.saveChartViewFromVisualization(request.getComponentData(), dvId, request.getCanvasViewInfo()); diff --git a/core/core-frontend/src/components/dashboard/DbToolbar.vue b/core/core-frontend/src/components/dashboard/DbToolbar.vue index e79e23d8c8..492485cff8 100644 --- a/core/core-frontend/src/components/dashboard/DbToolbar.vue +++ b/core/core-frontend/src/components/dashboard/DbToolbar.vue @@ -204,7 +204,7 @@ const publishStatusChange = status => { }) } -const saveCanvasWithCheck = () => { +const saveCanvasWithCheck = (withPublish = false, status?) => { if (userStore.getOid && wsCache.get('user.oid') && userStore.getOid !== wsCache.get('user.oid')) { ElMessageBox.confirm(t('components.from_other_organizations'), { confirmButtonType: 'primary', @@ -235,18 +235,18 @@ const saveCanvasWithCheck = () => { }) } else { const params = { name: dvInfo.value.name, leaf: true, id: dvInfo.value.pid || '0' } - resourceGroupOpt.value.optInit('leaf', params, 'newLeaf', true) + resourceGroupOpt.value.optInit('leaf', params, 'newLeaf', true, { withPublish, status }) return } } checkCanvasChangePre(() => { - saveResource() + saveResource({ withPublish, status }) }) } -const saveResource = () => { +const saveResource = (checkParams?) => { wsCache.delete('DE-DV-CATCH-' + dvInfo.value.id) - if (styleChangeTimes.value > 0) { + if (styleChangeTimes.value > 0 || checkParams.withPublish) { dvMainStore.matrixSizeAdaptor() queryList.value.forEach(ele => { useEmitt().emitter.emit(`updateQueryCriteria${ele.id}`) @@ -254,7 +254,6 @@ const saveResource = () => { try { canvasSave(() => { snapshotStore.resetStyleChangeTimes() - ElMessage.success(t('common.save_success')) let url = window.location.href url = url.replace(/\?opt=create/, `?resourceId=${dvInfo.value.id}`) if (!embeddedStore.baseUrl) { @@ -276,6 +275,11 @@ const saveResource = () => { snapshotStore.resetSnapshot() }) } + if (checkParams.withPublish) { + publishStatusChange(checkParams.status) + } else { + ElMessage.success(t('commons.save_success')) + } }) } catch (e) { console.error(e) @@ -726,8 +730,7 @@ const initOpenHandler = newWindow => { diff --git a/core/core-frontend/src/components/data-visualization/DvToolbar.vue b/core/core-frontend/src/components/data-visualization/DvToolbar.vue index 92e50176da..ab2ebde284 100644 --- a/core/core-frontend/src/components/data-visualization/DvToolbar.vue +++ b/core/core-frontend/src/components/data-visualization/DvToolbar.vue @@ -120,11 +120,11 @@ const resourceOptFinish = param => { dvInfo.value.dataState = 'ready' dvInfo.value.pid = param.pid dvInfo.value.name = param.name - saveCanvasWithCheck() + saveCanvasWithCheck(param.withPublish, param.status) } } -const saveCanvasWithCheck = () => { +const saveCanvasWithCheck = (withPublish = false, status?) => { if (userStore.getOid && wsCache.get('user.oid') && userStore.getOid !== wsCache.get('user.oid')) { ElMessageBox.confirm('已切换至新组织,无权保存其他组织的资源', { confirmButtonType: 'primary', @@ -154,24 +154,27 @@ const saveCanvasWithCheck = () => { resourceAppOpt.value.init(params) }) } else { - const params = { name: dvInfo.value.name, leaf: true, id: dvInfo.value.pid || '0' } - resourceGroupOpt.value.optInit('leaf', params, 'newLeaf', true) + const params = { + name: dvInfo.value.name, + leaf: true, + id: dvInfo.value.pid || '0' + } + resourceGroupOpt.value.optInit('leaf', params, 'newLeaf', true, { withPublish, status }) } return } checkCanvasChangePre(() => { - saveResource() + saveResource({ withPublish, status }) }) } -const saveResource = () => { - if (styleChangeTimes.value > 0) { +const saveResource = (checkParams?) => { + if (styleChangeTimes.value > 0 || checkParams.withPublish) { eventBus.emit('hideArea-canvas-main') nextTick(() => { canvasSave(() => { snapshotStore.resetStyleChangeTimes() wsCache.delete('DE-DV-CATCH-' + dvInfo.value.id) - ElMessage.success(t('commons.save_success')) let url = window.location.href url = url.replace(/\?opt=create/, `?dvId=${dvInfo.value.id}`) if (!embeddedStore.baseUrl) { @@ -192,6 +195,11 @@ const saveResource = () => { snapshotStore.resetSnapshot() }) } + if (checkParams.withPublish) { + publishStatusChange(checkParams.status) + } else { + ElMessage.success(t('commons.save_success')) + } }) }) } @@ -476,8 +484,7 @@ const fullScreenPreview = () => { diff --git a/core/core-frontend/src/views/common/DeResourceGroupOpt.vue b/core/core-frontend/src/views/common/DeResourceGroupOpt.vue index ac1fcfd3f5..7a7bda5b4f 100644 --- a/core/core-frontend/src/views/common/DeResourceGroupOpt.vue +++ b/core/core-frontend/src/views/common/DeResourceGroupOpt.vue @@ -31,7 +31,8 @@ const { t } = useI18n() const state = reactive({ tData: [], nameList: [], - targetInfo: null + targetInfo: null, + attachParams: null }) const showParentSelected = ref(false) @@ -135,9 +136,10 @@ const getDialogTitle = exec => { } const placeholder = ref('') -const optInit = (type, data: BusiTreeNode, exec, parentSelect = false) => { +const optInit = (type, data: BusiTreeNode, exec, parentSelect = false, attachParams?) => { showParentSelected.value = parentSelect state.targetInfo = data + state.attachParams = attachParams nodeType.value = type const optSource = data.leaf || type === 'leaf' ? sourceLabel.value : t('visualization.folder') const placeholderLabel = @@ -286,7 +288,7 @@ const saveResource = () => { } if (cmd.value === 'newLeaf') { resourceDialogShow.value = false - emits('finish', { opt: 'newLeaf', ...params }) + emits('finish', { opt: 'newLeaf', ...params, ...state.attachParams }) } else { loading.value = true const method = methodMap[cmd.value] ? methodMap[cmd.value] : updateBase diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiResourceCreator.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiResourceCreator.java index 5cf3cf6554..2672254964 100644 --- a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiResourceCreator.java +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiResourceCreator.java @@ -19,4 +19,5 @@ public class BusiResourceCreator implements Serializable { private Long pid = 0L; private Boolean leaf; private int extraFlag; + private int extraFlag1; }