etms/asset/js/cetc54/exam/examresult.js

480 lines
17 KiB
JavaScript
Raw Normal View History

var webroot = $("#hdWebroot").val();
var rootUrl = webroot + '/exam/examresult/';
var deleteUrl = rootUrl + 'delete';//删除地址
var editexamPage =rootUrl + 'editexampaperPage';//编辑页面地址
$(function () {
//------------------------属性-------------------------------------
var listUrl = rootUrl + 'list';//分页数据地址
var saveUrl = rootUrl + 'save';//保存添加数据地址
var comboxUrl=rootUrl+ 'examResultCombox';//下拉框
var examResultUrl=rootUrl+ 'examResultList';//考试判卷——判卷——List
var examResultImportUrl = rootUrl + 'examResultImport';//导入成绩
var updateAnswerUrl = rootUrl + 'updateAnswer';//系统自动判卷-更新答案
var updateUserScoreUrl = rootUrl + 'updateUserScore';//系统自动判卷-更新用户得分和判卷人
var dialogSize = {width: 800, height: '80%'};//弹出窗口大小
var dialog = $('#dialog');
var grid_form = $('#grid_form');
var grid = $('#grid');
var examId="";//试卷id
var userId="";//工资号
//-----------------------初始化--------------------------------------
initexamsGrid();
// addFilter();
addEvents();
//-------------------------------------方法--------------------------------------------------------
function initexamsGrid() {
//初始化搜索框
$('#searchbox').uiSearchbox({
width: 240,
prompt: '答题人|部门|试卷名称',
searcher: function (v) {
grid.uiGrid('loadData', {queryParams: {key: $.trim(v)}, pageIndex: 1});
}
});
//初始化grid
grid.uiGrid({
url: listUrl,
defaultSortField: 'user_time'
});
//下拉框
$('#name').uiCombobox({
mode: 'remote',
searchable: true,
delay :500,
hasDownArrow:false,
loader: comboxLoad,
url: comboxUrl,
onSelect: function(record) {
examId = record.id;
grid.uiGrid('loadData', {queryParams:{examId: examId}});
},
});
}
//初始化考试判卷编辑表单
var formeditexamInit = function () {
var eqlist2 = $('#eqlist2');
eqlist2.uiGrid({
autoFit: true,
border: false,
colFit: true,
gridTitleFix: false,
width: "100%",
height: "80%",
showHeader: false,
icon: 'list',
url: examResultUrl,
queryParams: {'userId':userId,
'examId':examId},//从前端获取,向后台传递参数
defaultSortField: 'num'
});
};
//初始化考试判卷弹出窗口
var editexam_dialog = $('#editexam_dialog').uiDialog({
title: '新建',
icon: 'list',
width:"95%",
height:"95%",
mask: true,
showBtnBar: true,
updateOnOpen: true,
lazyLoad: true,
url: editexamPage,
onLoadComplete: formeditexamInit,
onOpen: function () {
var dialogP = $('#editexam_dialog').uiDialog('getUserParam');
var id = dialogP.id;
setTimeout( function(){
setStatistic();
userScore();
},100);
},
onPanelResize: function () {
// setStatistic();//将计算题数和总分的方法放在了组件改变大小时触发不合理考虑用SQL语句初始化出来
// userScore();
},
buttons: [
// {
// id: 'btnOK',
// label: '保存',
// style: 'button_submit',
// icons: {left: 'icon_submit'},
// disabled: false,
// onClick: function () {
// editexam_dialog.uiDialog('close');
// }
// },
{
id: 'btnOK',
label: '提交',
style: 'button_submit',
icons: {left: 'icon_submit'},
disabled: false,
onClick: function () {
$.uiMessagebox.confirm({
title: '确认操作',
content: "确定提交批阅的试卷吗?",
onClose: function (value) {
if (value){
// var totalScore = 0;//总分
for (var i=1; i<$('#eqlist2').find('tr').length; i++){
var parent = "";
var user_score="";
var id = "";
var score = "";
parent=$('#eqlist2').find('tr:eq('+i+')');
user_score = parent.find(".user_score").val();
id = parent.find(".qid").html();
// totalScore += Number(user_score);
// score = parent.find("#score").html();
// if(Number(user_score) > Number(score))
// {
// alert("考生得分不应大于该题总分!");
// return;
// }
$.ajax({
type: 'post',
url: saveUrl,
data: {'id':id,
'user_score':user_score},
dataType: "json",
success: function (result) {
if (result.success) {
grid.uiGrid('loadData', {queryParams:{examId: examId}});
}
showResult(result.success, result.message);
$('#editexam_dialog').uiDialog('close');
},
error:function() {
alert("提交批阅试卷失败");
}
});
}
}
}
});
}
},
{
id: 'btnCancel',
label: '关闭',
icons: {left: 'icon_cancel'},
disabled: false,
style: 'button_cancel',
onClick: function () {
editexam_dialog.uiDialog('close');
}
}]
});
//初始化导入成绩编辑表单
var formimportInit2 = function () {
$('#fileform').uiForm({
template: 'grid_form_temp2',
onLoadSuccess: function (data) {
$('#btnUpload').bind('click', function () {
$('#fileform').uiForm('submit', {
url: examResultImportUrl,
dataType: "application/json",
onSubmit: function (params) {
},
success: function (result) {
if (result.success) {
$('#examresult_dialog').uiDialog('close');//保存成功后关闭对话框
grid.uiGrid('loadData', {queryParams:{'examId': result.data.exam_id}});
}
showResult(result.success, result.message);
}
});
});
}
});
};
//初始化弹出窗口——导入成绩
var examresult_dialog = $('#examresult_dialog').uiDialog({
title: '导入',
icon: 'list',
width:"80%",
height:"60%",
mask: true,
showBtnBar: true,
updateOnOpen: true,
lazyLoad: true,
onLoadComplete: formimportInit2,
onOpen: function () {
var dialogP = $('#examresult_dialog').uiDialog('getUserParam');
op = dialogP.action;
var id = dialogP.id;
switch (op) {
case 'view':
case 'edit':
$('#fileform').uiForm('load', grid.uiGrid('selectedData')[0]);
break;
case 'add':
$('#fileform').uiForm('load', {});
break;
default :
break;
}
// $('#fileform').uiForm('load');//为组件加载数据
}
});
function addEvents() {
//考试判卷
$('#btn1').bind('click', function () {
var ids = grid.uiGrid('selectedData', 'id');
userId = ids[0];//此处将工资号作为id
// console.log(AndEdit_id);
if(ids.length == 0){
showResult(false,'请选择要批阅的试卷!','alert');
}
else if(ids.length > 1){
showResult(false,'请选择要批阅的一张试卷,不支持同时选择多张试卷!','alert');
}
else{
editexam_dialog.uiDialog('setUserParam', {action: 'add', id: 0});
editexam_dialog.uiDialog('button', 'btnOK').show();
editexam_dialog.uiDialog('open');
editexam_dialog.uiDialog('title').html('判卷');
// $('#eqlist2').uiGrid('loadData',{queryParams: {AndEdit_id: AndEdit_id}});
$.ajax({
type: 'post',
url: examResultUrl,
data:{'userId':userId,
'examId':examId},
dataType: "json",
success: function (result) { //result是接收后台return的结果
//showResult(result.success, result.message);
if(result.data.rows.length > 0){
var data=result.data.rows[0];
if(data.state === "线下考试"){
alert("线下考试不允许再次判卷!");
editexam_dialog.uiDialog('close');
}
}
setTimeout(function () {
if(result.data.rows.length > 0){
var data=result.data.rows[0];
$('#title_name').html(data.name);//将后台return的结果显示在前端
$('#title_description').html(data.description);
}
},100);
// $('#eqlist2').uiGrid('loadData',{queryParams: {'userId':userId, 'examId':examId}});
},
error:function() {
alert("考试判卷提交失败");
}
});
}
});
//导入成绩
$('#btn2').bind('click', function () {
examresult_dialog.uiDialog('setUserParam', {action: 'add', id: 0});
examresult_dialog.uiDialog('button', 'btnOK').show();
examresult_dialog.uiDialog('open');
examresult_dialog.uiDialog('title').html('导入');
});
//导出成绩
$('#btn3').bind('click', function () {
var ids = $('#name').uiCombo('getValue');
if (typeof(ids) == "undefined") {
showResult(false, '请选择试卷!', 'alert');
}
else {
var j = ids;
var openurl =webroot+"/ReportServer?reportlet=examResult.cpt"+'&id='+j+"&format=excel";
// var openurl="http://localhost:8075/WebReport/ReportServer?reportlet=exam.cpt&format=excel";
window.open(openurl);
}
});
//自动判卷
$('#btn4').bind('click', function () {
var exam_id = $('#name').uiCombo('getValue');
if (typeof(exam_id) == "undefined") {
showResult(false, '请选择试卷!', 'alert');
}
else {
$.uiMessagebox.confirm({
title: '确认操作',
content: "确定使用客观题系统自动判卷吗?",
onClose: function (value) {
if (value) {
$.ajax({
type: 'post',
url: updateAnswerUrl,
data: {'exam_id':exam_id},
dataType: "json",
success: function (result) {
if(result.success){
$.ajax({
type: 'post',
url: updateUserScoreUrl,
data: {'exam_id':exam_id},
dataType: "json",
success: function () {
$('#grid').uiGrid('loadData');
},
error:function() {
alert("系统自动判卷更新用户得分和判卷人失败");
}
});
}
},
error:function() {
alert("系统自动判卷更新答案失败");
}
});
}
}
});
}
});
}
//选择要批阅的试卷 下拉框
function comboxLoad(param, success, error) {
var opts = $(this).uiCombobox('options');
if (!opts.url) return false;
$.ajax({
type: opts.method,
url: opts.url,
showLoading: false,
data: param,
showAlert:false,
dataType: 'json',
success: function (result) {
if (result.success) {
success(result.data);
}
},
error: function () {
error.apply(this, arguments);
}
});
}
//arttemplate语法
template.helper('judge', function (data, format) {
if (data!=undefined && data.indexOf(format)!=-1){
return true;
}else {
return false;}
});
});
//查看
function viewRow(id, title) {
var dialog = $('#dialog');
dialog.uiDialog('setUserParam', {action: 'view', id: id});
dialog.uiDialog('open');
title = '-' + title || '';
dialog.uiDialog('title').html('查看' + title);
dialog.uiDialog('button', 'btnOK').hide();
}
//编辑
function editRow(id) {
var dialog = $('#dialog');
dialog.uiDialog('setUserParam', {action: 'edit', id: id});
dialog.uiDialog('open');
dialog.uiDialog('title').html('编辑');
dialog.uiDialog('button', 'btnOK').show();
}
// 删除
function deleteRow(id) {
deleteData("此操作将删除试卷,可能会导致以往考试找不到试卷,确定删除吗?", deleteUrl, {ids: id}, function (result) {
if (result.success) {
$('#grid').uiGrid('loadData');
}
});
}
//删除
function deleteData(confirmText, url, data, callback) {
$.uiMessagebox.confirm({
title: '确认操作',
content: confirmText,
onClose: function (value) {
if (value) {
$.ajax({
type: 'post',
url: url,
data: data,
dataType: "json",
success: function (result) {
callback && callback.call(this, result);
}
});
}
}
});
}
//计算题数和总分
function setStatistic() {
var totalQuestion="";
var totalScore=0;
var score="";
for (var i=1; i<$('#eqlist2').find('tr').length; i++){
var parent="";
parent=$('#eqlist2').find('tr:eq('+i+')');
score=parent.find(".score").html();
totalScore +=Number(score);
}
totalQuestion = $('#eqlist2').find('tr').length - 1;
$('#sum').val(totalQuestion);
$('#sum_score').val(totalScore);
}
//计算考生得分
function userScore() {
var totalScore=0;
var score="";
for (var i=1; i<$('#eqlist2').find('tr').length; i++){
var parent="";
parent=$('#eqlist2').find('tr:eq('+i+')');
parent.find(".user_score").val(parent.find(".user_score").val().replace(/[^0-9]/g,''));
score=parent.find(".user_score").val();
totalScore +=Number(score);
}
$('#user_result').val(totalScore);
}
function checkSize(ele){
var size_m = (ele.files[0].size / 1024);
if(size_m >= 1024*1024*5){
$('#hidFile').val(1);
return false;
}
$('#hidFile').val(0);
return true;
}