diff --git a/client/src/views/supervision/recorddo.vue b/client/src/views/supervision/recorddo.vue index 65b199f..3528e4d 100644 --- a/client/src/views/supervision/recorddo.vue +++ b/client/src/views/supervision/recorddo.vue @@ -33,7 +33,7 @@
- 执行部门 + 执行组织 {{ record.belong_dept_.name }}
@@ -60,7 +60,7 @@
已上传文件
-
+
{{ item.name }}
@@ -184,7 +184,7 @@ export default { }, deleteFile(index){ this.$confirm('确定删除该文件, 是否继续?', {type:'error'}).then(() => { - this.fileList.splice(index) + this.fileList.splice(index, 1) }).catch(e=>{}) }, confirm() { diff --git a/client/src/views/supervision/taskdo.vue b/client/src/views/supervision/taskdo.vue index f69fea1..b0e7604 100644 --- a/client/src/views/supervision/taskdo.vue +++ b/client/src/views/supervision/taskdo.vue @@ -88,7 +88,7 @@
- 执行部门 + 执行组织
可监督 - +
diff --git a/server/apps/supervision/models.py b/server/apps/supervision/models.py index 0529509..5d43cdd 100644 --- a/server/apps/supervision/models.py +++ b/server/apps/supervision/models.py @@ -73,6 +73,7 @@ class Record(CommonBModel): state = models.CharField('记录状态', max_length=50, choices=state_choices, default='待上报') is_yes = models.BooleanField('是否适用', default=True) note = models.TextField('上报要求', null=True, blank=True) + opinion = models.TextField('修改意见', null=True, blank=True) noteb = models.TextField('上报说明', null=True, blank=True) files = models.ManyToManyField(File, verbose_name="关联文件") class Meta: diff --git a/server/apps/supervision/permission.py b/server/apps/supervision/permission.py new file mode 100644 index 0000000..ac65ca0 --- /dev/null +++ b/server/apps/supervision/permission.py @@ -0,0 +1,10 @@ +from apps.system.permission import RbacPermission, has_permission + + +class RecordPermission(RbacPermission): + def has_object_permission(self, request, view, obj): + if has_permission('record_confirm', request.user): + return True + if request.user.dept == obj.belong_dept: + return False + return True \ No newline at end of file diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py index c089334..e1ca4b3 100644 --- a/server/apps/supervision/views.py +++ b/server/apps/supervision/views.py @@ -5,7 +5,7 @@ from django.db.models.query import QuerySet from django.shortcuts import render from django.utils import timezone from rest_framework import status -from rest_framework.decorators import action +from rest_framework.decorators import action, permission_classes from rest_framework.mixins import ListModelMixin from rest_framework.response import Response from rest_framework.viewsets import GenericViewSet, ModelViewSet @@ -33,7 +33,7 @@ class ContentViewSet(CreateUpdateCustomMixin, ModelViewSet): pagination_class = None search_fields = ['name', 'desc'] filterset_fields = ['type','can_doself'] - ordering = ['type__sort', 'create_time'] + ordering = ['sortnum', 'type__sort', 'create_time'] class TaskViewSet(CreateUpdateCustomMixin, ModelViewSet): perms_map = {'get': '*', 'post': 'task_create', @@ -165,6 +165,7 @@ def cal_task_rate(task, dept): instance.save() from utils.queryset import get_child_queryset2 +from .permission import RecordPermission class RecordViewSet(RbacFilterSet, PageOrNot, CreateUpdateCustomMixin, ModelViewSet): perms_map = {'get': '*', 'post': 'record_create', @@ -260,22 +261,22 @@ class RecordViewSet(RbacFilterSet, PageOrNot, CreateUpdateCustomMixin, ModelView return Response(status=status.HTTP_200_OK) return Response('记录状态错误', status=status.HTTP_400_BAD_REQUEST) - @action(methods=['put'], detail=True, perms_map = {'put':'record_reject'}) + @action(methods=['put'], detail=True, perms_map = {'put':'record_reject'}, permission_classes=[RecordPermission]) def reject(self, request, *args, **kwargs): """ 驳回 """ obj = self.get_object() if obj.state == '已上报': - if request.data.get('note', None): - obj.note = request.data['note'] + if request.data.get('opinion', None): + obj.opinion = request.data['opinion'] obj.state = '待整改' obj.save() if obj.task: cal_task_rate(obj.task, obj.belong_dept) return Response(status=status.HTTP_200_OK) else: - return Response('请填写备注', status=status.HTTP_400_BAD_REQUEST) + return Response('请填写修改意见', status=status.HTTP_400_BAD_REQUEST) return Response('记录状态错误', status=status.HTTP_400_BAD_REQUEST) @action(methods=['put'], detail=True, perms_map = {'put':'record_confirm'}) @@ -284,7 +285,7 @@ class RecordViewSet(RbacFilterSet, PageOrNot, CreateUpdateCustomMixin, ModelView 确认 """ obj = self.get_object() - if obj.state == '已上报': + if obj.state in ['已上报', '待上报']: obj.state = '已确认' obj.save() if obj.task: diff --git a/server/apps/system/models.py b/server/apps/system/models.py index 3987b9b..061d595 100644 --- a/server/apps/system/models.py +++ b/server/apps/system/models.py @@ -64,7 +64,7 @@ class Organization(SoftModel): choices=organization_type_choices, default='部门') pid = models.ForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL, verbose_name='父') - sort = models.IntegerField('排序', default=1) + sort = models.CharField('排序', default="", max_length=100) can_supervision = models.BooleanField('是否可监督', default=False) class Meta: verbose_name = '组织架构' diff --git a/server/apps/system/views.py b/server/apps/system/views.py index 83f3e22..938cddd 100644 --- a/server/apps/system/views.py +++ b/server/apps/system/views.py @@ -291,6 +291,7 @@ class UserViewSet(ModelViewSet): 'id': user.id, 'username': user.username, 'name': user.name, + 'dept': user.dept, 'roles': user.roles.all().values_list('name', flat=True), # 'avatar': request._request._current_scheme_host + '/media/' + str(user.image), 'avatar': user.avatar,