You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
301 lines
10 KiB
JavaScript
301 lines
10 KiB
JavaScript
|
|
$(function () {
|
|
//加载
|
|
GetList("");
|
|
$("#btnListSearch").unbind("click").click(function () {
|
|
var KeyWord = $("#txtKeyWord").val();
|
|
if (KeyWord == "试卷名称") { KeyWord = ""; }
|
|
GetList(KeyWord);
|
|
//GetList($("#txtKeyWord").val());
|
|
});
|
|
$("#btnChartSearch").unbind("click").click(function () {
|
|
LoadChart();
|
|
});
|
|
$("#btnErrorRateSearch").unbind("click").click(function () {
|
|
var PaperId = $("#hdPaperId1").val();
|
|
var ClassId = "";
|
|
var type = $("#selectClassList1").val();
|
|
if (parseInt(type) > 0) {
|
|
ClassId = type;
|
|
}
|
|
GetErrorRateList(PaperId, ClassId);
|
|
});
|
|
|
|
$("#txtKeyWord").unbind("focus").focus(function () {
|
|
$(this).val("").css("color", "black");
|
|
})
|
|
});
|
|
function LoadChart() {
|
|
var PaperId = $("#hdPaperId").val();
|
|
var ClassId = "";
|
|
var type = $("#selectClassList").val();
|
|
if (parseInt(type) != 0) {
|
|
ClassId = type;
|
|
}
|
|
|
|
$.ajax({
|
|
url: "/Teacher/TheoryQuestion/GetScoreResults",
|
|
data: { ClassId: ClassId, PaperId: PaperId },
|
|
async: false,
|
|
type: "POST",
|
|
success: function (data) {
|
|
if (data != null) {
|
|
|
|
var count = data.length;
|
|
var MinScore = 0, MaxScore = 0, AverageScore = 0, TotalScore = 0, YouXiu = 0, LiangHao = 0, YiBan = 0, BuJiGe = 0, ExamScore = 0;
|
|
if (count > 0) {
|
|
MinScore = data[0].Score * 1;
|
|
}
|
|
for (var i = 0; i < count; i++) {
|
|
var Score = data[i].Score * 1;
|
|
ExamScore = data[i].TotalScore * 1;
|
|
if (Score < MinScore) {
|
|
MinScore = Score;
|
|
}
|
|
|
|
if (MaxScore < Score) {
|
|
MaxScore = Score;
|
|
}
|
|
TotalScore += Score;
|
|
var Grade = 0;//评分等级---优、良、及格、不及格
|
|
Grade = (Score / ExamScore) * 10;
|
|
if (Grade >= 9) {
|
|
YouXiu++;
|
|
} else if (Grade >= 8) {
|
|
LiangHao++;
|
|
} else if (Grade >= 6) {
|
|
YiBan++;
|
|
} else {
|
|
BuJiGe++;
|
|
}
|
|
}
|
|
$("#MaxScore").text(MaxScore);//最高分
|
|
$("#MinScore").text(MinScore);//最低分
|
|
AverageScore = TotalScore / count;
|
|
if (isNaN(AverageScore)) {
|
|
AverageScore = 0;
|
|
}
|
|
$("#AverageScore").text(AverageScore.toFixed(2));//平均分
|
|
var YouXiuRate = (YouXiu / count * 100).toFixed(2);
|
|
if (YouXiuRate == "NaN") {
|
|
YouXiuRate = 0;
|
|
}
|
|
var LiangHaoRate = (LiangHao / count * 100).toFixed(2);
|
|
if (LiangHaoRate == "NaN") {
|
|
LiangHaoRate = 0;
|
|
}
|
|
var YiBanRate = (YiBan / count * 100).toFixed(2);
|
|
if (YiBanRate == "NaN") {
|
|
YiBanRate = 0;
|
|
}
|
|
var BuJiGeRate = (BuJiGe / count * 100).toFixed(2);
|
|
if (BuJiGeRate == "NaN") {
|
|
BuJiGeRate = 0;
|
|
}
|
|
|
|
if (AverageScore == 0 && YouXiuRate == 0 && LiangHaoRate == 0 && BuJiGeRate == 0) {
|
|
$("#container").html("");
|
|
} else {
|
|
ShowChart(data);
|
|
}
|
|
}
|
|
},
|
|
error: function (msg) {
|
|
$(".background,.progressBar").hide();
|
|
}
|
|
});
|
|
}
|
|
|
|
function GetList(KeyWord) {
|
|
pageHelper.Init({
|
|
url: "/Teacher/TheoryQuestion/GetTheoryExamList",
|
|
type: "POST",
|
|
pageDiv: "#Scorepage",
|
|
data:
|
|
{
|
|
KeyWord:KeyWord,
|
|
rId: Math.random()
|
|
},
|
|
bind: function (data) {
|
|
var html = "";
|
|
$(data.Data).each(function (index, dom) {
|
|
//每行html
|
|
var trHtml = "";
|
|
trHtml += "<tr>";
|
|
trHtml += "<td><div class=\"ellipsis\" title=\"{0}\">{0}</div></td>";
|
|
trHtml += "<td><div class=\"ellipsis\" title=\"{1}\">{1}</div></td>";
|
|
trHtml += "<td><div class=\"ellipsis\" title=\"{2}\">{2}</div></td>";
|
|
trHtml += "<td class=\"operate\">";
|
|
trHtml += "<a class=\"spr spr-mark\" title=\"查看成绩\" href=\"javascript:ViewResults({3},'{0}');\"></a>";
|
|
trHtml += "<a class=\"spr spr-chart\" title=\"查看图表\" href=\"javascript:ViewChart({3},'{0}',{2});\"></a>";
|
|
trHtml += "<a class=\"spr spr-ber\" title=\"查看错误率\" href=\"javascript:ViewErrorRate({3},'{0}');\"></a>";
|
|
trHtml += "</td>";
|
|
trHtml += "</tr>";
|
|
//拼接tbody
|
|
html += StringHelper.FormatStr(trHtml,
|
|
dom.ExamPaperName, //1 考试名称
|
|
dom.ExamTime, //2 考试时长
|
|
dom.TotalScore, //3 总分
|
|
dom.Id
|
|
);
|
|
});
|
|
$("#ScoreList").html(html);
|
|
}
|
|
});
|
|
}
|
|
|
|
//查看成绩
|
|
function ViewResults(PaperId, ExamName) {
|
|
location.href = "/Teacher/TheoryQuestion/ViewResults?PaperId=" + PaperId + "&ExamName=" + escape(ExamName);
|
|
}
|
|
//查看图表
|
|
function ViewChart(PaperId, ExamName, AllScore) {
|
|
$("#AllScore").text(AllScore);
|
|
$("#ExamName").text(ExamName).attr('title', ExamName);
|
|
$("#hdPaperId").val(PaperId);
|
|
|
|
dialogHelper.Show("popViewChart", 800);
|
|
//加载班级下拉列表
|
|
selectHelper.GetSelect({
|
|
url: "/Teacher/Value/GetClassListByPaperId",
|
|
Id: "#selectClassList",
|
|
value: "全部",
|
|
data: { PaperId: PaperId }
|
|
});
|
|
LoadChart();
|
|
}
|
|
//饼图查看
|
|
function ShowChart(data) {
|
|
var count = data.length;
|
|
var MinScore = 0, MaxScore = 0, AverageScore = 0, TotalScore = 0, YouXiu = 0, LiangHao = 0, YiBan = 0, BuJiGe = 0, ExamScore = 0;
|
|
if (count > 0) {
|
|
MinScore = data[0].Score * 1;
|
|
}
|
|
for (var i = 0; i < count; i++) {
|
|
var Score = data[i].Score*1;
|
|
ExamScore = data[i].TotalScore * 1;
|
|
if (Score < MinScore) {
|
|
MinScore = Score;
|
|
}
|
|
|
|
if (MaxScore < Score) {
|
|
MaxScore = Score;
|
|
}
|
|
TotalScore += Score;
|
|
var Grade = 0;//评分等级---优、良、及格、不及格
|
|
Grade = (Score / ExamScore) * 10;
|
|
if (Grade >= 9) {
|
|
YouXiu++;
|
|
} else if (Grade >= 8) {
|
|
LiangHao++;
|
|
} else if (Grade >= 6) {
|
|
YiBan++;
|
|
} else {
|
|
BuJiGe++;
|
|
}
|
|
}
|
|
$("#MaxScore").text(MaxScore);//最高分
|
|
$("#MinScore").text(MinScore);//最低分
|
|
AverageScore = TotalScore / count;
|
|
if (isNaN(AverageScore)) {
|
|
AverageScore = 0;
|
|
}
|
|
$("#AverageScore").text(AverageScore.toFixed(2));//平均分
|
|
var YouXiuRate = (YouXiu / count * 100).toFixed(2);
|
|
if (YouXiuRate == "NaN") {
|
|
YouXiuRate = 0;
|
|
}
|
|
var LiangHaoRate = (LiangHao / count * 100).toFixed(2);
|
|
if (LiangHaoRate == "NaN") {
|
|
LiangHaoRate = 0;
|
|
}
|
|
var YiBanRate = (YiBan / count * 100).toFixed(2);
|
|
if (YiBanRate == "NaN") {
|
|
YiBanRate = 0;
|
|
}
|
|
var BuJiGeRate = (BuJiGe / count * 100).toFixed(2);
|
|
if (BuJiGeRate == "NaN") {
|
|
BuJiGeRate = 0;
|
|
}
|
|
$('#container').highcharts({
|
|
chart: {
|
|
type: 'pie',
|
|
options3d: {
|
|
enabled: true,
|
|
alpha: 45
|
|
},
|
|
width: 400,
|
|
hight: 400
|
|
},
|
|
title: {
|
|
text: '考核成绩图表'
|
|
},
|
|
colors: ['#46adb7', '#f2a83e', '#e16556', '#00a2e2'],//# aea8a8
|
|
plotOptions: {
|
|
pie: {
|
|
size: 200,
|
|
innerSize: 100,
|
|
depth: 45
|
|
}
|
|
},
|
|
series: [{
|
|
name: '人数',
|
|
data: [
|
|
['优秀' + YouXiuRate + '%', YouXiu],
|
|
['良好' + LiangHaoRate + '%', LiangHao],
|
|
['一般' + YiBanRate + '%', YiBan],
|
|
['不及格' + BuJiGeRate + '%', BuJiGe],
|
|
]
|
|
}]
|
|
});
|
|
}
|
|
|
|
//查看错误率
|
|
function ViewErrorRate(PaperId, ExamName) {
|
|
$("#ExamName1").text(ExamName).attr('title', ExamName);
|
|
//加载班级下拉列表
|
|
selectHelper.GetSelect({
|
|
url: "/Teacher/Value/GetClassListByPaperId",
|
|
Id: "#selectClassList1",
|
|
value: "全部",
|
|
data: { PaperId: PaperId }
|
|
});
|
|
$("#hdPaperId1").val(PaperId);
|
|
GetErrorRateList(PaperId, "");
|
|
dialogHelper.Show("popViewBer", 800);
|
|
}
|
|
function GetErrorRateList(PaperId, ClassId) {
|
|
pageHelper.Init({
|
|
url: "/Teacher/TheoryQuestion/GetErrorRateList",
|
|
type: "POST",
|
|
async: false,
|
|
pageDiv: "#ViewBerPages",
|
|
data:
|
|
{
|
|
PaperId: PaperId,
|
|
ClassId: ClassId,
|
|
rId: Math.random()
|
|
},
|
|
bind: function (data) {
|
|
var html = "";
|
|
$(data.Data).each(function (index, dom) {
|
|
//每行html
|
|
var trHtml = "";
|
|
trHtml += "<tr>";
|
|
trHtml += "<td name=\"dataNo\">{0}</td>";
|
|
trHtml += "<td><div class=\"ellipsis\" title=\"{1}\">{1}</div></td>";
|
|
trHtml += "<td><div class=\"ellipsis\" title=\"{2}\">{2}</div></td>";
|
|
trHtml += "<td><div class=\"ellipsis\" title=\"{3}\">{3}</div></td>";
|
|
trHtml += "</tr>";
|
|
//拼接tbody
|
|
html += StringHelper.FormatStr(trHtml,
|
|
((data.PageIndex - 1) * data.PageSize + index + 1), //0 序号
|
|
dom.QuestionsName, //1 题干
|
|
dom.QuestionsTypeName, //2 题型
|
|
dom.ErrorRate //3 错误率
|
|
);
|
|
});
|
|
$("#ErrorRateList").html(html);
|
|
}
|
|
})
|
|
};
|