From 438480b2f1c9c14b6c86a5b64bc29b75c8df1d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=B6=9B?= <1537080775@qq.com> Date: Mon, 1 Jul 2024 15:47:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(20240701=5FFieldPermission):=20=E5=88=97?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=AE=A1=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 地区管理:增加列权限管控 - 登录日志:增加列权限管控 --- backend/dvadmin/system/urls.py | 5 +++-- backend/dvadmin/system/views/area.py | 7 +++++-- backend/dvadmin/system/views/login_log.py | 5 +++-- web/src/views/system/areas/api.ts | 6 ++++++ web/src/views/system/areas/index.vue | 13 ++++++++++--- web/src/views/system/log/loginLog/api.ts | 7 +++++++ web/src/views/system/log/loginLog/index.vue | 13 ++++++++++--- web/src/views/system/whiteList/crud.tsx | 8 +++----- 8 files changed, 47 insertions(+), 17 deletions(-) diff --git a/backend/dvadmin/system/urls.py b/backend/dvadmin/system/urls.py index 8d215071..a41e0486 100644 --- a/backend/dvadmin/system/urls.py +++ b/backend/dvadmin/system/urls.py @@ -35,6 +35,7 @@ system_url.register(r'message_center', MessageCenterViewSet) system_url.register(r'role_menu_button_permission', RoleMenuButtonPermissionViewSet) system_url.register(r'role_menu_permission', RoleMenuPermissionViewSet) system_url.register(r'column', MenuFieldViewSet) +system_url.register(r'login_log', LoginLogViewSet) urlpatterns = [ @@ -44,8 +45,8 @@ urlpatterns = [ path('system_config/get_association_table/', SystemConfigViewSet.as_view({'get': 'get_association_table'})), path('system_config/get_table_data//', SystemConfigViewSet.as_view({'get': 'get_table_data'})), path('system_config/get_relation_info/', SystemConfigViewSet.as_view({'get': 'get_relation_info'})), - path('login_log/', LoginLogViewSet.as_view({'get': 'list'})), - path('login_log//', LoginLogViewSet.as_view({'get': 'retrieve'})), + # path('login_log/', LoginLogViewSet.as_view({'get': 'list'})), + # path('login_log//', LoginLogViewSet.as_view({'get': 'retrieve'})), path('dept_lazy_tree/', DeptViewSet.as_view({'get': 'dept_lazy_tree'})), path('clause/privacy.html', PrivacyView.as_view()), path('clause/terms_service.html', TermsServiceView.as_view()), diff --git a/backend/dvadmin/system/views/area.py b/backend/dvadmin/system/views/area.py index dfa23532..3a727282 100644 --- a/backend/dvadmin/system/views/area.py +++ b/backend/dvadmin/system/views/area.py @@ -3,6 +3,7 @@ from django.db.models import Q from rest_framework import serializers from dvadmin.system.models import Area +from dvadmin.utils.field_permission import FieldPermissionMixin from dvadmin.utils.json_response import SuccessResponse from dvadmin.utils.serializers import CustomModelSerializer from dvadmin.utils.viewset import CustomModelViewSet @@ -14,13 +15,16 @@ class AreaSerializer(CustomModelSerializer): """ pcode_count = serializers.SerializerMethodField(read_only=True) hasChild = serializers.SerializerMethodField() + def get_pcode_count(self, instance: Area): return Area.objects.filter(pcode=instance).count() + def get_hasChild(self, instance): hasChild = Area.objects.filter(pcode=instance.code) if hasChild: return True return False + class Meta: model = Area fields = "__all__" @@ -37,7 +41,7 @@ class AreaCreateUpdateSerializer(CustomModelSerializer): fields = '__all__' -class AreaViewSet(CustomModelViewSet): +class AreaViewSet(CustomModelViewSet, FieldPermissionMixin): """ 地区管理接口 list:查询 @@ -65,4 +69,3 @@ class AreaViewSet(CustomModelViewSet): else: queryset = self.queryset.filter(enable=True) return queryset - diff --git a/backend/dvadmin/system/views/login_log.py b/backend/dvadmin/system/views/login_log.py index d362ceaf..4d8bf74a 100644 --- a/backend/dvadmin/system/views/login_log.py +++ b/backend/dvadmin/system/views/login_log.py @@ -7,6 +7,7 @@ @Remark: 按钮权限管理 """ from dvadmin.system.models import LoginLog +from dvadmin.utils.field_permission import FieldPermissionMixin from dvadmin.utils.serializers import CustomModelSerializer from dvadmin.utils.viewset import CustomModelViewSet @@ -22,7 +23,7 @@ class LoginLogSerializer(CustomModelSerializer): read_only_fields = ["id"] -class LoginLogViewSet(CustomModelViewSet): +class LoginLogViewSet(CustomModelViewSet, FieldPermissionMixin): """ 登录日志接口 list:查询 @@ -33,4 +34,4 @@ class LoginLogViewSet(CustomModelViewSet): """ queryset = LoginLog.objects.all() serializer_class = LoginLogSerializer - extra_filter_class = [] + # extra_filter_class = [] diff --git a/web/src/views/system/areas/api.ts b/web/src/views/system/areas/api.ts index bad818bd..f2560589 100644 --- a/web/src/views/system/areas/api.ts +++ b/web/src/views/system/areas/api.ts @@ -39,3 +39,9 @@ export function DelObj(id: DelReq) { data: { id }, }); } +export function GetPermission() { + return request({ + url: apiPrefix + 'field_permission/', + method: 'get', + }); +} diff --git a/web/src/views/system/areas/index.vue b/web/src/views/system/areas/index.vue index 51c6c772..8201f7ec 100644 --- a/web/src/views/system/areas/index.vue +++ b/web/src/views/system/areas/index.vue @@ -5,14 +5,21 @@ diff --git a/web/src/views/system/log/loginLog/api.ts b/web/src/views/system/log/loginLog/api.ts index defefc49..273aa90b 100644 --- a/web/src/views/system/log/loginLog/api.ts +++ b/web/src/views/system/log/loginLog/api.ts @@ -39,3 +39,10 @@ export function DelObj(id: DelReq) { data: { id }, }); } + +export function GetPermission() { + return request({ + url: apiPrefix + 'field_permission/', + method: 'get', + }); +} diff --git a/web/src/views/system/log/loginLog/index.vue b/web/src/views/system/log/loginLog/index.vue index 618e6cf0..924429bb 100644 --- a/web/src/views/system/log/loginLog/index.vue +++ b/web/src/views/system/log/loginLog/index.vue @@ -5,14 +5,21 @@ diff --git a/web/src/views/system/whiteList/crud.tsx b/web/src/views/system/whiteList/crud.tsx index 7104cdae..33059c91 100644 --- a/web/src/views/system/whiteList/crud.tsx +++ b/web/src/views/system/whiteList/crud.tsx @@ -200,11 +200,9 @@ export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps) component: { span: 24, props: { - elProps: { - allowCreate: true, - filterable: true, - clearable: true, - }, + allowCreate: true, + filterable: true, + clearable: true, }, }, itemProps: { -- Gitee