diff --git a/test_client/src/api/analyse.js b/test_client/src/api/analyse.js index beb1104..90634e3 100644 --- a/test_client/src/api/analyse.js +++ b/test_client/src/api/analyse.js @@ -15,31 +15,35 @@ export function searchCandidates(data) { }) } -export function getAdmindata1() { +export function getAdmindata1(query) { //各管理员录入学员数 return request({ url: '/analyse/admindata1/', method: 'get', + params: query }) } -export function getCompanydis() { +export function getCompanydis(query) { return request({ url: '/analyse/companydis/', method: 'get', + params: query }) } -export function getConsumerdis() { +export function getConsumerdis(query) { return request({ url: '/analyse/consumerdis/', method: 'get', + params: query }) } -export function getMonitest() { +export function getMonitest(query) { return request({ url: '/analyse/monitest/', method: 'get', + params: query }) } \ No newline at end of file diff --git a/test_client/src/views/analyse/chart.vue b/test_client/src/views/analyse/chart.vue index e4c0084..545a6b9 100644 --- a/test_client/src/views/analyse/chart.vue +++ b/test_client/src/views/analyse/chart.vue @@ -1,68 +1,106 @@ \ No newline at end of file diff --git a/test_server/analyse/views.py b/test_server/analyse/views.py index a209b63..32e5aac 100644 --- a/test_server/analyse/views.py +++ b/test_server/analyse/views.py @@ -32,8 +32,9 @@ class Admindata1(APIView): 各管理员录入学员数-柱状图 """ def get(self, request, format=None): + queryset = UserProfile.objects.filter(is_delete=False) ret = {'x':{'name':'管理员', 'data':[]}, 's':[{'name':'学员数', 'data':[]}], 't':'各管理员录入学员数'} - tmp = UserProfile.objects.filter(is_delete=False).annotate(total=Count('consumer_create_admin')).order_by('-total').values('username', 'total') + tmp = queryset.annotate(total=Count('consumer_create_admin')).order_by('-total').values('username', 'total') for i in tmp: ret['x']['data'].append(i['username']) ret['s'][0]['data'].append(i['total']) @@ -47,8 +48,10 @@ class Monitest(APIView): def get(self, request): ret = {'x':{'name':'月份', 'data':[]}, 's':[{'name':'模考数', 'data':[]}], 't':'趋势图', 'l':['模考数']} # ret = {'x':{'name':'月份', 'data':[]}, 's':[{'name':'自助模考', 'data':[]}, {'name':'押卷模考', 'data':[]}], 't':'模考次数趋势图', 'l':['自助模考', '押卷模考']} - tmp = ExamTest.objects.exclude(consumer__create_admin__isnull=True)\ - .annotate(create_month=ExtractMonth('create_time'), create_year=ExtractYear('create_time'))\ + queryset = ExamTest.objects.exclude(consumer__create_admin__isnull=True) + queryset = queryset.filter(create_time__gte = request.query_params.get('datestart')) if request.query_params.get('datestart', None) else queryset + queryset = queryset.filter(create_time__lte = request.query_params.get('dateend')) if request.query_params.get('dateend', None) else queryset + tmp = queryset.annotate(create_month=ExtractMonth('create_time'), create_year=ExtractYear('create_time'))\ .values('create_month', 'create_year').order_by('create_year', 'create_month').annotate(total=Count('create_month')) for i in tmp: # if str(i['create_year'])+'年'+str(i['create_month'])+'月' not in ret['x']['data']: @@ -101,7 +104,10 @@ class Companydis(APIView): """ def get(self, request, format=None): ret = {'s':[], 't':'单位分布', 'max':800, 'min':0} - tmp = Company.objects.exclude(geo__pname__isnull=True).values('geo__pname').annotate(total=Count('geo__pname')) + queryset = Company.objects.exclude(geo__pname__isnull=True) + queryset = queryset.filter(create_time__gte = request.query_params.get('datestart')) if request.query_params.get('datestart', None) else queryset + queryset = queryset.filter(create_time__lte = request.query_params.get('dateend')) if request.query_params.get('dateend', None) else queryset + tmp = queryset.values('geo__pname').annotate(total=Count('geo__pname')) for i in tmp: if i['geo__pname'] in nameMap: ret['s'].append({'name':nameMap[i['geo__pname']], 'value':i['total']}) @@ -113,11 +119,15 @@ class Consumerdis(APIView): """ def get(self, request, format=None): ret = {'s':[], 't':'学员分布', 'max':3000, 'min':0} - tmp = Consumer.objects.exclude(company__geo__pname__isnull=True).values('company__geo__pname').annotate(total=Count('company__geo__pname')) + queryset = Consumer.objects.exclude(company__geo__pname__isnull=True) + queryset = queryset.filter(create_time__gte = request.query_params.get('datestart')) if request.query_params.get('datestart', None) else queryset + queryset = queryset.filter(create_time__lte = request.query_params.get('dateend')) if request.query_params.get('dateend', None) else queryset + tmp = queryset.values('company__geo__pname').annotate(total=Count('company__geo__pname')) for i in tmp: if i['company__geo__pname'] in nameMap: ret['s'].append({'name':nameMap[i['company__geo__pname']], 'value':i['total']}) return Response(ret) + class Quota(APIView): ''' 获取考试名额