diff --git a/backend/dvadmin/system/views/role_menu_button_permission.py b/backend/dvadmin/system/views/role_menu_button_permission.py index 723cd2a6a4af20c6d1c2b983c7d0e17d4b7383c4..c041887fb7557f1249ea1b59c342fcbb83ff2d27 100644 --- a/backend/dvadmin/system/views/role_menu_button_permission.py +++ b/backend/dvadmin/system/views/role_menu_button_permission.py @@ -231,9 +231,17 @@ class RoleMenuButtonPermissionViewSet(CustomModelViewSet): isCheck = data.get('isCheck', None) roleId = data.get('roleId', None) btnId = data.get('btnId', None) + data_range = data.get('data_range', None) or 0 # 默认仅本人权限 + dept = data.get('dept', None) or [] # 默认空部门 + if isCheck: # 添加权限:创建关联记录 - RoleMenuButtonPermission.objects.create(role_id=roleId, menu_button_id=btnId) + instance = RoleMenuButtonPermission.objects.create(role_id=roleId, + menu_button_id=btnId, + data_range=data_range) + # 自定义部门权限 + if data_range == 4 and dept: + instance.dept.set(dept) else: # 删除权限:移除关联记录 RoleMenuButtonPermission.objects.filter(role_id=roleId, menu_button_id=btnId).delete() diff --git a/web/src/views/system/role/components/RoleMenuBtn.vue b/web/src/views/system/role/components/RoleMenuBtn.vue index 8d0f1b41f38692f7ea39e94f351e1ccfa552ef43..5f897a547a0b259331e051963af6e741c4c6216f 100644 --- a/web/src/views/system/role/components/RoleMenuBtn.vue +++ b/web/src/views/system/role/components/RoleMenuBtn.vue @@ -1,9 +1,39 @@