From 25f66408b44d0f4efe89f3c745d7f9694a8c7a46 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Sun, 28 Apr 2024 16:49:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8DMySQL=20=E5=92=8C=20SQL=20Server=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E7=9A=84=E8=A1=A8=E8=B7=A8=E6=BA=90=E5=85=B3=E8=81=94?= =?UTF-8?q?=E5=90=8E=EF=BC=8CMySQL=20=E6=95=B0=E6=8D=AE=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=87=8D=E5=A4=8D=E6=98=BE=E7=A4=BA=EF=BC=8C?= =?UTF-8?q?SQL=20Server=20=E6=95=B0=E6=8D=AE=E8=A1=A8=E7=9A=84=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=BC=BA=E5=B0=91=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visualized/data/dataset/form/index.vue | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue index 56c66600b4..5cd9f677e7 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue @@ -701,10 +701,10 @@ let num = +new Date() const expandedD = ref(true) const expandedQ = ref(true) -const setGuid = (arr, id, datasourceId) => { +const setGuid = (arr, id, datasourceId, oldArr) => { arr.forEach(ele => { if (!ele.id) { - ele.id = `${++num}` + ele.id = oldArr.find(itx => itx.originName === ele.originName)?.id || `${++num}` ele.datasetTableId = id ele.datasourceId = datasourceId } @@ -756,6 +756,17 @@ const setFieldAll = () => { tabChange('manage') fieldUnion.value?.clearState() } + +const dfsNode = (arr, id) => { + return arr.reduce((pre, next) => { + if (next.id === id) { + pre = [...next.currentDsFields] + } else if (next.children?.length) { + pre = dfsNode(next.children, id) + } + return pre + }, []) +} const confirmEditUnion = () => { const { node, parent } = fieldUnion.value const to = node.id @@ -770,8 +781,11 @@ const confirmEditUnion = () => { return } - setGuid(node.currentDsFields, node.id, node.datasourceId) - setGuid(parent.currentDsFields, parent.id, parent.datasourceId) + const nodeOldCurrentDsFields = dfsNode(datasetDrag.value.getNodeList(), to) + const parentOldCurrentDsFields = dfsNode(datasetDrag.value.getNodeList(), from) + + setGuid(node.currentDsFields, node.id, node.datasourceId, nodeOldCurrentDsFields) + setGuid(parent.currentDsFields, parent.id, parent.datasourceId, parentOldCurrentDsFields) const top = cloneDeep(node) const bottom = cloneDeep(parent) datasetDrag.value.setStateBack(top, bottom)