diff --git a/src/views/dashboard/modules/MenuManageModal.vue b/src/views/dashboard/modules/MenuManageModal.vue index 194b9a35..9533b066 100644 --- a/src/views/dashboard/modules/MenuManageModal.vue +++ b/src/views/dashboard/modules/MenuManageModal.vue @@ -49,6 +49,8 @@ export default { targetKeys: [], // 已勾选的菜单 selectedMenu: [], + // 之前勾选,但是后来没权限的菜单列表 + notPermissionMenu: [], // 打开弹框传入的ids ids: [], // 多语言 @@ -64,11 +66,13 @@ export default { /** * 打开弹框 * @param ids - 已经选择的ids + * @param selectedMenu */ show (ids, selectedMenu) { this.visible = true // 清空之前的数据,然后重新请求 this.dataSource = [] + this.notPermissionMenu = [] // 存储已经勾选的菜单 this.selectedMenu = selectedMenu this.targetKeys = ids || [] @@ -86,8 +90,8 @@ export default { // 所有有权限的菜单id const hasPermissionIds = data.map(item => item.id) // 获取已选择但没有权限的列表 - const notPermissionMenu = this.selectedMenu.filter(item => !hasPermissionIds.includes(item.id)) - this.dataSource = data.concat(notPermissionMenu) + this.notPermissionMenu = this.selectedMenu.filter(item => !hasPermissionIds.includes(item.id)) + this.dataSource = data.concat(this.notPermissionMenu) } else { this.$message.warning(res.message) } @@ -105,7 +109,7 @@ export default { return } // 如果进来的值和提交的值一样不提示操作成功 - if (this.ids.join(',') === this.targetKeys.join(',')) { + if (this.notPermissionMenu.length === 0 && this.ids.join(',') === this.targetKeys.join(',')) { this.close() return }