From 0bbc91dbf3a58da857ef098b34f9d2f86361c766 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期四, 11 四月 2024 17:56:46 +0800
Subject: [PATCH] 答题器图标替换,图书分类页骨架屏样式修改

---
 packageBookService/pages/bookServices/examination/examination.js |  317 +++++++++++++++++++++++++---------------------------
 1 files changed, 155 insertions(+), 162 deletions(-)

diff --git a/packageBookService/pages/bookServices/examination/examination.js b/packageBookService/pages/bookServices/examination/examination.js
index 108f1e6..2c5d010 100644
--- a/packageBookService/pages/bookServices/examination/examination.js
+++ b/packageBookService/pages/bookServices/examination/examination.js
@@ -1,4 +1,6 @@
-import { getPublicImage } from "../../../../assets/js/middleGround/tool";
+import {
+  getPublicImage
+} from "../../../../assets/js/middleGround/tool";
 const app = getApp();
 Page({
   /**
@@ -28,6 +30,7 @@
     total: 0, // 棰樼洰鎬绘暟
     cardList: [], // 鎻愪氦椤�,
     questionDataList: [], // 鏄剧ず棰樼洰鍒楄〃
+    noData: false,
     mockid: 0,
     uuid: 0,
     mockData: {
@@ -44,6 +47,7 @@
     sliderValue: 0, // 瀛椾綋婊戝潡
     startTime: "", //杩涘叆椤甸潰褰撳墠鏃堕棿
     pauseTime: 0, //鏆傚仠鏃堕棿
+
   },
 
   /**
@@ -193,6 +197,12 @@
       },
     });
   },
+  // 鏀瑰彉loading鐘舵��
+  changeLoadingState() {
+    this.setData({
+      loading: true
+    })
+  },
   // 杩斿洖鎷︽埅
   beforeleave() {
     wx.showModal({
@@ -201,8 +211,7 @@
       confirmColor: "#ff6c00",
       cancelColor: "#949494",
       complete: (res) => {
-        if (res.cancel) {
-        }
+        if (res.cancel) {}
         if (res.confirm) {
           this.setData({
             submitStatus: true,
@@ -505,16 +514,14 @@
         });
       }
       app.MG.identity.setUserKey({
-        setKeyRequests: [
-          {
-            domain: "mockAnswerData",
-            key: this.data.uuid,
-            value: JSON.stringify({
-              time: this.data.countdownTime,
-              answerData: saveData,
-            }),
-          },
-        ],
+        setKeyRequests: [{
+          domain: "mockAnswerData",
+          key: this.data.uuid,
+          value: JSON.stringify({
+            time: this.data.countdownTime,
+            answerData: saveData,
+          }),
+        }, ],
       });
       child.openTestReportDialog();
     }
@@ -633,16 +640,14 @@
       // 缁勫嵎妯″紡
       // 娓呯┖绛旈璁板綍
       await app.MG.identity.setUserKey({
-        setKeyRequests: [
-          {
-            domain: "mockAnswerData",
-            key: this.data.uuid,
-            value: JSON.stringify({
-              time: this.data.countdownTime,
-              answerData: [],
-            }),
-          },
-        ],
+        setKeyRequests: [{
+          domain: "mockAnswerData",
+          key: this.data.uuid,
+          value: JSON.stringify({
+            time: this.data.countdownTime,
+            answerData: [],
+          }),
+        }, ],
       });
       this.init();
     } else {
@@ -693,7 +698,6 @@
               this.setData({
                 currentIndex: value.currentIndex,
               });
-              console.log(this.data.submitStatus);
               // 鎼哄甫绛旈璁板綍 鑾峰彇棰樼洰
               await this.getQuestionList(value.dataList);
             } else {
@@ -722,6 +726,7 @@
   async getQuestionList(oldData) {
     // 娓呯┖姝g‘棰樻暟璁板綍
     this.setData({
+      noData: false,
       cardList: [],
       correctNum: 0,
     });
@@ -761,6 +766,9 @@
         },
       };
       await app.MG.store.getProductDetail(query).then((res) => {
+        if (!res.datas.cmsDatas[0].datas.length) return this.setData({
+          noData: true
+        })
         this.setData({
           total: res.datas.cmsDatas[0].datas.length,
         });
@@ -783,34 +791,26 @@
             // 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), // 棰樺共
+            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)
-              : "", // 閫夋嫨棰橀�夐」
+            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"
-              ? []
-              : "",
+            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:
-              this.data.collectList.indexOf(item.id) > -1 ? true : false,
+            isCollect: this.data.collectList.indexOf(item.id) > -1 ? true : false,
             isUnfold: "", // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮�
           };
           // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲JSON鏍煎紡
@@ -859,8 +859,8 @@
             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(/\<img/gi, '<img class="option-rich-img"')
+                .replace(/\<p/gi, '<p class="stem-rich-p"');
             });
           }
           // 瑙f瀽瀵屾枃鏈鐞�
@@ -872,6 +872,14 @@
               /\<img/gi,
               '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" '
             );
+          }
+          // 鍚姏棰樹慨鏀�
+          if (questionObj.questionType == 'singleChoiceArr') {
+            questionObj.stem.stemTxt = questionObj.stem.stemTxt
+              .replace(
+                /\<audio/gi,
+                '<audio @play="play" '
+              )
           }
           // 鑾峰彇鍥剧墖
           if (
@@ -1047,13 +1055,11 @@
       // 璁板綍閿欓
       app.MG.identity
         .setUserKey({
-          setKeyRequests: [
-            {
-              domain: "errorData",
-              key: this.data.rootCmsItemId,
-              value: JSON.stringify(this.data.errorList),
-            },
-          ],
+          setKeyRequests: [{
+            domain: "errorData",
+            key: this.data.rootCmsItemId,
+            value: JSON.stringify(this.data.errorList),
+          }, ],
         })
         .then((res) => {
           console.log(res);
@@ -1111,13 +1117,11 @@
     }
     app.MG.identity
       .setUserKey({
-        setKeyRequests: [
-          {
-            domain: "collectData",
-            key: this.data.rootCmsItemId,
-            value: JSON.stringify(this.data.collectList),
-          },
-        ],
+        setKeyRequests: [{
+          domain: "collectData",
+          key: this.data.rootCmsItemId,
+          value: JSON.stringify(this.data.collectList),
+        }, ],
       })
       .then((res) => {});
   },
@@ -1156,17 +1160,15 @@
   setAnswerInfo(data) {
     app.MG.identity
       .setUserKey({
-        setKeyRequests: [
-          {
-            domain: "answerData",
-            key: this.data.productLinkPath,
-            value: JSON.stringify(data),
-          },
-        ],
+        setKeyRequests: [{
+          domain: "answerData",
+          key: this.data.productLinkPath,
+          value: JSON.stringify(data),
+        }, ],
       })
       .then((res) => {});
   },
-  // 鑾峰彇绛旈鏁版嵁
+  // 鑾峰彇鏃х瓟棰樻暟鎹�
   getAnswerInfo(callback) {
     app.MG.identity
       .getUserKey({
@@ -1177,7 +1179,7 @@
         if (callback) callback(res);
       });
   },
-  // 鍒犻櫎绛旈鏁版嵁
+  // 鍒犻櫎鏃х瓟棰樻暟鎹�
   delAnswerInfo(callback) {
     app.MG.identity
       .delUserKey({
@@ -1206,6 +1208,7 @@
         } else {
           this.setData({
             loading: false,
+            noData: true
           });
           wx.showModal({
             title: "鎻愮ず",
@@ -1230,8 +1233,7 @@
   async getCollectDataList() {
     let questionArr = [];
     this.setData({
-      cardList: [
-        {
+      cardList: [{
           catalogName: "鍗曢�夐",
           infoList: [],
         },
@@ -1285,28 +1287,21 @@
           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), // 棰樺共
+            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)
-              : "", // 閫夋嫨棰橀�夐」
+            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"
-                ? []
-                : "",
+            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,
@@ -1377,9 +1372,19 @@
             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(/\<img/gi, '<img class="option-rich-img"')
+                .replace(/\<p/gi, '<p class="stem-rich-p"');
             });
+          }
+          // 瑙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 (item.Embedded_QuestionBank_QuestionType == "judge") {
             questionObj.type = "鍒ゆ柇棰�";
@@ -1443,7 +1448,8 @@
           this.getErrorDataList();
         } else {
           this.setData({
-            loading: true,
+            loading: false,
+            noData: true
           });
           wx.showModal({
             title: "鎻愮ず",
@@ -1467,8 +1473,7 @@
   // 鑾峰彇閿欓闆�
   async getErrorDataList() {
     this.setData({
-      cardList: [
-        {
+      cardList: [{
           catalogName: "鍗曢�夐",
           infoList: [],
         },
@@ -1520,28 +1525,21 @@
         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), // 棰樺共
+          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)
-            : "", // 閫夋嫨棰橀�夐」
+          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"
-              ? []
-              : "",
+          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,
@@ -1614,9 +1612,19 @@
           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(/\<img/gi, '<img class="option-rich-img"')
+              .replace(/\<p/gi, '<p class="stem-rich-p"');
           });
+        }
+        // 瑙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 (item.Embedded_QuestionBank_QuestionType == "judge") {
           questionObj.type = "鍒ゆ柇棰�";
@@ -1798,35 +1806,27 @@
             id: item.id,
             score: pathitem.infoList.find((infoItem) => infoItem.id == item.id)
               .score,
-            stem:
-              item.Embedded_QuestionBank_QuestionType == "completion"
-                ? JSON.parse(item.Embedded_QuestionBank_Stem)
-                    .stemTxt.replaceAll("<vacancy>", ",input,")
-                    .split(",")
-                : JSON.parse(item.Embedded_QuestionBank_Stem), // 棰樺共
+            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)
-              : "", // 閫夋嫨棰橀�夐」
+            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.answer
-              : item.Embedded_QuestionBank_QuestionType == "completion" ||
-                item.Embedded_QuestionBank_QuestionType == "multipleChoice"
-              ? []
-              : "",
-            isUserAnswer: oldObj ? this.isHaveAnswer(oldObj.userAnswer) : false,
+            difficulty: item.Embedded_QuestionBank_Difficulty ?
+              4 - item.Embedded_QuestionBank_Difficulty : 0, // 闅惧害绛夌骇
+            userAnswer: oldObj ?
+              oldObj.answer : item.Embedded_QuestionBank_QuestionType == "completion" ||
+              item.Embedded_QuestionBank_QuestionType == "multipleChoice" ? [] : "",
+            isUserAnswer: oldObj ? this.isHaveAnswer(oldObj.answer) : false,
             isRight: oldObj ? oldObj.isRight : null,
             // isComplete: oldObj ? oldObj.isComplete : false,
             isComplete: this.data.mockData.state == "3" ? true : false,
-            isCollect:
-              this.data.collectList.indexOf(item.id) > -1 ? true : false,
+            isCollect: this.data.collectList.indexOf(item.id) > -1 ? true : false,
             isUnfold: "", // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮�
           };
           // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲JSON鏍煎紡
@@ -1957,26 +1957,22 @@
   // 璁板綍璐拱缁勫嵎鏃堕棿
   setMockInfo(data) {
     app.MG.identity.setUserKey({
-      setKeyRequests: [
-        {
-          domain: "mockData",
-          key: this.data.bookId + "",
-          value: JSON.stringify(data),
-        },
-      ],
+      setKeyRequests: [{
+        domain: "mockData",
+        key: this.data.bookId + "",
+        value: JSON.stringify(data),
+      }, ],
     });
   },
   // 璁板綍缁勫嵎棰樼洰鍒楄〃
   saveMockQuestionList(data) {
     app.MG.identity
       .setUserKey({
-        setKeyRequests: [
-          {
-            domain: "mockQuestionData",
-            key: this.data.uuid,
-            value: JSON.stringify(data),
-          },
-        ],
+        setKeyRequests: [{
+          domain: "mockQuestionData",
+          key: this.data.uuid,
+          value: JSON.stringify(data),
+        }, ],
       })
       .then((res) => {
         console.log("妯¤�冮鐩垪琛ㄥ凡璁板綍");
@@ -2008,9 +2004,8 @@
           this.setData({
             currentIndex: JSON.parse(res[0].value).currentIndex,
             "mockData.time": JSON.parse(res[0].value).time,
-            countdownTime: JSON.parse(res[0].value).time
-              ? JSON.parse(res[0].value).time
-              : this.data.mockData.sumTime,
+            countdownTime: JSON.parse(res[0].value).time ?
+              JSON.parse(res[0].value).time : this.data.mockData.sumTime,
             "mockData.answer": JSON.parse(res[0].value).answerData,
           });
           console.log(JSON.parse(res[0].value));
@@ -2054,17 +2049,15 @@
     //
     app.MG.identity
       .setUserKey({
-        setKeyRequests: [
-          {
-            domain: "mockAnswerData",
-            key: this.data.uuid,
-            value: JSON.stringify({
-              currentIndex: this.data.currentIndex,
-              time: this.data.countdownTime,
-              answerData: saveData,
-            }),
-          },
-        ],
+        setKeyRequests: [{
+          domain: "mockAnswerData",
+          key: this.data.uuid,
+          value: JSON.stringify({
+            currentIndex: this.data.currentIndex,
+            time: this.data.countdownTime,
+            answerData: saveData,
+          }),
+        }, ],
       })
       .then((res) => {
         this.setData({
@@ -2110,4 +2103,4 @@
     );
     return newContent;
   },
-});
+});
\ No newline at end of file

--
Gitblit v1.9.1