开始日期:
结束日期:
@@ -56,74 +62,109 @@
var start = $("#test").val();
var end = $("#test2").val();
+ var myChart = echarts.init(document.getElementById("riskchart"));
+ myChart.setOption(option = {
+ title: {
+ text: '集团公司风险点统计图',
+ },
+ legend: {
+ data: ['风险点', '低风险点', '一般风险点', '较大风险点', '重大风险点']
+ },
+
+
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: { // 坐标轴指示器,坐标轴触发有效
+ type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
+ }
+ },
+ xAxis: {
+ type: 'category',
+ data: [],
+ },
+ yAxis: {
+ type: 'value',
+ },
+ series: [],
+
+ });
+ myChart.showLoading();
$.ajax({
type: "get",
async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
- url: "/groups/api/riskChart?code=risk&start=" + start + "&end=" + end, //请求发送
+ url: "/groups/api/riskChart?code=risk&start=" + start + "&end=" + end, //请求发送
dataType: "json", //返回数据形式为json
success: function (data) {
console.log(data);
//请求成功时执行该函数内容,data即为服务器返回的json对象
- var riskChart = echarts.init(document.getElementById("riskchart"));
- var risknum = [];
+ var datariskact = [];
+ var datariskact1 = [];
+ var datariskact2 = [];
+ var datariskact3 = [];
+ var datariskact4 = [];
var companyName = [];
- if (data.data.risklist != null) {
- $.each(data.data.risklist, function (i, item) {
+ if (data!= null) {
+ $.each(data.risks, function (i, item) {
- risknum.push(item.number);
-
- companyName.push(item.usecomp__partname);
+ datariskact.push(item.datariskact);
+ datariskact1.push(item.datariskact1);
+ datariskact2.push(item.datariskact2);
+ datariskact3.push(item.datariskact3);
+ datariskact4.push(item.datariskact4);
+ companyName.push(item.companyName);
})
-
- riskChart.setOption(
-
- option = {
- color: ['#FFA500'],
- tooltip: {
- trigger: 'axis',
- axisPointer: { // 坐标轴指示器,坐标轴触发有效
- type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
- }
- },
-
- title: {
- text: '本集团各公司风险管控统计图'
- },
- tooltip: {},
- legend: {
- data: ['公司风险管控总数']
- },
- grid: {
- y2: 140
- },
+ if (data) {
+ myChart.hideLoading(); //隐藏加载动画
+ myChart.setOption({
xAxis: {
- type: 'category',
data: companyName,
boundaryGap: [0, 0.01],
axisLabel: {
interval: 0,//横轴信息全部显示
- rotate: -30,//-30度角倾斜显示
+ rotate: -10,//-30度角倾斜显示
}
-
-
},
- yAxis: {},
series: [{
- name: '公司风险管控总数',
- data: risknum,
- type: 'bar'
+ name: '风险点',
+ type: 'bar',
+
+ data: datariskact
+ }, {
+ name: '低风险点',
+ type: 'bar',
+ stack: '风险点',
+ color: 'blue',
+ data: datariskact1
+ },
+ {
+ name: '一般风险点',
+ type: 'bar',
+ stack: '风险点',
+ color: 'yellow',
+ data: datariskact2
+ }, {
+ name: '较大风险点',
+ type: 'bar',
+ stack: '风险点',
+ color: 'orange',
+ data: datariskact3
+ }, {
+ name: '重大风险点',
+ type: 'bar',
+ stack: '风险点',
+ color: 'red',
+ data:datariskact4
}]
+ });
- }
-
- );
-
+ }
}
},
error: function (errorMsg) {
- riskChart.hideLoading();
+
+ myChart.hideLoading();
}
});
diff --git a/groups/templates/groups/train.html b/groups/templates/groups/train.html
index b0a18930..4bfc311e 100644
--- a/groups/templates/groups/train.html
+++ b/groups/templates/groups/train.html
@@ -1,15 +1,21 @@
{% extends "./base.html" %}
{% block title %}教育培训统计{% endblock %}
+{% block pagehead %}
+
+ - 主页
+ - 教育培训统计
+
+{% endblock %}
{% block content %}
{% load static %}
-
+
教育培训统计
-
+
- 开始日期:
+ 开始日期:
结束日期:
@@ -42,11 +48,11 @@
, format: 'yyyy-MM-dd' //可任意组合
});
train();
-
+
});
function funTypeChange() {
-
+
train();
}
diff --git a/groups/templates/groups/troublepic.html b/groups/templates/groups/troublepic.html
index e79004bd..27cc4816 100644
--- a/groups/templates/groups/troublepic.html
+++ b/groups/templates/groups/troublepic.html
@@ -1,10 +1,16 @@
{% extends "./base.html" %}
{% block title %}隐患统计{% endblock %}
+{% block pagehead %}
+
+ - 主页
+ - 隐患统计
+
+{% endblock %}
{% block content %}
{% load static %}
-
+
隐患统计
@@ -55,7 +61,7 @@
$.ajax({
type: "get",
async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
- url: "/groups/api/troubleChart?code=tbpic&start=" + start + "&end=" + end, //请求发送
+ url: "/groups/api/troubleChart?code=tbpic&start=" + start + "&end=" + end, //请求发送
dataType: "json", //返回数据形式为json
success: function (data) {
console.log(data.data.troublelist);
@@ -77,7 +83,7 @@
yhChart.setOption(
option = {
- color: ['#f39c12'],
+ color: ['#FF7F50'],
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
diff --git a/groups/views.py b/groups/views.py
index 78a5b6fd..42c312a6 100644
--- a/groups/views.py
+++ b/groups/views.py
@@ -166,18 +166,27 @@ def missChart(request):#未遂事件
return HttpResponse(json.dumps({'code':1,'data':{'misslist':list(misslist)}}), content_type='application/json')
def riskChart(request):#风险管控
+
code = request.GET.get('code')
start = request.GET.get('start')
end = request.GET.get('end')
+ risks = []
if code=='risk':
-
- companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all()
- risklist = s_models.Risk.objects.filter(usecomp__in=companys).values('usecomp__partid','usecomp__partname').annotate(number = Count('id'))
- if start:
- risklist = risklist.filter(createtime__gte=start)
- if end:
- risklist = risklist.filter(createtime__lte=end)
- return HttpResponse(json.dumps({'code':1,'data':{'risklist':list(risklist)}}), content_type='application/json')
+ companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all()
+ for i in companys:
+ risk= s_models.RiskAct.objects.filter(usecomp__partid=i.partid)
+ if start:
+ risk = risk.filter(createtime__gte=start)
+ if end:
+ risk = risk.filter(createtime__lte=end)
+ datariskact=risk.count()
+ datariskact1=risk.filter(level="低风险").count()
+ datariskact2=risk.filter(level="一般风险").count()
+ datariskact3=risk.filter(level="较大风险").count()
+ datariskact4=risk.filter(level="重大风险").count()
+ risks.append({'companyName':i.partname,'datariskact':datariskact,'datariskact1':datariskact1,'datariskact2':datariskact2,'datariskact3':datariskact3,'datariskact4':datariskact4})
+ return HttpResponse(json.dumps({'code':1,'risks':risks}), content_type='application/json')
+
def trainChart(request):#教育培训
code = request.GET.get('code')
start = request.GET.get('start')
@@ -200,11 +209,11 @@ def examChart(request):#在线考试
companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all()
for i in companys:
- examlist = s_models.ExamTest.objects.filter(usecomps__contains=','+i+',').annotate(number = Count('id'))
+ examnumber = s_models.ExamTest.objects.filter(usecomps__contains=','+str(i.partid)+',').count()
if start:
- examlist = examlist.filter(starttime__gte=start)
+ examnumber = s_models.ExamTest.objects.filter(usecomps__contains=','+str(i.partid)+',',starttime__gte=start).count()
if end:
- examlist = examlist.filter(starttime__lte=end)
- examjson.append({'companyName':i,'number':examlist.number})
+ examnumber = s_models.ExamTest.objects.filter(usecomps__contains=','+str(i.partid)+',',starttime__lte=end).count()
+ examjson.append({'companyName':i.partname,'number':examnumber})
return HttpResponse(json.dumps({'code':1,'data':examjson}), content_type='application/json')