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

$(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);
}
})
};