diff --git a/core/frontend/src/views/dataFilling/form/MoveSelector.vue b/core/frontend/src/views/dataFilling/form/MoveSelector.vue index f9284b47f0..2fd73be2c3 100644 --- a/core/frontend/src/views/dataFilling/form/MoveSelector.vue +++ b/core/frontend/src/views/dataFilling/form/MoveSelector.vue @@ -96,14 +96,21 @@ export default { }, filterListDeep(list) { return filter(list, item => { + let hasChildren = item.children && item.children.length > 0 if (item.children) { - this.filterListDeep(item.children) + hasChildren = this.filterListDeep(item.children) } - return hasDataPermission('manage', item.privileges) + return hasDataPermission('manage', item.privileges) || hasChildren }) }, nodeClick(data, node) { - this.targetGroup = data + this.$nextTick(() => { + if (hasDataPermission('manage', data.privileges)) { + this.targetGroup = data + } else { + this.targetGroup = {} + } + }) }, treeClass(data, node) { if (data.id === this.item.id) { diff --git a/core/frontend/src/views/dataFilling/form/save.vue b/core/frontend/src/views/dataFilling/form/save.vue index b5cad4fa48..2fad8a4019 100644 --- a/core/frontend/src/views/dataFilling/form/save.vue +++ b/core/frontend/src/views/dataFilling/form/save.vue @@ -175,10 +175,11 @@ export default { methods: { filterListDeep(list) { return filter(list, item => { + const hasChildren = item.children && item.children.length > 0 if (item.children) { this.filterListDeep(item.children) } - return hasDataPermission('manage', item.privileges) + return hasDataPermission('manage', item.privileges) || hasChildren }) }, getTypeOptions(formOption) { @@ -247,9 +248,14 @@ export default { }, nodeClick(data) { this.$nextTick(() => { - this.formData.folder = data.id - this.formData.level = data.level + 1 - this.folderTreeShow = false + if (hasDataPermission('manage', data.privileges)) { + this.formData.folder = data.id + this.formData.level = data.level + 1 + this.folderTreeShow = false + } else { + this.formData.folder = undefined + this.formData.level = undefined + } }) }, filterMethod(val) {