{"version":3,"file":"result.c8cbd76f.mjs","sources":["../../../../pages/exam/result.vue"],"sourcesContent":["<template>\n  <NuxtLayout>\n    <div :style=\"{minHeight:minHeight}\" class=\"exam_result\">\n      <div class=\"exam_result_box\">\n        <template v-if=\"map.type === 1 ||map.type === 3\">\n          <p v-if=\"map.info.correctWay === 1\" class=\"font14 mgb10 c_red\">\n            <span class=\"score\">{{ map.info.userScore }}</span>分\n          </p>\n          <img v-else alt=\"\" src=\"@/assets/images/exam/icon_success.png\"/>\n          <p v-if=\"map.info.correctWay === 1\" class=\"font20 mgb10\">\n            {{ map.info.passStatus ? '恭喜你！成绩合格' : '啊哦，成绩未合格' }}</p>\n          <p v-else class=\"font20 mgb10\">恭喜你，完成此次考试</p>\n          <p v-if=\"map.info.correctWay === 1\" class=\"tip\">\n            本次考试为系统阅卷，仅统计客观题（单选题、多选题、判断题）；若后期人工干预评阅主观题（填空题、简答题），则最终以人工评阅结果为准。\n          </p>\n          <p v-else class=\"tip mgb10\">本次考试为人工阅卷，考试成绩需老师批阅方可查看~</p>\n        </template>\n        <template v-if=\"map.type === 2 || map.type === 4\">\n          <template v-if=\"map.practiceType && map.practiceType === 4\">\n            <img v-if=\"map.info.pathFindingType\" alt=\"\" src=\"@/assets/images/exam/icon_success.png\"/>\n            <img v-else alt=\"\" src=\"@/assets/images/exam/icon_wrong.svg\"/>\n            <p class=\"font20 mgb10\">{{ map.info.pathFindingType ? '恭喜你！闯关成功' : '很遗憾！您闯关失败' }}</p>\n          </template>\n          <template v-else>\n            <p v-if=\"Object.keys(map.info).length > 0\" class=\"font14 mgb10 c_red\">\n              <span class=\"score\">{{\n                  typeof map.info.accuracy === 'string' ? map.info.accuracy.replace('%', '') : parseFloat(map.info.accuracy * 100).toFixed(2)\n                }}</span>%答题正确率\n            </p>\n            <p class=\"font20 mgb10\">恭喜你，完成此次练习</p>\n            <!--<p class=\"tip\">本次练习仅统计单选题、多选题、判断题的成绩情况</p>-->\n          </template>\n        </template>\n        <div v-if=\"map.type === 1 || map.type === 3\" class=\"box_counts\">\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">{{ map.info.totalScore }}</div>\n            <div class=\"box_item_title\">考试总分</div>\n          </div>\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">\n              {{ formatDuring(map.info.answerTime * 1000) }}\n            </div>\n            <div class=\"box_item_title\">考试用时</div>\n          </div>\n          <!--      <div class=\"box_counts_item\">-->\n          <!--        <div class=\"box_item_content\">1</div>-->\n          <!--        <div class=\"box_item_title\">最高排名</div>-->\n          <!--      </div>-->\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">{{ map.info.historyHighestScore }}</div>\n            <div class=\"box_item_title\">历史最高分</div>\n          </div>\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">{{ map.info.subjectiveQuestionScore }}</div>\n            <div class=\"box_item_title\">主观题得分</div>\n          </div>\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">{{ map.info.objectiveQuestionScore }}</div>\n            <div class=\"box_item_title\">客观题得分</div>\n          </div>\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">{{ map.info.correctQuestionCount }}</div>\n            <div class=\"box_item_title\">正确题数</div>\n          </div>\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">{{ map.info.errorQuestionCount }}</div>\n            <div class=\"box_item_title\">错误题数</div>\n          </div>\n        </div>\n        <div v-if=\"map.type === 2 || map.type === 4\" class=\"box_practice\">\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">\n              {{ formatDuring((map.info.practiceTime || map.info.userPracticeTimeInterval) * 1000) }}\n            </div>\n            <div class=\"box_item_title\">练习用时</div>\n          </div>\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">{{ map.info.correctCount || '0' }}</div>\n            <div class=\"box_item_title\">正确题数</div>\n          </div>\n          <div class=\"box_counts_item\">\n            <div class=\"box_item_content\">{{ map.info.errorCount || '0' }}</div>\n            <div class=\"box_item_title\">错误题数</div>\n          </div>\n        </div>\n        <div class=\"box_btn_list\">\n          <el-button plain @click=\"handleBack\">{{ map.examType === 5 ? '返回列表' : '返回' }}</el-button>\n          <el-button v-if=\"map.info.startExam || map.type == 2\" plain @click=\"handReplace\">\n            {{ map.type !== 2 && map.type !== 4 ? '再考一次' : '再做一次' }}\n          </el-button>\n          <el-button v-if=\"map.info.showAnswerRule != 4\" :disabled=\"(map.info.showAnswerRule !== 1 && map.type !== 2 && (map.info.showAnswerRule === 2 && !map.info.passStatus)) || (map.info.showAnswerRule === 2 &&\n              !map.info.passStatus && map.type !== 2)\" :type=\"(map.info.showAnswerRule !== 1 && map.type !== 2 && (map.info.showAnswerRule === 2 && !map.info.passStatus)) || (map.info.showAnswerRule === 2 &&\n              !map.info.passStatus && map.type !== 2) ?'info':'primary'\" @click=\"handleViewAnalysis\">\n            <template v-if=\"map.info.showAnswerRule === 1 || map.type === 2 || (map.info.showAnswerRule === 2 &&\n              map.info.passStatus)\">查看答卷\n            </template>\n            <template v-else-if=\"map.info.showAnswerRule === 2 && !map.info.passStatus\">仅供考试及格人员查看答案</template>\n            <template v-else-if=\"map.info.showAnswerRule === 3\">考试结束后方可查看答案</template>\n            <!--<template v-else>本次考试不可查看答案解析</template>-->\n          </el-button>\n        </div>\n        <el-dialog\n          :append-to-body=\"true\"\n          :before-close=\"handleClose\"\n          :close-on-click-modal=\"false\"\n          :model-value=\"map.dialogVisible\"\n          custom-class=\"record_dialog\"\n          title=\"考试记录\"\n          width=\"600px\"\n        >\n          <div v-loading=\"ctrl.loading\" class=\"record_list\">\n            <div\n              v-for=\"(i, index) in map.recordList\"\n              :key=\"index\"\n              class=\"record_item\"\n            >\n              <p class=\"font16 c_333\">得分：{{ i.userScore }}分</p>\n              <p>\n                <span>答题时长：{{ formatDuring(i.answerTime * 1000) }}</span>\n                <span class=\"border\"></span>\n                <span>总分：{{ i.totalScore }}分</span>\n              </p>\n              <p>提交时间：{{ i.endTime }}</p>\n              <text\n                v-if=\"i.examStatus === 4\"\n                :class=\"[i.passStatus === 1 ? 'pass' : 'unpass']\"\n                class=\"status\"\n              >{{ i.passStatus === 1 ? \"及格\" : \"不及格\" }}\n              </text>\n              <text\n                v-if=\"i.examStatus === 2 || i.examStatus === 3\"\n                class=\"status wait\">待阅卷\n              </text>\n            </div>\n          </div>\n          <template #footer>\n            <el-pagination\n              v-model:currentPage=\"page.pageCurrent\"\n              v-model:pageSize=\"page.pageSize\"\n              :total=\"page.totalCount\"\n              background\n              layout=\"total, prev, pager, next, jumper\"\n              @size-change=\"handleSizeChange\"\n              @current-change=\"handleCurrentChange\"\n            >\n            </el-pagination>\n          </template>\n        </el-dialog>\n        <!--<exam-analysis\n            :info=\"map.info\"\n            v-if=\"map.type === 1 || map.type === 3\"\n          v-show=\"ctrl.showAnswer\"\n          :show-answer=\"ctrl.showAnswer\"\n          :relational-id=\"map.info.relationalId ? map.info.relationalId : ''\"\n          :record-id=\"map.info.recordId ? map.info.recordId : map.recordId\"\n          :show-answer-info=\"map.info.showAnswerInfo\"\n          :only-show-wrong=\"map.onlyShowWrong\"\n          @close=\"ctrl.showAnswer = false\"\n        ></exam-analysis>-->\n        <practice-analysis\n          v-if=\"map.type === 2 || map.type === 4\"\n          v-show=\"ctrl.showAnswer\"\n          :info=\"map.info\"\n          :only-show-wrong=\"map.onlyShowWrong\"\n          :record-id=\"map.info.recordId ? map.info.recordId : map.recordId\"\n          :relational-id=\"map.info.relationalId ? map.info.relationalId : ''\"\n          :show-answer=\"ctrl.showAnswer\"\n          :show-answer-info=\"map.info.showAnswerInfo\"\n          @close=\"handleBack\"\n        ></practice-analysis>\n      </div>\n    </div>\n  </NuxtLayout>\n</template>\n\n<script setup>\nimport {getStore} from \"~/utils/storage\";\nimport {formatDuring} from \"~/utils/index\";\nimport {paperExamInfo, paperExamView, paperRecordPage} from \"~/api/paper\";\nimport {useLayoutStore} from '@/stores/layout';\nimport {nextTick} from \"vue\";\nimport {ElMessage} from \"element-plus\";\nimport cookie from '@/utils/cookies'\n\nconst layoutStore = useLayoutStore();\nconst footerType = computed(() => layoutStore.footerType);\nconst footerLayoutEunm = ref({\n  1: (66 + 150) + 'px',\n  2: (66 + 180) + 'px',\n  3: (66 + 260) + 'px',\n});\nconst minHeight = computed(() => {\n  return `calc(100vh - ${footerLayoutEunm.value[footerType.value]}`\n})\nconst map = reactive({\n  recordId: '',\n  info: {},\n  rankList: [],\n  dialogVisible: false,\n  recordList: [],\n  type: 1,\n  onlyShowWrong: false,\n});\nconst page = reactive({\n  totalCount: 0,\n  pageCurrent: 1,\n  pageSize: 30,\n});\nconst ctrl = reactive({\n  loading: false,\n  rank: false,\n  showAnswer: false\n});\nconst route = useRoute();\nconst router = useRouter();\nconst handleViewAnalysis = () => {\n  if (map.info.showAnswerRule === 3 && new Date(map.info.endTime).getTime() > new Date().getTime()) {\n    ElMessage.error('考试结束才能查看答案')\n    return false\n  }\n\n  if (map.type == 1 || map.type == 3) {\n    router.push({\n      path: '/exam/analysis',\n      query: {\n        showAnswer: ctrl.showAnswer,\n        relationalId: map.info.relationalId || '',\n        recordId: map.info.recordId || map.recordId,\n        showAnswerInfo: map.info.showAnswerInfo,\n        onlyShowWrong: map.onlyShowWrong\n      }\n    })\n  } else {\n    ctrl.showAnswer = true\n  }\n}\nconst handleBack = () => {\n  router.go(-1);\n};\nconst handReplace = () => {\n  if (map.type === 1) {\n    let obj = JSON.parse(getStore('lastExamQuery') || '{}')\n    obj.isExamination = false\n    router.replace({\n      path: '/exam/startExam',\n      query: obj\n    })\n  }\n  if (map.type === 3) {\n    const d = {\n      paperId: map.info.paperId,\n      relationalId: map.info.relationalId,\n      examType: map.examType\n    }\n    paperExamInfo(d)\n      .then((res) => {\n        router.replace({\n          path: '/exam/startExam',\n          query: {\n            isExamination: false,\n            controlShow: true,\n            examType: map.examType,\n            paperId: map.info.paperId,\n            relationalId: map.info.relationalId,\n            reload: 1\n          }\n        })\n      })\n  }\n  if (map.type === 2) {\n    let obj = JSON.parse(getStore('lastPracticeQuery') || '{}')\n    router.replace({\n      path: '/practice/startPractice',\n      query: obj\n    })\n  }\n}\nconst getNextObj = (list, id) => {\n  let obj = {}\n  list.forEach((el, index) => {\n    if (el.id === id && list[index + 1]) {\n      obj = list[index + 1]\n    }\n  })\n  return obj\n}\nconst viewWrong = () => {\n  map.onlyShowWrong = true;\n  ctrl.showAnswer = true;\n};\nconst viewExamRecord = () => {\n  map.dialogVisible = true;\n  ctrl.loading = true;\n  const d = {\n    pageCurrent: page.pageCurrent,\n    pageSize: page.pageSize,\n    paperId: map.info.paperId,\n    relationalId: map.info.relationalId,\n    relevanceType: 1 // 1:课程关联、2:专题关联\n  };\n  if (map.info.chapterId && map.info.periodId) {\n    d.chapterId = map.info.chapterId\n    d.periodId = map.info.periodId\n    d.relevanceType = 2\n  }\n  paperRecordPage(d).then((res) => {\n    page.pageCurrent = res.pageCurrent;\n    page.totalPage = res.totalPage;\n    page.totalCount = res.totalCount;\n    map.recordList = res.list;\n    ctrl.loading = false;\n  });\n};\nconst handleCurrentChange = (v) => {\n  page.pageCurrent = v;\n  viewExamRecord();\n};\nconst handleSizeChange = (v) => {\n  page.pageSize = v;\n  viewExamRecord();\n};\nconst handleClose = () => {\n  map.dialogVisible = false;\n};\nlet cookieData = cookie.getShop()\nuseHead({\n  title: (parseInt(route.query.type) === 1 || parseInt(route.query.type) === 3 ? \"考试结果-\" : \"练习结果-\") + cookieData.shopName\n});\nonMounted(() => {\n  map.type = parseInt(route.query.type);\n  map.examType = parseInt(route.query.examType || 0)\n  map.recordId = route.query.recordId;\n  if (route.query.practiceType) {\n    map.practiceType = parseInt(route.query.practiceType)\n  }\n  if (route.query.analysis) {\n    map.info.id = route.query.practiceId\n    map.info.practiceType = map.practiceType\n    map.info.titleId = route.query.titleId || ''\n    nextTick(() => {\n      ctrl.showAnswer = true\n    })\n\n    return\n  }\n  if (map.type === 1) {\n    // console.log('exam')\n    map.info = JSON.parse(getStore(\"examInfoAndResult\"));\n  }\n  if (map.type === 2) {\n    // console.log('practice')\n    map.info = JSON.parse(getStore(\"practiceInfoAndResult\"));\n  }\n  if (map.type === 3) {\n    paperExamView({recordId: map.recordId}).then(res => {\n      map.info = res\n    })\n  }\n  // console.log(\"map.info\", map.info);\n});\n</script>\n\n<style lang=\"scss\">\n.record_dialog {\n  .el-dialog__header {\n    border-bottom: 1px solid #ebeef5;\n    margin-right: 0;\n  }\n\n  .el-dialog__body {\n    padding: 0 30px 20px 30px;\n  }\n\n  .el-dialog__footer {\n    text-align: center;\n  }\n}\n</style>\n<style lang=\"scss\" scoped>\n.rank_box {\n  width: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 100%;\n  z-index: 2;\n  border-radius: 6px;\n  background-color: #FFFFFF;\n  overflow-y: auto;\n\n  .rank_title {\n    border-radius: 6px 6px 0 0;\n    background: linear-gradient(90deg, #F2994A 0%, #F2D74A 100%);\n    width: 100%;\n    height: 89px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-style: normal;\n    font-weight: 400;\n    font-size: 20px;\n    color: #FFFFFF;\n  }\n\n  .rank_tip {\n    font-style: normal;\n    font-weight: 400;\n    font-size: 14px;\n    color: #999999;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 20px 24px;\n  }\n}\n\n.exam_result_box {\n  width: 650px;\n  margin: auto;\n  background: #ffffff;\n  border-radius: 6px;\n  padding: 30px 50px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  position: relative;\n\n  .flex_rank {\n    cursor: pointer;\n    position: absolute;\n    right: 0;\n    background: #F2994A;\n    border-radius: 8px 0 0 8px;\n    width: 30px;\n    height: 110px;\n    padding: 10px;\n    gap: 10px;\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n    align-items: center;\n    color: #FFFFFF;\n    font-style: normal;\n    font-weight: 400;\n    font-size: 14px;\n    top: 255px;\n  }\n\n  img {\n    width: 60px;\n    height: 60px;\n    margin-bottom: 17px;\n  }\n\n  .score {\n    color: #f61818;\n    font-style: normal;\n    font-weight: 400;\n    font-size: 60px;\n  }\n\n  .red_rate {\n    font-size: 36px;\n    color: #f61818;\n  }\n\n  .tip {\n    font-style: normal;\n    font-weight: 400;\n    font-size: 14px;\n    color: #F2994A;\n  }\n\n  .counts {\n    height: 81px;\n    background: #f6f8fb;\n    border-radius: 16px;\n    display: flex;\n    align-items: center;\n\n    .border {\n      width: 1px;\n      height: 20px;\n      background: #ebeef5;\n    }\n\n    .count {\n      text-align: center;\n      width: 111px;\n    }\n  }\n\n  .divide {\n    width: 20px;\n    height: 2px;\n    background: #333;\n    margin: 45px 0;\n  }\n\n  .btns {\n    display: flex;\n    justify-content: space-between;\n    column-gap: 15px;\n\n    div {\n      width: 160px;\n      height: 40px;\n      line-height: 40px;\n      text-align: center;\n      background: #f6f8fb;\n      border-radius: 5px;\n      color: #2256f6;\n    }\n  }\n\n  .view_answer {\n    width: 335px;\n    height: 40px;\n    margin-top: 30px;\n    line-height: 40px;\n    color: #fff;\n    background: #58b85c;\n    border-radius: 5px;\n    text-align: center;\n  }\n}\n\n.record_list {\n  height: 380px;\n  overflow-y: auto;\n}\n\n.record_item {\n  position: relative;\n  border-bottom: 1px solid #ebeef5;\n\n  .border {\n    background: #becadb;\n    display: inline-block;\n    height: 10px;\n    margin: 0 10px;\n    width: 1px;\n  }\n\n  p {\n    &:nth-child(1) {\n      margin-top: 20px;\n    }\n\n    &:nth-child(2) {\n      color: #999;\n      margin-top: 16px;\n    }\n\n    &:nth-child(3) {\n      color: #999;\n      margin-top: 10px;\n      margin-bottom: 20px;\n    }\n  }\n}\n\n.status {\n  position: absolute;\n  right: 5px;\n  top: 0;\n}\n\n.pass {\n  color: #58b85c;\n}\n\n.unpass {\n  color: #f61818;\n}\n\n.wait {\n  color: #ff9d00;\n}\n\n.exam_result {\n  width: 100%;\n  height: 100%;\n  background: url(\"~/assets/images/rusult.png\") no-repeat;\n  background-size: cover;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding-top: 20px;\n  padding-bottom: 20px;\n}\n\n.c_red {\n  color: #F61818;\n}\n\n.box_practice {\n  margin-top: 35px;\n  background: rgba(242, 243, 245, 0.5);\n  border-radius: 5px;\n  display: flex;\n  flex-wrap: wrap;\n  max-width: 570px;\n  padding: 64px 20px;\n}\n\n.box_counts {\n  margin-top: 20px;\n  padding: 30px 20px;\n  background: rgba(242, 243, 245, 0.5);\n  border-radius: 5px;\n  display: flex;\n  flex-wrap: wrap;\n  max-width: 570px;\n}\n\n.box_counts_item {\n  display: flex;\n  flex-direction: column;\n  width: calc((510px - 16px - 16px - 16px) / 4);\n  height: 48px;\n  justify-content: center;\n  align-items: center;\n}\n\n.box_counts_item + .box_counts_item {\n  margin-left: 16px;\n}\n\n.box_counts_item:nth-child(-n+4) {\n  margin-bottom: 20px;\n}\n\n.box_counts_item:nth-child(5) {\n  margin-left: 0;\n}\n\n.box_item_content {\n  font-style: normal;\n  font-weight: 400;\n  font-size: 18px;\n  color: #333333;\n}\n\n.box_item_title {\n  font-style: normal;\n  font-weight: 400;\n  font-size: 14px;\n  color: #999999;\n}\n\n.box_btn_list {\n  margin-top: 20px;\n  width: 570px;\n\n  .el-button {\n    width: 100%;\n    height: 42px;\n    font-size: 14px;\n  }\n\n  .el-button + .el-button {\n    margin-left: 0;\n    margin-top: 15px;\n  }\n}\n</style>\n"],"names":["layoutStore","useLayoutStore","footerType","computed","footerLayoutEunm","ref","minHeight","value","map","reactive","recordId","info","rankList","dialogVisible","recordList","type","onlyShowWrong","page","totalCount","pageCurrent","pageSize","ctrl","loading","rank","showAnswer","route","useRoute","router","useRouter","handleViewAnalysis","showAnswerRule","Date","endTime","getTime","ElMessage","error","push","path","query","relationalId","showAnswerInfo","handleBack","go","handReplace","obj","JSON","parse","getStore","isExamination","replace","d","paperId","examType","paperExamInfo","then","res","controlShow","reload","viewExamRecord","relevanceType","chapterId","periodId","paperRecordPage","totalPage","list","handleCurrentChange","v","handleSizeChange","handleClose","cookieData","cookie","getShop","useHead","title","parseInt","shopName","onMounted","practiceType","analysis","id","practiceId","titleId","nextTick","paperExamView"],"mappings":"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"}