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 @@
+
+