import dayjs from "dayjs";
|
|
|
|
|
|
// 判断选项是否被选中
|
|
export function isOptionSelected(question, optionId) {
|
|
if (!question.userAnswerBaseList || !question.userAnswerBaseList.length) return false;
|
|
return question.userAnswerBaseList.some(answer => answer.answerId === optionId);
|
|
}
|
|
|
|
// 判断答案是否正确
|
|
export function isAnswerCorrect(question) {
|
|
if (!question.userAnswerBaseList || !question.userAnswerBaseList.length) return false;
|
|
|
|
// 获取所有正确答案的ID
|
|
const correctOptionIds = question.answerList
|
|
.filter(option => option.isTrue)
|
|
.map(option => option.id);
|
|
|
|
// 获取用户选择的答案ID
|
|
const userAnswerIds = [...new Set(question.userAnswerBaseList.map(answer => answer.answerId))];
|
|
|
|
// 判断用户选择的答案数量是否与正确答案数量相同
|
|
if (userAnswerIds.length !== correctOptionIds.length) {
|
|
return false;
|
|
}
|
|
|
|
// 判断用户选择的答案是否都是正确的
|
|
return userAnswerIds.every(answerId => correctOptionIds.includes(answerId));
|
|
}
|
|
|
|
export function isQuestionAnswered(question) {
|
|
if (question.type == '培训') {
|
|
// 填空题:检查是否有答案且答案不为空
|
|
return question.userAppletAnswerTrain &&
|
|
question.userAppletAnswerTrain.answer &&
|
|
question.userAppletAnswerTrain.answer.trim() !== '';
|
|
} else {
|
|
// 选择题:检查是否有选择的答案
|
|
return question.userAnswerBaseList && question.userAnswerBaseList.length > 0;
|
|
}
|
|
}
|
|
|
|
// 判断全部题目答案是否达到指定的准确率
|
|
export function isSuccessPrecision(list, number = 100){
|
|
|
|
let errNumber = 0
|
|
|
|
for (var index = 0; index < list.length; index++) {
|
|
var question = list[index];
|
|
if (question.type == '基本' && !isAnswerCorrect(question)) {
|
|
errNumber++
|
|
}
|
|
}
|
|
|
|
console.log(errNumber, (list.length - errNumber) / list.length * 100);
|
|
|
|
if(((list.length - errNumber) / list.length * 100) < number){
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
export default {
|
|
isOptionSelected,
|
|
isAnswerCorrect,
|
|
isQuestionAnswered,
|
|
isSuccessPrecision,
|
|
}
|