diff --git a/src/views/pages/autoexec/quick-service/catalog/catalog-manage.vue b/src/views/pages/autoexec/quick-service/catalog/catalog-manage.vue index 02c2b89b27b85fa0db80349a89f3c6732888012a..96549827312b2ebae8bded2092671cd31e3d71c4 100644 --- a/src/views/pages/autoexec/quick-service/catalog/catalog-manage.vue +++ b/src/views/pages/autoexec/quick-service/catalog/catalog-manage.vue @@ -282,8 +282,17 @@ export default { }); }, beforeDrop(treeId, treeNodes, targetNode, moveType, isCopy) { - if (targetNode == null && (treeNodes[0] && treeNodes[0].type == 'service')) { - // 不能将服务拖拽成为根节点 + const firstTreeNode = treeNodes && treeNodes[0]; + const isTargetNodeService = targetNode && targetNode.type === 'service'; + const isFirstTreeNodeService = firstTreeNode && firstTreeNode.type === 'service'; + const isTargetNodeCatalog = targetNode && targetNode.type === 'catalog'; + if ( + (targetNode == null && isFirstTreeNodeService) || + (isTargetNodeService && isFirstTreeNodeService && moveType === 'inner') || + (isTargetNodeCatalog && isFirstTreeNodeService && moveType === 'prev') || + (isTargetNodeCatalog && isFirstTreeNodeService && moveType === 'next') + ) { + // 不能将服务拖拽成为根节点, 不能将服务拖拽到服务,不能将服务拖拽到目录节点前面,不能将服务拖拽到目录节点后面 return false; } }, @@ -298,7 +307,6 @@ export default { this.$api.autoexec.catalogManage.moveCatalog(data).then(res => { if (res?.Status == 'OK') { this.$Message.success(this.$t('message.executesuccess')); - this.getTreeList(); } }); }, diff --git a/src/views/pages/process/catalog/catalog-manage.vue b/src/views/pages/process/catalog/catalog-manage.vue index 71150eda638fee31d898fc38386e2cacaea9c695..5da540bfe3ca6433b30818ea1796a6e9d5943b03 100644 --- a/src/views/pages/process/catalog/catalog-manage.vue +++ b/src/views/pages/process/catalog/catalog-manage.vue @@ -274,16 +274,21 @@ export default { }); }, beforeDrop(tree, treeNodes, targetNode, moveType) { - // 不允许将服务拖拽为根目录 - if (targetNode == null && (treeNodes[0] && treeNodes[0]?.type && treeNodes[0]?.type != 'catalog')) { + const firstTreeNode = treeNodes && treeNodes[0]; + const isTargetNodeService = targetNode && targetNode.type === 'channel'; + const isFirstTreeNodeService = firstTreeNode && firstTreeNode.type === 'channel'; + const isTargetNodeCatalog = targetNode && targetNode.type === 'catalog'; + if ( + (targetNode == null && isFirstTreeNodeService) || + (isTargetNodeService && isFirstTreeNodeService && moveType === 'inner') || + (isTargetNodeCatalog && isFirstTreeNodeService && moveType === 'prev') || + (isTargetNodeCatalog && isFirstTreeNodeService && moveType === 'next') + ) { + // 不能将服务拖拽成为根节点, 不能将服务拖拽到服务,不能将服务拖拽到目录节点前面,不能将服务拖拽到目录节点后面 return false; } }, onDrop(tree, treeNodes, targetNode, moveType, isCopy) { - if (targetNode == null) { - // 服务不可以拖拽为根目录 - return false; - } let treeNode = treeNodes[0]; let parentId = null; let keyId = 'uuid'; @@ -305,16 +310,12 @@ export default { if (res && res.Status == 'OK') { this.$Message.success(this.$t('message.executesuccess')); } - }).finally(() => { - this.getTreeList(); }); } else if (treeNode.type == 'channel') { this.$api.process.service.moveChannel(data).then(res => { if (res && res.Status == 'OK') { this.$Message.success(this.$t('message.executesuccess')); } - }).finally(() => { - this.getTreeList(); }); } }