cc-jjsp-web/bns/js/studyExam/dayExamAjax.js

125 lines
4.2 KiB
JavaScript

// 保存答案
function saveAnswer(type, d) {
let value = '';
if (type === 1) { // 单选题
$('input[name="option"]').each(function () {
let checkValue = $(this).attr('checked');
let option = $(this).next().attr('value');
if (checkValue === 'checked') {
value = option;
return false;
}
})
} else { // 多选题
$('input[name="option"]').each(function () {
let checkValue = $(this).attr('checked');
let option = $(this).next().attr('value');
if (checkValue === 'checked') {
value += option;
}
})
if(!value){
return layer.msg('请选择答案',{icon:7});
}
}
let obj = type === 1 ? JSON.parse(d) : d;
obj.chooseAnswer = value;
// 保存答案到数据库
let flag = saveAnswerAjax(obj);
if (flag) {
$.each(dataList, function (index, item) {
if (obj.id === item.id) {
item.chooseAnswer = value;
}
})
const index = dataList.findIndex(item => item.id === obj.id);
$('#questionNumber .circle2').each(function (idx, item) {
if (index === idx) {
$(this).removeClass('selected2');
$(this).addClass('selected');
}
});
renderQuestion(index);
renderAnswerSheet(index);
} else {
layer.msg('答案核对失败', { icon: 2 });
}
}
// 获取分配的考试题目
function getTopicsAjax() {
let url = dataUrl + "proteam/sys/exam/getTopics";
let params = { userId: user.userId }
let loadingMsg = layer.msg('题目加载中,请稍候...', { icon: 16, scrollbar: false, time: 0 });
ajaxRequest2(url, "POST", params, true, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
initDayExamData(result.data);
} else {
layer.msg(result.msg, { icon: 2 })
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
}, null, token);
}
// 保存答案-ajax
function saveAnswerAjax(d) {
let flag = false;
let url = dataUrl + "proteam/sys/exam/addExamAns";
let params = {
examUserId: d.examUserId,
examId: d.id,
chooseAnswer: d.chooseAnswer,
score: sortAnswer(decrypt(d.topicAnswer)) === sortAnswer(d.chooseAnswer) ? d.topicScore : 0,
}
let loadingMsg = layer.msg('答案核对中,请稍候...', { icon: 16, scrollbar: false, time: 0 });
ajaxRequest2(url, "POST", params, false, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
flag = true;
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
}, null, token);
return flag;
}
// 交卷
function handPaper() {
let noAnswerNum = 0;
$.each(dataList, function (index, item) {
if (!item.chooseAnswer) {
noAnswerNum++;
}
})
let title = noAnswerNum > 0 ? '您还有' + noAnswerNum + '题未答,确认交卷吗?' : '确认交卷吗?'
layer.confirm(title, { title: '操作提示' }, function () {
let examUserId = dataList[0].examUserId;
let url = dataUrl + "proteam/sys/exam/submitPaper";
let params = { examUserId: examUserId }
let loadingMsg = layer.msg('交卷中,请稍候...', { icon: 16, scrollbar: false, time: 0 });
ajaxRequest2(url, "POST", params, true, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
// $('#operBtn').empty().append('<button class="submit-btn submitted">已交卷</button>');
parent.reloadDayExamStatus();
getTopicsAjax();
} else {
layer.msg(result.msg, { icon: 2 })
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
}, null, token);
})
}
// 答案排序
function sortAnswer(str){
const sortedStr = str.split('').sort().join('') || '';
return sortedStr;
}