From f0c2c003738addcc452c4e7a001481f245056dec Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期五, 28 六月 2024 12:00:42 +0800
Subject: [PATCH] 题库优化

---
 src/views/readerPages/webHome.vue          |   46 +++++++++++++++++++----
 src/views/examination/components/list.vue  |    6 +-
 src/views/examination/components/sheet.vue |    6 +-
 src/views/examination/index.vue            |   60 +++++++++++++++---------------
 4 files changed, 74 insertions(+), 44 deletions(-)

diff --git a/src/views/examination/components/list.vue b/src/views/examination/components/list.vue
index 216bf7a..28c33b8 100644
--- a/src/views/examination/components/list.vue
+++ b/src/views/examination/components/list.vue
@@ -339,7 +339,7 @@
   // if (props.collectList) presentId.value = props.collectList[0]
 })
 // 鏁扮粍杞负瀛楃涓叉柟娉�
-const arrayToString = (data) => {
+const arrayToString = (data:any) => {
   // 妫�鏌ユ槸鍚︿负鏁扮粍
   if (Array.isArray(data)) {
     // 浣跨敤 join 鏂规硶灏嗘暟缁勮浆鎹负瀛楃涓诧紝榛樿浣跨敤閫楀彿鍒嗛殧
@@ -349,7 +349,7 @@
     return data.replace(/<[^>]*>/g, '')
   }
 }
-const isHaveAnswer = (data) => {
+const isHaveAnswer = (data:any) => {
   if (typeof data == 'string') {
     data = data
       .replace(/<[^>]*>/g, '')
@@ -370,7 +370,7 @@
   }
 }
 // 鏀惰棌鎸夐挳
-const handleCollect = (num,number) => {
+const handleCollect = (num:number,number:number) => {
   emits('setCollect',num,number)
 }
 // 鍗曢�夋杈撳叆
diff --git a/src/views/examination/components/sheet.vue b/src/views/examination/components/sheet.vue
index 3af01de..32412d7 100644
--- a/src/views/examination/components/sheet.vue
+++ b/src/views/examination/components/sheet.vue
@@ -102,8 +102,8 @@
 import { defineProps, watch, ref, computed, defineEmits, onMounted } from 'vue'
 const props = defineProps<{
   cardList: any
-  submitStatus: boolean
-  answerType: string,
+  submitStatus: Boolean
+  answerType: String,
   
 }>()
 
@@ -113,7 +113,7 @@
   document.getElementById(`listItem-${id}`)!.scrollIntoView()
 }
 // 鍒ゆ柇鏄惁杈撳叆绛旀
-const isHaveAnswer = (data) => {
+const isHaveAnswer = (data:any) => {
   if (typeof data == 'string') {
     data = data
       .replace(/<[^>]*>/g, '')
diff --git a/src/views/examination/index.vue b/src/views/examination/index.vue
index 58082f3..573ab21 100644
--- a/src/views/examination/index.vue
+++ b/src/views/examination/index.vue
@@ -349,24 +349,24 @@
       domain: 'collectData',
       keys: [props.activeBook.bookId]
     })
-    .then((res) => {
+    .then((res:any) => {
       console.log('鏀惰棌鏁版嵁', res)
       try {
         const collect = JSON.parse(res[0].value)
         if (collect.length) {
-          examination.collectList = collect.find((citem) => citem.type == 'bits').collectList
+          examination.collectList = collect.find((citem:any) => citem.type == 'bits').collectList
           examination.allCollect[0].collectList = collect.find(
-            (citem) => citem.type == 'bits'
+            (citem:any) => citem.type == 'bits'
           ).collectList
           examination.allCollect[1].collectList = collect.find(
-            (citem) => citem.type == 'json'
+            (citem:any) => citem.type == 'json'
           ).collectList
         }
       } catch (error) {
         console.log('鏆傛棤鏁版嵁')
       }
       if (props.type == 'option') {
-        getAnswerInfo(async (res) => {
+        getAnswerInfo(async (res:any) => {
           if (res.length) {
             // 鏈夎褰曪紝涓嶈兘绛旈锛岀姸鎬佽涓哄凡鎻愪氦
             examination.submitStatus = true
@@ -921,14 +921,14 @@
       domain: 'errorData',
       keys: [props.activeBook.bookId]
     })
-    .then(async (res) => {
+    .then(async (res:any) => {
       try {
         const error = JSON.parse(res[0].value)
         if (error.length) {
           console.log('鏈夊悧', error)
-          examination.errorList = error.find((citem) => citem.type == 'bits').errorList
-          examination.allError[0].errorList = error.find((citem) => citem.type == 'bits').errorList
-          examination.allError[1].errorList = error.find((citem) => citem.type == 'json').errorList
+          examination.errorList = error.find((citem:any) => citem.type == 'bits').errorList
+          examination.allError[0].errorList = error.find((citem:any) => citem.type == 'bits').errorList
+          examination.allError[1].errorList = error.find((citem:any) => citem.type == 'json').errorList
         }
       } catch (error) {}
       if (examination.allError[0].errorList || examination.allError[1].errorList) {
@@ -960,7 +960,7 @@
   }
   // 寮�濮嬭姹�
   let oldData = null
-  let oldList = []
+  let oldList:any = []
   let cardList = [
     {
       catalogName: '鍗曢�夐',
@@ -983,11 +983,11 @@
       infoList: []
     }
   ]
-  let singleChoiceArr = [] // 鍗曢��
-  let judgeArr = [] // 鍒ゆ柇
-  let shortArr = [] // 绠�绛�
-  let multipleChoiceArr = [] // 澶氶��
-  let completionArr = [] // 濉┖
+  let singleChoiceArr:any = [] // 鍗曢��
+  let judgeArr:any = [] // 鍒ゆ柇
+  let shortArr:any = [] // 绠�绛�
+  let multipleChoiceArr:any = [] // 澶氶��
+  let completionArr:any = [] // 濉┖
   // 11
   for (let qindex = 0; qindex < examination.errorList.length; qindex++) {
     const qitem = examination.errorList[qindex]
@@ -1013,10 +1013,10 @@
     }
     const res = await MG.store.getProductDetail(query)
     if (!res.datas) return false
-    res.datas.cmsDatas[0].datas.forEach((item, index) => {
+    res.datas.cmsDatas[0].datas.forEach((item:any, index:number) => {
       let oldObj = {}
       if (oldList) {
-        oldObj = oldList.find((item) => item.id == qitem)
+        oldObj = oldList.find((item:any) => item.id == qitem)
       }
       const questionObj = {
         number: index + 1, // 棰樺彿
@@ -1081,7 +1081,7 @@
         questionObj.stem.stemImage = getPublicImage(questionObj.stem.stemImage, 150)
       }
       if (questionObj.optionStyle == 'Image' || questionObj.optionStyle == 'TxtAndImage') {
-        questionObj.option.forEach((optionItem) => {
+        questionObj.option.forEach((optionItem:any) => {
           if (optionItem.img) optionItem.img = getPublicImage(optionItem.img, 150)
         })
       }
@@ -1103,7 +1103,7 @@
           questionObj.questionType == 'judge' ||
           questionObj.questionType == 'multipleChoice')
       ) {
-        questionObj.option.forEach((item) => {
+        questionObj.option.forEach((item:any) => {
           if (item.txt)
             item.txt = item.txt
               .replace(/\<img/gi, '<img class="option-rich-img"')
@@ -1286,7 +1286,7 @@
         }
       ]
     })
-    .then((res) => {
+    .then((res:any) => {
       console.log('閿欓宸蹭繚瀛�', examination.allError)
     })
   if (props.type == 'option') {
@@ -1331,7 +1331,7 @@
   setUserAnswer(arr)
 }
 // 鏈彁浜ら��鍑虹瓟棰橈紝淇濆瓨鐢ㄦ埛绛旀
-const setUserAnswer = (data) => {
+const setUserAnswer = (data:any) => {
   MG.identity
     .setUserKey({
       setKeyRequests: [
@@ -1342,7 +1342,7 @@
         }
       ]
     })
-    .then((res) => {
+    .then((res:any) => {
       console.log('鎻愪氦鐢ㄦ埛绛旈鏁版嵁鎴愬姛')
     })
 }
@@ -1354,7 +1354,7 @@
       domain: 'beforeAnswerData',
       keys: [props.info.id]
     })
-    .then((res) => {
+    .then((res:any) => {
       if(res) {
         data = JSON.parse(res[0].value)
       }
@@ -1362,13 +1362,13 @@
     return data
  }
 // 鑾峰彇鐢ㄦ埛鏃х瓟棰樻暟鎹�(鎻愪氦鍚�)
-const getAnswerInfo = (callback) => {
+const getAnswerInfo = (callback:any) => {
   MG.identity
     .getUserKey({
       domain: 'answerData',
       keys: [props.info.id]
     })
-    .then((res) => {
+    .then((res:any) => {
       if (callback) callback(res)
     })
 }
@@ -1384,18 +1384,18 @@
         }
       ]
     })
-    .then((res) => {
+    .then((res:any) => {
       console.log('鎻愪氦鐢ㄦ埛绛旈鏁版嵁鎴愬姛')
     })
 }
 // 鍒犻櫎鐢ㄦ埛绛旈鏁版嵁
-const deleteAnswerInfo = (callback) => {
+const deleteAnswerInfo = (callback:any) => {
   MG.identity
     .delUserKey({
       domain: 'answerData',
       keys: [props.info.id]
     })
-    .then((res) => {
+    .then((res:any) => {
       if (callback) callback()
     })
 }
@@ -1410,7 +1410,7 @@
         }
       ]
     })
-    .then((res) => {
+    .then((res:any) => {
       console.log('鏀惰棌/鍙栨秷鎴愬姛')
     })
 }
@@ -1425,7 +1425,7 @@
         }
       ]
     })
-    .then((res) => {
+    .then((res:any) => {
       console.log('閿欓宸蹭繚瀛�', examination.allError)
     })
 }
diff --git a/src/views/readerPages/webHome.vue b/src/views/readerPages/webHome.vue
index 34bd1d5..483570f 100644
--- a/src/views/readerPages/webHome.vue
+++ b/src/views/readerPages/webHome.vue
@@ -141,7 +141,7 @@
               <div>闄勫姞棰�</div>
               <div :class="exercisesType == 'additional' ? 'text' : 'line'"></div>
             </div>
-            <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('AFC1A288') > -1" />
+            <!-- <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('AFC1A288') > -1" />
             <div
               class="tabItem hover"
               @click="selectExercisesType('wrong')"
@@ -149,8 +149,8 @@
             >
               <div>閿欓鏈�</div>
               <div :class="exercisesType == 'wrong' ? 'text' : 'line'"></div>
-            </div>
-            <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('A434F2C0') > -1" />
+            </div> -->
+            <!-- <hr class="hr" v-if="bookConfig.textbookComponents.indexOf('A434F2C0') > -1" />
             <div
               class="tabItem hover"
               @click="selectExercisesType('collection')"
@@ -158,7 +158,7 @@
             >
               <div>鏀惰棌澶�</div>
               <div :class="exercisesType == 'collection' ? 'text' : 'line'"></div>
-            </div>
+            </div> -->
           </div>
         </div>
         <!-- 鐩綍 -->
@@ -535,6 +535,11 @@
             </div>
           </div>
         </div>
+        <!-- 棰樺簱搴曢儴鏀惰棌澶瑰拰閿欓闆� -->
+        <ul class="question-bottom" v-if="activeMenu == '棰樺簱'">
+            <li @click="selectExercisesType('collection')">鏀惰棌澶�</li>
+            <li @click="selectExercisesType('wrong')">閿欓鏈�</li>
+          </ul>
         <!-- 鑿滃崟鍐呭鏀惰捣 -->
         <div class="menuStateBox" v-if="menuState.open">
           <svg
@@ -2340,18 +2345,19 @@
 //閿欓鏈�
 const wrongQuestionVisble = ref(false)
 const selectExercisesType = (type) => {
-  exercisesType.value = type
-  searchText.value = ''
+
   if (type == 'exercises') {
     getExercisesList()
+      exercisesType.value = type
+      searchText.value = ''
   } else if (type == 'additional') {
     getAdditionalList()
+      exercisesType.value = type
+      searchText.value = ''
   } else if (type == 'wrong') {
     openExaminationDialog(true, {}, 'errorQuestion')
-    questionList.value = []
   } else {
     openExaminationDialog(true, {}, 'collectQuestion')
-    questionList.value = []
   }
 }
 // 棰樺垪琛ㄧ偣鍑�
@@ -4112,6 +4118,7 @@
       }
     }
     .menuContent {
+      // position: relative;
       width: 300px;
       flex-shrink: 0;
       height: calc(100vh - 48px);
@@ -4532,6 +4539,29 @@
         height: calc(100% - 60px);
         overflow-y: auto;
       }
+      .questionList {
+        height:83%
+      }
+      .question-bottom {
+        position: absolute;
+        bottom: 0;
+        display: flex;
+        justify-content: space-evenly;
+        width:300px;
+        padding:20px 0;
+        background-color:#fff;
+        li {
+          cursor: pointer;
+          width: 65px;
+          height:65px;
+          border:1px solid #cfcfcf;
+          border-radius:10px;
+          background-color:#f9f9f9;
+          display:flex;
+          justify-content: center;
+          align-items: center;
+        }
+      }
     }
     .menuStateBox {
       width: 25px;

--
Gitblit v1.9.1