const AnswerControlMixin = { props: {}, data() { return { answer_comparison: { answer_list: [] }, // answer_control: {}, }; }, methods: { /** * 显示答案 * @param {Boolean} isJudgeAnswer 是否判断对错 * @param {Boolean} isViewRightAnswer 是否显示正确答案 * @param {Boolean} isReadOnly 是否只读 */ showAnswer(isJudgeAnswer, isViewRightAnswer, isReadOnly, question_id, answer_comparison, is_objective) { this.answer_control[question_id] = { isJudgeAnswer: isJudgeAnswer, isViewRightAnswer: isViewRightAnswer, isReadOnly: isReadOnly, is_objective: is_objective }; this.question_id = question_id; if (answer_comparison) this.answer_comparison = answer_comparison; this.$forceUpdate(); }, //初始化控制 commonComputedAnswerControl(question_id) { var cur = this.answer_control[question_id]; if (!cur) { this.answer_control[question_id] = { isJudgeAnswer: false, //是否判断答案 isViewRightAnswer: false, //是否显示标准答案 isReadOnly: false, //是否只读 is_objective: true, //是否客观题 }; cur = this.answer_control[question_id]; } return cur; }, //初始化整个答题控制 initAnswerControl() { for (const key in this.answer_control) { this.answer_control[key] = { isJudgeAnswer: false, isViewRightAnswer: false, isReadOnly: false, is_objective: true, }; } }, /** * 题目序号以括号结尾,如果不是则加上 '.' * @param {题目序号} question_number * @returns {题目序号} */ questionNumberEndIsBracket(question_number) { return question_number ? ( `${question_number}${/[()()]/.test(question_number) ? '' :(/[一二三四五六七八九十]+/.test(question_number) ? '、' :'.')}` ) : ''; }, /** * 预览图片 * @param {图片地址} url */ preview(url) { uni.previewImage({ current: url, urls: [url], }); }, /** * 预览富文本里面的图片(连线题,朗读题等调用这个) * @param {索引,定位富文本元素} i,j */ previewByRichTextImg(i, j, question_id) { var _richText = 'richText' + i + j + question_id; if ('sort' === i && 'sort' === j) { _richText = question_id; //排序题特殊处理(这里question_id实际为mark) }; let html = ''; if (i < 0 && j < 0) { html = this.$refs[_richText].$el.innerHTML; } else { html = this.$refs[_richText][0].$el.innerHTML; } const srcReg = / result[1]); if (!srcList) return; if (srcList.length > 1) { uni.previewImage({ current: 0, urls: srcList, }); } else { this.preview(srcList[0]); } }, }, }; export default AnswerControlMixin;