diff --git a/test_client/src/api/crm.js b/test_client/src/api/crm.js index bcd762c..7316f51 100644 --- a/test_client/src/api/crm.js +++ b/test_client/src/api/crm.js @@ -30,6 +30,13 @@ export function transferCompany(id, data) { }) } +export function transferCompanys(data) { + return request({ + url: `/crm/company/transfers/`, + method: 'put', + data + }) +} export function deleteCompany(id) { return request({ url: `/crm/company/${id}/`, diff --git a/test_client/src/views/crm/company.vue b/test_client/src/views/crm/company.vue index 0cea0e7..3622393 100644 --- a/test_client/src/views/crm/company.vue +++ b/test_client/src/views/crm/company.vue @@ -15,7 +15,13 @@ icon="el-icon-refresh-left" @click="resetFilter" >刷新重置 + 批量移交 + - + @@ -92,7 +98,7 @@ diff --git a/test_server/crm/views.py b/test_server/crm/views.py index 36c83db..f3b0caf 100644 --- a/test_server/crm/views.py +++ b/test_server/crm/views.py @@ -133,6 +133,22 @@ class CompanyViewSet(ModelViewSet): return Response(status=status.HTTP_200_OK) else: return Response({"error":"账号错误"}) + + @action(methods=['put'], detail=False, url_name='company_transfers',perms_map=[{'*':'company_transfers'}]) + def transfers(self, request, *args, **kwargs): + """ + 批量移交 + """ + companys = Company.objects.filter(id__in = request.data['companys']) + adminname = request.data.get('admin', None) + if adminname and UserProfile.objects.filter(username=adminname).exists(): + adminobj = UserProfile.objects.get(username=adminname) + if companys.exists(): + companys.update(create_admin=adminobj) + Consumer.objects.filter(company__in = companys).update(create_admin=adminobj) + return Response(status=status.HTTP_200_OK) + else: + return Response({"error":"账号错误"}) class ConsumerViewSet(ModelViewSet): """ diff --git a/test_server/rbac/views/user.py b/test_server/rbac/views/user.py index 8955510..875739b 100644 --- a/test_server/rbac/views/user.py +++ b/test_server/rbac/views/user.py @@ -57,9 +57,9 @@ class UserInfoView(APIView): +from utils.pagination import PageOrNot - -class UserViewSet(ModelViewSet): +class UserViewSet(PageOrNot, ModelViewSet): """ 用户管理:增删改查 """ diff --git a/test_server/utils/pagination.py b/test_server/utils/pagination.py new file mode 100644 index 0000000..675d8a8 --- /dev/null +++ b/test_server/utils/pagination.py @@ -0,0 +1,16 @@ +from rest_framework.pagination import PageNumberPagination +from rest_framework.exceptions import ParseError + +class MyPagination(PageNumberPagination): + page_size = 10 + page_size_query_param = 'page_size' + +class PageOrNot: + def paginate_queryset(self, queryset): + if (self.paginator is None): + return None + elif self.request.query_params.get('pageoff', None) and self.get_queryset().count()<500: + return None + elif self.request.query_params.get('pageoff', None) and self.get_queryset().count()>=500: + return ParseError('单次请求数据量大,请求中止') + return self.paginator.paginate_queryset(queryset, self.request, view=self) \ No newline at end of file