From f6f804a09eb5abac7a6f63a83462b2c75eb81be1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Czouyf=E2=80=9D?= <80906036@qq.com> Date: Thu, 10 Oct 2024 17:32:13 +0800 Subject: [PATCH] 1 --- src/renderer/src/hooks/useProcessList.js | 207 +------------------- src/renderer/src/views/examReport/index.vue | 6 +- 2 files changed, 7 insertions(+), 206 deletions(-) diff --git a/src/renderer/src/hooks/useProcessList.js b/src/renderer/src/hooks/useProcessList.js index d53f73e..1a1ca4f 100644 --- a/src/renderer/src/hooks/useProcessList.js +++ b/src/renderer/src/hooks/useProcessList.js @@ -305,210 +305,11 @@ export const processList = (row) => { .join('、') row[i].workanswerFormat = answer } + // else { + // // 其余类型试题类型(因学科不同, 大多为主观题类型, 结构为数组) + // row[i].workanswerFormat = workAnswerArr.join('、') + // } } - - /* - //2、处理单选题 - if(row[i].worktype == '单选题' || row[i].worktype == '多选题' ){ - //1.选项前增加ABCD workdesc: "①②#&①③#&②④#&③④" || "
为了活着
#&
为了填报肚子
#&
为了吃饭而吃饭
" - let workDescArr = []; - if(row[i].workdesc.indexOf('[')!==-1 && row[i].workdesc.indexOf(']')!==-1) { - //123会直接被转换, 且不是数组对象, 故手动判断是否有[和]两个字符 - workDescArr = JSON.parse(row[i].workdesc); - } - else if(row[i].workdesc.indexOf('#&')) { - workDescArr = row[i].workdesc.split('#&'); - } - else if(row[i].workdesc.indexOf(',')){ - workDescArr = row[i].workdesc.split(','); - } - else { - // 待考虑 - workDescArr.push(item.workdesc) - } - - - - //2.答案 - 数字转为ABCD - if(row[i].worktype == '单选题') { - const str2Char = String.fromCharCode(65+Number(row[i].workanswer)); - row[i].workanswerFormat = str2Char; - } else if (row[i].worktype == '多选题') { - const answerArr = row[i].workanswer.split('#&'); - let arr2Char = ''; - for(let k=0; k]*>/g, "").split('#&'),'????') - // 填空题答案 - row[i].workanswerFormat = row[i].workanswer.replace(/#&/g,", "); - // 填空选项不需要展示, - row[i].workdescFormat = ''; - } - else if(row[i].worktype == '判断题'){ - // console.log(row[i].workanswer.replace(/<[^>]*>/g, "").split('#&'),'????') - // 判断题答案 - row[i].workanswerFormat = row[i].workanswer.replace(/#&/g,", "); - // 判断选项不需要展示, - row[i].workdescFormat = ''; - } - else if(row[i].worktype == '复合题') { - // 1.选项解析替换 - const options = JSON.parse(row[i].workdesc); - // 题目(背景材料+复合题目) - const bjTitle = row[i].title.split('!@#$%')[0]; - const tmTitles = row[i].title.split('!@#$%').filter((it,ix)=>ix>0); - // console.log(bjTitle,'背景标题'); - // console.log(tmTitles,'复合题目'); - let titls = []; - options.forEach((element,index1) => { - const workDescArr = element.split('#&'); - let tmp = ''; - let j=0; - for(; j`; - } - const char = String.fromCharCode(65+j); - tmp += `
${char}.${jsonArr[j]}
`; - if(j%2 == 1){ - tmp += ''; - } - } - - if(j%2== 0){ - tmp += ''; - } - workdesc = tmp; - } - - row[i].workdescFormat = workdesc; // 题目选项 - - - // 答案处理 - let workanswer = ''; - if(row[i].workanswer && row[i].workanswer != '') { - // 因答案内容存在多种格式: 1.["123","1234"] 2.123#&1234 3.123 - if(row[i].workanswer.indexOf('[')!==-1 && row[i].workanswer.indexOf(']')!==-1) { - //123会直接被转换, 且不是数组对象, 故手动判断是否有[和]两个字符 - let json = JSON.parse(row[i].workanswer); - // 单选、多选 需要 数字转为ABCD - if(row[i].worktype == '单选题') { - const str2Char = String.fromCharCode(65+Number(json[0])); - workanswer = str2Char; - } else if (row[i].worktype == '多选题') { - // const answerArr = row[i].workanswer.split('#&'); - let arr2Char = ''; - for(let k=0; k'; - } - workanswer = arr2Char; - row[i].titleFormat = row[i].titleFormat.replace(/!@#\$%/g, ''); - } else { - workanswer = json.join('、'); - } - } else if(row[i].workanswer.indexOf('#&')) { - // 意味着多个答案或者填空内容 - let workanswerList = row[i].workanswer.split('#&'); - if(row[i].worktype == '多选题') { - // 数字转为ABCD - let arr2Char = ''; - for(let k=0; k { - const arrTmp = item.answer.split('#&'); - let value = `(${indexLabel})`; - arrTmp.forEach((element,i) => { - if(item.type == '单选题' || item.type == '多选题'){ - value += `${String.fromCharCode(65+Number(element))}`; - } - if(item.type == '判断题' || item.type == '填空题'){ - // 去除下 html标签 - value += `${element.replace(/<[^>]+>/g, '')}`+ (i==arrTmp.length-1?'':'、'); - } - }) - arr.push(value); - indexLabel++; - }) - const answer = arr.join('
'); - - row[i].workanswerFormat = answer; - } - else if(row[i].worktype == '主观题') { - // 1.选项解析替换---主观题没选项 - // 题目(背景材料+主观题目) - const bjTitle = row[i].title.split('!@#$%')[0]; - const tmTitles = row[i].title.split('!@#$%').filter((it,ix)=>ix>0); - // console.log(bjTitle,'背景标题'); - // console.log(tmTitles,'主观题目'); - let titls = []; - const s = []; - tmTitles.map((it,ix)=>{ - s.push(it); - }) - // console.log(s,'?????????????????') - - row[i].titleFormat = bjTitle + s.join(''); - // 填空选项不需要展示, - row[i].workdescFormat = ''; - - //2.答案 - // 填空题答案 - const workanswerList = JSON.parse(row[i].workanswer); - let tmp=''; - workanswerList&&workanswerList.map((item,index)=>{ - tmp += '
'+(index+1)+'.'+item.replace(/#&/g, ',')+'
'; - }) - row[i].workanswerFormat = tmp; - - } - else { - //处理答案 - row[i].workanswerFormat = '见试题解答内容'; - } - */ } } } diff --git a/src/renderer/src/views/examReport/index.vue b/src/renderer/src/views/examReport/index.vue index 37d73e2..e45fa83 100644 --- a/src/renderer/src/views/examReport/index.vue +++ b/src/renderer/src/views/examReport/index.vue @@ -75,7 +75,7 @@ import { ArrowRight } from '@element-plus/icons-vue' import useResoureStore from '@/views/resource/store' import ChooseTextbook from '@/components/choose-textbook/index.vue' import {listEntpcoursework, listEntpcourseworkNew} from '@/api/education/entpCourseWork' -import {processExamQuestion} from '@/utils/examQuestion/tool' +import { processList } from '@/hooks/useProcessList' import { JYApiListCT} from "@/utils/examQuestion/jyeoo" import examReview from './container/examReview.vue' @@ -154,7 +154,7 @@ const getData = async (data) => { listExamQuestion.value = res.data; // queryParams.total = res.total; // 格式化试题 - processExamQuestion(listExamQuestion.value); + processList(listExamQuestion.value); loading.value = false; } @@ -222,7 +222,7 @@ const queryExamQuestionByParams = async () => { listExamQuestion.value = res.data; // queryParams.total = res.total; // 格式化试题 - processExamQuestion(listExamQuestion.value); + processList(listExamQuestion.value); loading.value = false; }