diff --git a/dvadmin-backend/apps/permission/serializers.py b/dvadmin-backend/apps/permission/serializers.py index f3d86d4..b6d7c86 100644 --- a/dvadmin-backend/apps/permission/serializers.py +++ b/dvadmin-backend/apps/permission/serializers.py @@ -3,6 +3,7 @@ from rest_framework.validators import UniqueValidator from apps.op_drf.serializers import CustomModelSerializer from apps.permission.models import Menu, Dept, Post, Role, UserProfile +from apps.system.models import MessagePush # ================================================= # @@ -212,7 +213,7 @@ class UserProfileSerializer(CustomModelSerializer): admin = serializers.SerializerMethodField(read_only=True) deptId = serializers.IntegerField(source='dept.id', read_only=True) # 未读通知数量 - # unread_msg_count = serializers.SerializerMethodField(read_only=True) + unread_msg_count = serializers.SerializerMethodField(read_only=True) def get_admin(self, obj: UserProfile): role_list = obj.role.all().values_list('admin', flat=True) @@ -220,12 +221,8 @@ class UserProfileSerializer(CustomModelSerializer): return True return False - # def get_unread_msg_count(self, obj: UserProfile): - # UserProfile.objects.all() - # role_list = obj.role.all().values_list('admin', flat=True) - # if True in list(set(role_list)): - # return True - # return False + def get_unread_msg_count(self, obj: UserProfile): + return MessagePush.objects.filter(status='2').exclude(user=obj,messagepushuser_message_push__is_read=True).count() class Meta: model = UserProfile diff --git a/dvadmin-backend/apps/system/filters.py b/dvadmin-backend/apps/system/filters.py index 2731797..053c8a2 100644 --- a/dvadmin-backend/apps/system/filters.py +++ b/dvadmin-backend/apps/system/filters.py @@ -1,6 +1,6 @@ import django_filters -from apps.system.models import DictDetails, DictData, ConfigSettings, MessagePush +from apps.system.models import DictDetails, DictData, ConfigSettings, MessagePush, SaveFile class DictDataFilter(django_filters.rest_framework.FilterSet): @@ -33,6 +33,17 @@ class ConfigSettingsFilter(django_filters.rest_framework.FilterSet): model = ConfigSettings fields = '__all__' + +class SaveFileFilter(django_filters.rest_framework.FilterSet): + """ + 文件管理 简单过滤器 + """ + + class Meta: + model = SaveFile + exclude = ('file',) + + class MessagePushFilter(django_filters.rest_framework.FilterSet): """ 消息通知 简单过滤器 diff --git a/dvadmin-backend/apps/system/urls.py b/dvadmin-backend/apps/system/urls.py index a090de9..2f53cd7 100644 --- a/dvadmin-backend/apps/system/urls.py +++ b/dvadmin-backend/apps/system/urls.py @@ -25,5 +25,7 @@ urlpatterns = [ re_path('message/receive/', MessagePushModelViewSet.as_view({"get": "get_received_messages"})), # 消息通知导出 re_path('message/export/', MessagePushModelViewSet.as_view({'get': 'export',})), + # 消息已读 + re_path('message/export/', MessagePushModelViewSet.as_view({'get': 'export',})), ] urlpatterns += router.urls diff --git a/dvadmin-backend/apps/system/views.py b/dvadmin-backend/apps/system/views.py index 7f1b16b..69cde44 100644 --- a/dvadmin-backend/apps/system/views.py +++ b/dvadmin-backend/apps/system/views.py @@ -2,7 +2,8 @@ from rest_framework.request import Request from apps.op_drf.filters import DataLevelPermissionsFilter from apps.op_drf.viewsets import CustomModelViewSet -from apps.system.filters import DictDetailsFilter, DictDataFilter, ConfigSettingsFilter, MessagePushFilter +from apps.system.filters import DictDetailsFilter, DictDataFilter, ConfigSettingsFilter, MessagePushFilter, \ + SaveFileFilter from apps.system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush from apps.system.serializers import DictDataSerializer, DictDataCreateUpdateSerializer, DictDetailsSerializer, \ DictDetailsCreateUpdateSerializer, DictDetailsListSerializer, ConfigSettingsSerializer, \ @@ -131,13 +132,13 @@ class ConfigSettingsModelViewSet(CustomModelViewSet): class SaveFileModelViewSet(CustomModelViewSet): """ - 参数设置 模型的CRUD视图 + 文件管理 模型的CRUD视图 """ queryset = SaveFile.objects.all() serializer_class = SaveFileSerializer create_serializer_class = SaveFileCreateUpdateSerializer update_serializer_class = SaveFileCreateUpdateSerializer - filter_class = ConfigSettingsFilter + filter_class = SaveFileFilter extra_filter_backends = [DataLevelPermissionsFilter] search_fields = ('configName',) ordering = 'id' # 默认排序 diff --git a/dvadmin-ui/src/components/RuoYi/Msg/index.vue b/dvadmin-ui/src/components/RuoYi/Msg/index.vue new file mode 100755 index 0000000..777703f --- /dev/null +++ b/dvadmin-ui/src/components/RuoYi/Msg/index.vue @@ -0,0 +1,21 @@ + + + diff --git a/dvadmin-ui/src/layout/components/Navbar.vue b/dvadmin-ui/src/layout/components/Navbar.vue index 79ecccc..c300c63 100755 --- a/dvadmin-ui/src/layout/components/Navbar.vue +++ b/dvadmin-ui/src/layout/components/Navbar.vue @@ -11,14 +11,14 @@