125 lines
4.2 KiB
JavaScript
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;
|
|
} |