From 096de8a3d1a4e2754b4d47cc699e3a43fdbd169e Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Sun, 28 Jan 2024 19:16:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E5=8F=AF=E4=BB=A5=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E5=88=B0=E5=85=B6=E8=87=AA=E8=BA=AB=E7=9A=84=E5=AD=90=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E9=80=A0=E6=88=90=E7=A7=BB=E5=8A=A8=E5=90=8E?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=8D=E6=98=BE=E7=A4=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/DataVisualizationServer.java | 37 +++++++++---------- core/core-frontend/src/utils/canvasUtils.ts | 2 +- core/core-frontend/src/utils/utils.ts | 13 +++++++ .../src/views/common/DeResourceGroupOpt.vue | 4 ++ 4 files changed, 36 insertions(+), 20 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 81b527fc19..539c3cda64 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 @@ -91,13 +91,12 @@ public class DataVisualizationServer implements DataVisualizationApi { @Resource private VisualizationWatermarkMapper watermarkMapper; - @DeLog(id = "#p0", ot = LogOT.READ, stExp = "#p1") @Override public DataVisualizationVO findCopyResource(Long dvId, String busiFlag) { DataVisualizationVO result = findById(dvId, busiFlag); - if(result !=null && result.getPid() == -1){ + if (result != null && result.getPid() == -1) { return result; - }else{ + } else { return null; } } @@ -136,6 +135,11 @@ public class DataVisualizationServer implements DataVisualizationApi { } else { visualizationInfo.setSelfWatermarkStatus(0); } + if (DataVisualizationConstants.RESOURCE_OPT_TYPE.COPY.equals(request.getOptType())) { + // 复制更新 新建权限插入 + visualizationInfoMapper.deleteById(request.getId()); + visualizationInfo.setNodeType(DataVisualizationConstants.NODE_TYPE.LEAF); + } Long newDvId = coreVisualizationManage.innerSave(visualizationInfo); request.setId(newDvId); //保存视图信 @@ -158,24 +162,19 @@ public class DataVisualizationServer implements DataVisualizationApi { } else { visualizationInfo.setSelfWatermarkStatus(0); } - if (DataVisualizationConstants.RESOURCE_OPT_TYPE.COPY.equals(request.getOptType())) { - // 复制更新 新建权限插入 - visualizationInfoMapper.deleteById(dvId); - visualizationInfo.setNodeType(DataVisualizationConstants.NODE_TYPE.LEAF); - coreVisualizationManage.innerSave(visualizationInfo); - } else { - // 检查当前节点的pid是否一致如果不一致 需要调用move 接口(预存 可能会出现pid =-1的情况) - if (request.getPid() != -1) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("pid", request.getPid()); - queryWrapper.eq("id", dvId); - if (!visualizationInfoMapper.exists(queryWrapper)) { - request.setMoveFromUpdate(true); - coreVisualizationManage.move(request); - } + + // 检查当前节点的pid是否一致如果不一致 需要调用move 接口(预存 可能会出现pid =-1的情况) + if (request.getPid() != -1) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("pid", request.getPid()); + queryWrapper.eq("id", dvId); + if (!visualizationInfoMapper.exists(queryWrapper)) { + request.setMoveFromUpdate(true); + coreVisualizationManage.move(request); } - coreVisualizationManage.innerEdit(visualizationInfo); } + coreVisualizationManage.innerEdit(visualizationInfo); + //保存视图信 chartDataManage.saveChartViewFromVisualization(request.getComponentData(), dvId, request.getCanvasViewInfo()); } diff --git a/core/core-frontend/src/utils/canvasUtils.ts b/core/core-frontend/src/utils/canvasUtils.ts index aeedbc1860..2df7cde97c 100644 --- a/core/core-frontend/src/utils/canvasUtils.ts +++ b/core/core-frontend/src/utils/canvasUtils.ts @@ -175,7 +175,7 @@ export function canvasSave(callBack) { watermarkInfo: null } - const method = dvInfo.value.id ? updateCanvas : saveCanvas + const method = dvInfo.value.id && dvInfo.value.optType !== 'copy' ? updateCanvas : saveCanvas method(canvasInfo).then(res => { dvMainStore.updateDvInfoId(res.data) snapshotStore.resetStyleChangeTimes() diff --git a/core/core-frontend/src/utils/utils.ts b/core/core-frontend/src/utils/utils.ts index cc509b1e22..f0c7d9c07a 100644 --- a/core/core-frontend/src/utils/utils.ts +++ b/core/core-frontend/src/utils/utils.ts @@ -1,3 +1,5 @@ +import { BusiTreeNode } from '@/models/tree/TreeNode' + export function deepCopy(target) { if (target === null || target === undefined) { return target @@ -80,3 +82,14 @@ export const getQueryString = (name: string) => { export const isLarkPlatform = () => { return !!getQueryString('state') && !!getQueryString('code') } + +export function cutTargetTree(tree: BusiTreeNode[], targetId: string | number) { + tree.forEach((node, index) => { + if (node.id === targetId) { + tree.splice(index, 1) + return + } else if (node.children) { + cutTargetTree(node.children, targetId) + } + }) +} diff --git a/core/core-frontend/src/views/common/DeResourceGroupOpt.vue b/core/core-frontend/src/views/common/DeResourceGroupOpt.vue index 66b48140bf..02886e704d 100644 --- a/core/core-frontend/src/views/common/DeResourceGroupOpt.vue +++ b/core/core-frontend/src/views/common/DeResourceGroupOpt.vue @@ -13,6 +13,7 @@ import { saveCanvas } from '@/api/visualization/dataVisualization' import { ElMessage } from 'element-plus-secondary' +import { cutTargetTree } from '@/utils/utils' const props = defineProps({ curCanvasType: { type: String, @@ -154,6 +155,9 @@ const optInit = (type, data: BusiTreeNode, exec, parentSelect = false) => { state.tData[0].name = curCanvasType.value === 'dataV' ? '数据大屏' : '仪表板' } tData = [...state.tData] + if ('move' === exec) { + cutTargetTree(state.tData, data.id) + } if (['newLeaf', 'newFolder'].includes(exec)) { resourceForm.pid = data.id as string pid.value = data.id