From 0d068b1b799b597c809a6e0e90d1b969d256b32a Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Wed, 13 Nov 2024 14:00:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BB=AA=E8=A1=A8=E6=9D=BF):=20=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=A0=91=E6=8B=96=E5=8A=A8=E7=A7=BB=E5=8A=A8=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E5=90=8E=EF=BC=8C=E4=B8=8D=E5=88=B7=E6=96=B0=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=87=8D=E6=96=B0=E9=80=89=E6=8B=A9=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E6=96=B9=E5=BC=8F=EF=BC=8C=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E7=9A=84=E7=A7=BB=E5=8A=A8=E6=98=BE=E7=A4=BA=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=EF=BC=8C=E5=88=B7=E6=96=B0=E6=98=AF=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/utils/treeDraggble.ts | 20 +++++++++++-------- .../src/utils/treeDraggbleChart.ts | 18 ++++++++++------- .../views/visualized/data/dataset/index.vue | 11 +++++----- .../visualized/data/datasource/index.vue | 11 +++++----- 4 files changed, 35 insertions(+), 25 deletions(-) diff --git a/core/core-frontend/src/utils/treeDraggble.ts b/core/core-frontend/src/utils/treeDraggble.ts index 04fc79d13b..244bd08574 100644 --- a/core/core-frontend/src/utils/treeDraggble.ts +++ b/core/core-frontend/src/utils/treeDraggble.ts @@ -1,6 +1,6 @@ import { cloneDeep } from 'lodash-es' -const treeDraggble = (state, key, req, type) => { +const treeDraggble = (state, key, req, type, originResourceTree) => { let dragNodeParentId = '' let dragNodeId = '' let dragNodeIndex = 0 @@ -106,14 +106,18 @@ const treeDraggble = (state, key, req, type) => { dfsTreeNodeBack(state[key], '0', params) } - req(params).catch(() => { - if (dragNodeParentId === '0') { - state[key].splice(dragNodeIndex, 0, draggingNode.data) - return - } + req(params) + .then(() => { + originResourceTree.value = cloneDeep(state[key]) + }) + .catch(() => { + if (dragNodeParentId === '0') { + state[key].splice(dragNodeIndex, 0, draggingNode.data) + return + } - dfsTreeNodeReset(state[key], draggingNode.data) - }) + dfsTreeNodeReset(state[key], draggingNode.data) + }) } return { diff --git a/core/core-frontend/src/utils/treeDraggbleChart.ts b/core/core-frontend/src/utils/treeDraggbleChart.ts index e54692c3f1..2f113ac280 100644 --- a/core/core-frontend/src/utils/treeDraggbleChart.ts +++ b/core/core-frontend/src/utils/treeDraggbleChart.ts @@ -114,14 +114,18 @@ const treeDraggbleChart = (state, key, type) => { dfsTreeNodeBack(state[key], '0', params) } - moveResource(params).catch(() => { - if (dragNodeParentId === '0') { - state[key].splice(dragNodeIndex, 0, draggingNode.data) - return - } + moveResource(params) + .then(() => { + state.originResourceTree = cloneDeep(state[key]) + }) + .catch(() => { + if (dragNodeParentId === '0') { + state[key].splice(dragNodeIndex, 0, draggingNode.data) + return + } - dfsTreeNodeReset(state[key], draggingNode.data) - }) + dfsTreeNodeReset(state[key], draggingNode.data) + }) } return { diff --git a/core/core-frontend/src/views/visualized/data/dataset/index.vue b/core/core-frontend/src/views/visualized/data/dataset/index.vue index c5fd6871ee..41f4575566 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/index.vue @@ -152,10 +152,10 @@ const resourceOptFinish = param => { } } -let originResourceTree = [] +const originResourceTree = shallowRef([]) const sortTypeChange = sortType => { - state.datasetTree = treeSort(originResourceTree, sortType) + state.datasetTree = treeSort(originResourceTree.value, sortType) state.curSortType = sortType wsCache.set('TreeSort-dataset', state.curSortType) } @@ -253,7 +253,8 @@ const { handleDrop, allowDrop, handleDragStart } = treeDraggble( state, 'datasetTree', moveDatasetTree, - 'dataset' + 'dataset', + originResourceTree ) const generateColumns = (arr: Field[]) => @@ -293,12 +294,12 @@ const getData = () => { if (nodeData.length && nodeData[0]['id'] === '0' && nodeData[0]['name'] === 'root') { rootManage.value = nodeData[0]['weight'] >= 7 state.datasetTree = nodeData[0]['children'] || [] - originResourceTree = cloneDeep(unref(state.datasetTree)) + originResourceTree.value = cloneDeep(unref(state.datasetTree)) sortTypeChange(curSortType) return } state.datasetTree = nodeData - originResourceTree = cloneDeep(unref(state.datasetTree)) + originResourceTree.value = cloneDeep(unref(state.datasetTree)) sortTypeChange(curSortType) }) .finally(() => { diff --git a/core/core-frontend/src/views/visualized/data/datasource/index.vue b/core/core-frontend/src/views/visualized/data/datasource/index.vue index 958bb3f08b..6eda7fa541 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/index.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/index.vue @@ -210,10 +210,10 @@ const selectDataset = row => { }) } -let originResourceTree = [] +const originResourceTree = shallowRef([]) const sortTypeChange = sortType => { - state.datasourceTree = treeSort(originResourceTree, sortType) + state.datasourceTree = treeSort(originResourceTree.value, sortType) state.curSortType = sortType wsCache.set('TreeSort-datasource', state.curSortType) } @@ -481,11 +481,11 @@ const listDs = () => { if (nodeData.length && nodeData[0]['id'] === '0' && nodeData[0]['name'] === 'root') { rootManage.value = nodeData[0]['weight'] >= 7 state.datasourceTree = nodeData[0]['children'] || [] - originResourceTree = cloneDeep(unref(state.datasourceTree)) + originResourceTree.value = cloneDeep(unref(state.datasourceTree)) sortTypeChange(curSortType) return } - originResourceTree = cloneDeep(unref(state.datasourceTree)) + originResourceTree.value = cloneDeep(unref(state.datasourceTree)) state.datasourceTree = nodeData sortTypeChange(curSortType) }) @@ -754,7 +754,8 @@ const { handleDrop, allowDrop, handleDragStart } = treeDraggble( state, 'datasourceTree', move, - 'datasource' + 'datasource', + originResourceTree ) const handleCopy = async data => {