From cc232247648ea4cd6b4d3909bb71caea61e388e1 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期三, 15 五月 2024 23:10:06 +0800
Subject: [PATCH] 第二本书

---
 src/assets/methods/examination.js |  361 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 214 insertions(+), 147 deletions(-)

diff --git a/src/assets/methods/examination.js b/src/assets/methods/examination.js
index 132c0ed..e8a7a43 100644
--- a/src/assets/methods/examination.js
+++ b/src/assets/methods/examination.js
@@ -1,152 +1,219 @@
-import {activeBook} from '@/assets/js/config'
-import MG from '@/assets/js/middleGround/WebMiddleGroundApi'
- const getQuestionList = (rootCmsItemId,questionList) => {
+import { activeBook } from "@/assets/js/config";
+import MG from "@/assets/js/middleGround/WebMiddleGroundApi";
+import getPublicImage from "@/assets/js/middleGround/tool";
+const getQuestionList = (questionList) => {
   let cardList = [
-    
+    {
+      catalogName: "鍗曢�夐",
+      infoList: [],
+    },
+    {
+      catalogName: "鍒ゆ柇棰�",
+      infoList: [],
+    },
+    {
+      catalogName: "澶氶�夐",
+      infoList: [],
+    },
+    {
+      catalogName: "濉┖棰�",
+      infoList: [],
+    },
+    {
+      catalogName: "绠�绛旈",
+      infoList: [],
+    },
   ];
-  let query = {
-    path: '*',
-    cmsPath: rootCmsItemId,
-    cmsType: '*',
-    productId: activeBook.bookId,
-    queryType: '*',
-    itemIds: questionList.map((item) => item + ''),
-    itemFields: {
-      Embedded_QuestionBank_Stem: [],
-      Embedded_QuestionBank_AnalysisCon: [],
-      Embedded_QuestionBank_Answer: [],
-      Embedded_QuestionBank_Option: [],
-      Embedded_QuestionBank_QuestionType: [],
-      Embedded_QuestionBank_StemStyle: [],
-      Embedded_QuestionBank_OptionStyle: [],
-      Embedded_QuestionBank_KnowledgePoint: [],
-      Embedded_QuestionBank_Difficulty: []
+  let singleChoiceArr = []; // 鍗曢��
+  let judgeArr = []; // 鍒ゆ柇
+  let shortArr = []; // 绠�绛�
+  let multipleChoiceArr = []; // 澶氶��
+  let completionArr = []; // 濉┖
+  for (let qindex = 0; qindex < questionList.length; qindex++) {
+    const qitem = questionList[qindex];
+    let query = {
+      path: "*",
+      cmsPath: activeBook.rootCmsItemId,
+      cmsType: "*",
+      productId: activeBook.bookId,
+      queryType: "*",
+      itemIds: qitem + "",
+      itemFields: {
+        Embedded_QuestionBank_Stem: [],
+        Embedded_QuestionBank_AnalysisCon: [],
+        Embedded_QuestionBank_Answer: [],
+        Embedded_QuestionBank_Option: [],
+        Embedded_QuestionBank_QuestionType: [],
+        Embedded_QuestionBank_StemStyle: [],
+        Embedded_QuestionBank_OptionStyle: [],
+        Embedded_QuestionBank_KnowledgePoint: [],
+        Embedded_QuestionBank_Difficulty: [],
+      },
+    };
+    MG.store.getProductDetail(query).then( (res) => {
+       res.datas.cmsDatas[0].datas.forEach((item, index) => {
+        const questionObj = {
+          number: index + 1, // 棰樺彿
+          id: item.id,
+          stem:
+            item.Embedded_QuestionBank_QuestionType == "completion"
+              ? JSON.parse(item.Embedded_QuestionBank_Stem)
+                  .stemTxt.replaceAll("<vacancy>", ",input,")
+                  .split(",")
+              : JSON.parse(item.Embedded_QuestionBank_Stem), // 棰樺共
+          answer: item.Embedded_QuestionBank_Answer, // 绛旀
+          option: item.Embedded_QuestionBank_Option
+            ? JSON.parse(item.Embedded_QuestionBank_Option)
+            : "", // 閫夋嫨棰橀�夐」
+          analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 瑙f瀽
+          questionType: item.Embedded_QuestionBank_QuestionType, // 棰樺瀷
+          optionStyle: item.Embedded_QuestionBank_OptionStyle, // 閫夐」鏄剧ず绫诲瀷
+          stemStyle: item.Embedded_QuestionBank_StemStyle, // 棰樺共鏄剧ず绫诲瀷
+          difficulty: item.Embedded_QuestionBank_Difficulty
+            ? 4 - item.Embedded_QuestionBank_Difficulty
+            : 0, // 闅惧害绛夌骇
+          userAnswer:
+            item.Embedded_QuestionBank_QuestionType == "completion" ||
+            item.Embedded_QuestionBank_QuestionType == "multipleChoice"
+              ? []
+              : "",
+          isSubmit: false, // 鏌ョ湅瑙f瀽
+          isRight: null, // 鏄惁姝g‘
+          isComplete: false,
+          isCollect: true,
+          isUnfold: "",
+        };
+        // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲JSON鏍煎紡
+        if (
+          questionObj.questionType == "completion" ||
+          questionObj.questionType == "multipleChoice"
+        ) {
+          try {
+            questionObj.answer = JSON.parse(questionObj.answer).toString();
+          } catch (error) {
+            questionObj.answer = item.Embedded_QuestionBank_Answer;
+          }
+        }
+        // 濉┖棰樻敼閫�
+        if (questionObj.questionType == "completion") {
+          let index = 0;
+          for (let i = 0; i < questionObj.stem.length; i++) {
+            const item = questionObj.stem[i];
+            if (item == "input") {
+              questionObj.stem[i] = {
+                num: index,
+                data: "input",
+              };
+              questionObj.userAnswer[index] = "";
+              index++;
+            }
+          }
+        }
+        // 鑾峰彇鍥剧墖
+        if (
+          questionObj.stemStyle == "Image" ||
+          questionObj.stemStyle == "TxtAndImage"
+        ) {
+          questionObj.stem.stemImage = getPublicImage(
+            questionObj.stem.stemImage,
+            150
+          );
+        }
+        if (
+          questionObj.optionStyle == "Image" ||
+          questionObj.optionStyle == "TxtAndImage"
+        ) {
+          questionObj.option.forEach((optionItem) => {
+            if (optionItem.img)
+              optionItem.img = getPublicImage(optionItem.img, 150);
+          });
+        }
+        // 棰樺共瀵屾枃鏈鐞�
+        if (questionObj.stemStyle == "RichText") {
+          // questionObj.option.txt = ''
+          questionObj.stem.stemTxt = questionObj.stem.stemTxt
+            .replace(
+              /\<img/gi,
+              '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" '
+            )
+            .replace(/\<p/gi, '<p class="stem-rich-p"')
+            .replace("../file", app.config.requestCtx + "/file");
+        }
+        // 閫夐」瀵屾枃鏈鐞�
+        if (
+          questionObj.optionStyle == "RichText" &&
+          (questionObj.questionType == "singleChoice" ||
+            questionObj.questionType == "judge" ||
+            questionObj.questionType == "multipleChoice")
+        ) {
+          questionObj.option.forEach((item) => {
+            if (item.txt)
+              item.txt = item.txt
+                .replace(/\<img/gi, '<img class="option-rich-img"')
+                .replace(/\<p/gi, '<p class="stem-rich-p"')
+                .replace("../file", app.config.requestCtx + "/file");
+          });
+        }
+        // 瑙f瀽瀵屾枃鏈鐞�
+        if (
+          questionObj.analysisCon &&
+          typeof questionObj.analysisCon == "string"
+        ) {
+          questionObj.analysisCon = questionObj.analysisCon.replace(
+            /\<img/gi,
+            '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" '
+          );
+        }
+        // 鍚姏棰樹慨鏀�
+        // if (questionObj.questionType == 'singleChoice') {
+        //   const src = this.extractSourceSrc(questionObj.stem.stemTxt)
+        //   if (src) {
+        //     questionObj.src = src
+        //     questionObj.stem.stemTxt = this.removeVideoAndAudioTags(questionObj.stem.stemTxt)
+        //   }
+        // }
+        if (item.Embedded_QuestionBank_QuestionType == "judge") {
+          questionObj.type = "鍒ゆ柇棰�";
+          judgeArr.push(questionObj);
+        } else if (item.Embedded_QuestionBank_QuestionType == "singleChoice") {
+          questionObj.type = "鍗曢�夐";
+          singleChoiceArr.push(questionObj);
+        } else if (
+          item.Embedded_QuestionBank_QuestionType == "multipleChoice"
+        ) {
+          questionObj.type = "澶氶�夐";
+          multipleChoiceArr.push(questionObj);
+        } else if (item.Embedded_QuestionBank_QuestionType == "completion") {
+          questionObj.type = "濉┖棰�";
+          completionArr.push(questionObj);
+        } else if (item.Embedded_QuestionBank_QuestionType == "shortAnswer") {
+          questionObj.type = "绠�绛旈";
+          shortArr.push(questionObj);
+        }
+      });
+    });
+  }
+  cardList[0].infoList = singleChoiceArr
+  cardList[1].infoList = judgeArr
+  cardList[2].infoList = multipleChoiceArr
+  cardList[3].infoList = completionArr
+  cardList[4].infoList = shortArr
+  for (let index = 0; index < cardList.length; index++) {
+    const item = cardList[index];
+    for (let cindex = 0; cindex < item.infoList.length; cindex++) {
+      const citem = item.infoList[cindex];
+      citem.number = cindex + 1;
     }
   }
-  MG.store.getProductDetail(query).then((res) => {
-    console.log('棰樼洰鍒楄〃',res);
-    // res.datas.cmsDatas[0].datas.forEach((item, index) => {
-    //   let oldObj = "";
-    //   if (oldList)
-    //     oldObj = oldList.find((oldItem) => oldItem.id == item.id);
-    //   let questionObj = {
-    //     // num: index, // 棰樺彿
-    //     id: item.id,
-    //     type: pathitem.name,
-    //     stem:
-    //       item.Embedded_QuestionBank_QuestionType == "completion"
-    //         ? JSON.parse(item.Embedded_QuestionBank_Stem)
-    //             .stemTxt.replaceAll("<vacancy>", ",input,")
-    //             .split(",")
-    //         : JSON.parse(item.Embedded_QuestionBank_Stem), // 棰樺共
-    //     answer: item.Embedded_QuestionBank_Answer, // 绛旀
-    //     option: item.Embedded_QuestionBank_Option
-    //       ? JSON.parse(item.Embedded_QuestionBank_Option)
-    //       : "", // 閫夋嫨棰橀�夐」
-    //     analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 瑙f瀽
-    //     questionType: item.Embedded_QuestionBank_QuestionType, // 棰樺瀷
-    //     optionStyle: item.Embedded_QuestionBank_OptionStyle, // 閫夐」鏄剧ず绫诲瀷
-    //     stemStyle: item.Embedded_QuestionBank_StemStyle, // 棰樺共鏄剧ず绫诲瀷
-    //     difficulty: item.Embedded_QuestionBank_Difficulty
-    //       ? 4 - item.Embedded_QuestionBank_Difficulty
-    //       : 0, // 闅惧害绛夌骇
-    //     userAnswer: oldObj
-    //       ? oldObj.userAnswer
-    //       : item.Embedded_QuestionBank_QuestionType == "completion" ||
-    //         item.Embedded_QuestionBank_QuestionType == "multipleChoice"
-    //       ? []
-    //       : "",
-    //     isUserAnswer: oldObj
-    //       ? this.isHaveAnswer(oldObj.userAnswer)
-    //       : false,
-    //     isRight: oldObj ? oldObj.isRight : null,
-    //     isComplete: oldObj ? oldObj.isComplete : false,
-    //     isCollect: false,
-    //     isUnfold: "", // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮�
-    //   };
-    //   // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲JSON鏍煎紡
-    //   if (
-    //     questionObj.questionType == "completion" ||
-    //     questionObj.questionType == "multipleChoice"
-    //   ) {
-    //     try {
-    //       questionObj.answer = JSON.parse(questionObj.answer).toString();
-    //     } catch (error) {
-    //       questionObj.answer = item.Embedded_QuestionBank_Answer;
-    //     }
-    //   }
-    //   // 濉┖棰樻敼閫�
-    //   if (questionObj.questionType == "completion") {
-    //     let index = 0;
-    //     for (let i = 0; i < questionObj.stem.length; i++) {
-    //       const item = questionObj.stem[i];
-    //       if (item == "input") {
-    //         questionObj.stem[i] = {
-    //           num: index,
-    //           data: "input",
-    //         };
-    //         if (!oldObj) questionObj.userAnswer[index] = "";
-    //         index++;
-    //       }
-    //     }
-    //   }
-    //   // 棰樺共瀵屾枃鏈鐞�
-    //   if (questionObj.stemStyle == "RichText") {
-    //     // questionObj.option.txt = ''
-    //     questionObj.stem.stemTxt = questionObj.stem.stemTxt
-    //       .replace(
-    //         /\<img/gi,
-    //         '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" '
-    //       )
-    //       .replace(/\<p/gi, '<p class="stem-rich-p"')
-    //       .replace("../file", app.config.requestCtx + "/file");
-    //   }
-    //   // 閫夐」瀵屾枃鏈鐞�
-    //   if (
-    //     questionObj.optionStyle == "RichText" &&
-    //     (questionObj.questionType == "singleChoice" ||
-    //       questionObj.questionType == "judge" ||
-    //       questionObj.questionType == "multipleChoice")
-    //   ) {
-    //     questionObj.option.forEach((item) => {
-    //       if (item.txt)
-    //         item.txt = item.txt
-    //           .replace(/\<img/gi, '<img class="option-rich-img"')
-    //           .replace(/\<p/gi, '<p class="stem-rich-p"')
-    //           .replace("../file", app.config.requestCtx + "/file");
-    //     });
-    //   }
-    //   // 瑙f瀽瀵屾枃鏈鐞�
-    //   if (
-    //     questionObj.analysisCon &&
-    //     typeof questionObj.analysisCon == "string"
-    //   ) {
-    //     questionObj.analysisCon = questionObj.analysisCon.replace(
-    //       /\<img/gi,
-    //       '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" '
-    //     );
-    //   }
-    //   if (
-    //     questionObj.stemStyle == "Image" ||
-    //     questionObj.stemStyle == "TxtAndImage"
-    //   ) {
-    //     questionObj.stem.stemImage = getPublicImage(
-    //       questionObj.stem.stemImage,
-    //       150
-    //     );
-    //   }
-    //   if (
-    //     questionObj.optionStyle == "Image" ||
-    //     questionObj.optionStyle == "TxtAndImage"
-    //   ) {
-    //     questionObj.option.forEach((optionItem) => {
-    //       if (optionItem.img)
-    //         optionItem.img = getPublicImage(optionItem.img, 150);
-    //     });
-    //   }
-    //   return cardList
-    // });
-  })
-}
+  return cardList
+};
 
-export default getQuestionList
+const getQuestionData = (chapterData) => {
+  const data = { ...chapterData };
+  for (let key in chapterData) {
+    data[key] = getQuestionList(chapterData[key]);
+  }
+  return data;
+};
+
+export default getQuestionData;

--
Gitblit v1.9.1