fix(仪表板): 资源树拖动移动资源后,不刷新页面重新选择其他排序方式,资源的移动显示不正确,刷新是正常的

This commit is contained in:
dataeaseShu 2024-11-13 14:00:15 +08:00
parent 3d8efba335
commit 0d068b1b79
4 changed files with 35 additions and 25 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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(() => {

View File

@ -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 => {