Переглянути джерело

判断显示standard answer显示问题

gcj 2 роки тому
батько
коміт
e425443ea3

+ 100 - 35
src/components/Adult/Preview.vue

@@ -180,40 +180,54 @@
               JSON.parse(previewGroupId).length == 0
             "
           >
-            <div
-              v-if="item.number || item.z_title || item.f_title"
-              class="title-big"
-            >
-              <b v-if="item.number">{{ item.number }}</b>
+            <template v-if="itemJ != 'standardAnswer'">
               <div
-                class="title-box-right"
-                :class="[item.is_textIndex ? 'title-box-right-index' : '']"
+                v-if="item.number || item.z_title || item.f_title"
+                class="title-big"
               >
-                <h2 v-if="item.z_title" v-html="item.z_title" />
-                <h3
-                  v-if="item.f_title"
-                  :style="{ marginTop: item.z_title ? '8px' : '0' }"
-                  v-html="item.f_title"
-                />
+                <b v-if="item.number">{{ item.number }}</b>
+                <div
+                  class="title-box-right"
+                  :class="[item.is_textIndex ? 'title-box-right-index' : '']"
+                >
+                  <h2 v-if="item.z_title" v-html="item.z_title" />
+                  <h3
+                    v-if="item.f_title"
+                    :style="{ marginTop: item.z_title ? '8px' : '0' }"
+                    v-html="item.f_title"
+                  />
+                </div>
               </div>
-            </div>
-            <div
-              class="title-little"
-              :class="[
-                item.little_title_number || item.little_title
-                  ? 'marginTop'
-                  : '',
-              ]"
-            >
-              <b v-html="item.little_title_number" />
-              <p v-html="item.little_title" />
-            </div>
+              <div
+                class="title-little"
+                :class="[
+                  item.little_title_number || item.little_title
+                    ? 'marginTop'
+                    : '',
+                ]"
+              >
+                <b v-html="item.little_title_number" />
+                <p v-html="item.little_title" />
+              </div>
+            </template>
             <div
               :class="[
                 'NNPE-tableList',
                 item.is_bg ? 'NNPE-tableList-hasBg' : '',
               ]"
             >
+              <h6
+                v-if="itemJ == 'userAnswer' || itemJ == 'studentAnswer'"
+                class="standardTitle"
+              >
+                {{ itemJ == "userAnswer" ? "Your answer" : "Student answers" }}
+              </h6>
+              <h6
+                v-if="itemJ == 'standardAnswer' && item.ShowstandardAnswer"
+                class="standardTitle"
+              >
+                Standard answer
+              </h6>
               <div
                 v-for="(items, indexs) in item.table_list"
                 :key="indexs"
@@ -262,7 +276,11 @@
                         :judgeAnswer="itemJ"
                       />
                     </template>
-                    <template v-if="itemss.type == 'phrase_chs'">
+                    <template
+                      v-if="
+                        itemss.type == 'phrase_chs' && itemJ != 'standardAnswer'
+                      "
+                    >
                       <WordPhrase
                         v-if="refresh"
                         :cur-que="itemss.data"
@@ -280,7 +298,12 @@
                         :judgeAnswer="itemJ"
                       />
                     </template>
-                    <template v-if="itemss.type == 'NewWord_chs'">
+                    <template
+                      v-if="
+                        itemss.type == 'NewWord_chs' &&
+                        itemJ != 'standardAnswer'
+                      "
+                    >
                       <WordPhrase
                         v-if="refresh"
                         :cur-que="itemss.data"
@@ -301,7 +324,12 @@
                         :judgeAnswer="itemJ"
                       />
                     </template>
-                    <template v-if="itemss.type == 'annotation_chs'">
+                    <template
+                      v-if="
+                        itemss.type == 'annotation_chs' &&
+                        itemJ != 'standardAnswer'
+                      "
+                    >
                       <WordPhrase
                         v-if="refresh"
                         :cur-que="itemss.data"
@@ -319,7 +347,11 @@
                         :judgeAnswer="itemJ"
                       />
                     </template>
-                    <template v-if="itemss.type == 'notes_chs'">
+                    <template
+                      v-if="
+                        itemss.type == 'notes_chs' && itemJ != 'standardAnswer'
+                      "
+                    >
                       <Notes
                         v-if="refresh"
                         :cur-que="itemss.data"
@@ -328,7 +360,12 @@
                         :judgeAnswer="itemJ"
                       />
                     </template>
-                    <template v-if="itemss.type == 'article_chs'">
+                    <template
+                      v-if="
+                        itemss.type == 'article_chs' &&
+                        itemJ != 'standardAnswer'
+                      "
+                    >
                       <ArticleTemChs
                         v-if="refresh"
                         :cur-que="itemss.data"
@@ -348,7 +385,12 @@
                     v-if="refresh"
                   />
                 </template> -->
-                    <template v-if="itemss.type == 'dialogue_article_chs'">
+                    <template
+                      v-if="
+                        itemss.type == 'dialogue_article_chs' &&
+                        itemJ != 'standardAnswer'
+                      "
+                    >
                       <DialogueArticleViewChs
                         v-if="refresh"
                         :cur-que="itemss.data"
@@ -671,8 +713,8 @@
                 </div>
               </div>
               <div
-                style="text-align: right; padding: 10px 24px 40px 0"
-                v-if="isAnswerItemShow"
+                style="text-align: right; padding: 10px 0px 40px 0"
+                v-if="isAnswerItemShow && item.showSubmit"
               >
                 <a class="submitLookAnswer" @click="submitLookAnswer(index)"
                   >Submit</a
@@ -1032,8 +1074,25 @@ export default {
               }
             });
           });
+
+          item.showSubmit = false;
           item.table_list.forEach((items, indexs) => {
             items.forEach((itemss, indexss) => {
+              if (itemss.data && itemss.data.type) {
+                if (
+                  this.previewType &&
+                  this.previewType == "previewCheckShow" &&
+                  (JSON.parse(this.previewGroupId).length == 0 ||
+                    this.previewGroupId.indexOf(item.group_id[0]) > -1)
+                ) {
+                  item.showSubmit = true;
+                } else if (
+                  !this.previewType ||
+                  this.previewType != "previewCheckShow"
+                ) {
+                  item.showSubmit = true;
+                }
+              }
               if (itemss.data && itemss.data.type == "NewWord_chs") {
                 _this.NNPENewWordList = _this.NNPENewWordList.concat(
                   itemss.data.option
@@ -1043,9 +1102,8 @@ export default {
                   itemss.data.option
                 );
               }
-              //   let Bookanswer = localStorage.getItem("Bookanswer");
+
               let Bookanswer = this.bookAnswerContent;
-              // if (_this.TaskModel == "lookAnswer" && _this.bookAnswerContent) {
               if (Bookanswer) {
                 if (this.TaskModel == "ANSWER") {
                   let token = getToken();
@@ -1081,9 +1139,16 @@ export default {
               }
             });
           });
+
+          item.ShowstandardAnswer = JSON.stringify(item.table_list).match(
+            /\[JUDGE##F##JUDGE\]/g
+          )
+            ? true
+            : false;
         });
       }
       this.$forceUpdate();
+      console.log(_this.cur);
     },
     // 上一页
     handleNNPEprev() {

+ 1 - 4
src/components/Adult/preview/DialogueArticleViewChs/DialogueAnswerViewChs.vue

@@ -1,7 +1,6 @@
 <!--  -->
 <template>
   <div class="dialogue-answer-view NPC-zhedie" v-if="isShowTemp">
-    <AnswerTitle :judgeAnswer="judgeAnswer" />
     <!-- 标题 -->
 
     <template v-if="curQue.title">
@@ -52,7 +51,6 @@
                 fit="scale-down"
               ></el-image>
             </div>
-            1====
             <div class="dialogue-answer-model">
               <AnswerModel
                 :curQue="item"
@@ -149,7 +147,6 @@ import Soundrecord from "../Soundrecord.vue";
 import AnswerModel from "./AnswerModel.vue";
 import OptionModel from "./OptionModel.vue";
 import WordcardModel from "./WordcardModel.vue";
-import AnswerTitle from "../../preview/components/AnswerTitle.vue";
 
 export default {
   name: "DialogueAnswerViewChs",
@@ -161,7 +158,6 @@ export default {
     AnswerModel,
     OptionModel,
     WordcardModel,
-    AnswerTitle,
   },
   props: ["curQue", "colorBox", "TaskModel", "judgeAnswer"],
   data() {
@@ -269,6 +265,7 @@ export default {
         }
 
         if (item.checkList && item.checkList.indexOf("judge") > -1) {
+          console.log(item.judge);
           for (let i = 0; i < paraLeg; i++) {
             let judge_obj = {
               value: "",

+ 1 - 3
src/components/Adult/preview/Picture.vue

@@ -1,7 +1,6 @@
 <!--  -->
 <template>
   <div :class="['Big-Book-PictureBox']" v-if="isShowTemp">
-    <AnswerTitle :judgeAnswer="judgeAnswer" />
     <!-- <ul class="Big-Book-PictureBox-item" v-for="(item,index) in curQue.queList" :key="index"> -->
     <li v-for="(items, indexs) in curQue.option" :key="indexs">
       <template v-if="ChildType != 'image_gdcy' && items.hanziSite == 'top'">
@@ -342,9 +341,8 @@
 <script>
 import Soundrecord from "../preview/Soundrecord.vue"; // 录音模板
 import Recorder from "js-audio-recorder"; //录音插件
-import AnswerTitle from "../preview/components/AnswerTitle.vue";
 export default {
-  components: { Soundrecord, AnswerTitle },
+  components: { Soundrecord },
   props: ["curQue", "ChildType", "TaskModel", "judgeAnswer"],
   data() {
     return {

Різницю між файлами не показано, бо вона завелика
+ 553 - 499
src/components/Adult/preview/PreviewDialogueNPC.vue


+ 13 - 4
src/components/Adult/preview/SelectTone.vue

@@ -1,7 +1,6 @@
 <!--  -->
 <template>
   <div class="Big-Book-prev-Textdes SelectTone" v-if="isShowTemp">
-    <AnswerTitle :judgeAnswer="judgeAnswer" />
     <div
       class="aduioLine-box"
       v-if="
@@ -44,7 +43,11 @@
           <a
             v-for="(itmes, indexs) in toneList"
             :key="indexs"
-            :class="['tone-item', lookanswerClass(index, indexs)]"
+            :class="[
+              'tone-item',
+              lookanswerClass(index, indexs),
+              TaskModel == 'ANSWER' ? 'tone-item-default' : '',
+            ]"
             @click="handleClick(index, indexs)"
           >
             <img :src="itmes" />
@@ -58,10 +61,9 @@
 <script>
 import Audio from "../preview/components/AudioRed.vue"; // 音频播放
 import AudioLine from "../preview/AudioLine.vue";
-import AnswerTitle from "../preview/components/AnswerTitle.vue";
 
 export default {
-  components: { Audio, AudioLine, AnswerTitle },
+  components: { Audio, AudioLine },
   props: ["curQue", "themeColor", "TaskModel", "judgeAnswer"],
   data() {
     return {
@@ -108,6 +110,10 @@ export default {
               className = "";
             }
           }
+        } else {
+          if (_this.judgeAnswer && userAnswer == indexs.toString()) {
+            className = "active";
+          }
         }
 
         if (!_this.judgeAnswer && userAnswer == indexs.toString()) {
@@ -326,6 +332,9 @@ export default {
         img {
           width: 24px;
         }
+        &.tone-item-default {
+          cursor: default;
+        }
       }
     }
   }

+ 82 - 79
src/components/Adult/preview/SelectYinjie.vue

@@ -1,71 +1,70 @@
 <!--  -->
 <template>
   <div class="Big-Book-prev-Textdes SelectYinjie" v-if="isShowTemp">
-    <div>
-      <AnswerTitle :judgeAnswer="judgeAnswer" />
-    </div>
-    <div
-      class="aduioLine-box"
-      v-if="
-        curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id
-      "
-      :style="{ height: judgeAnswer == 'standardAnswer' ? '0px' : 'auto' }"
-    >
-      <AudioLine
-        audioId="SelectYinjieAudio"
-        :mp3="curQue.mp3_list[0].id"
-        :getCurTime="getCurTime"
-        :themeColor="themeColor"
-        :ed="ed"
-        type="audioLine"
-        ref="audioLine"
-        @handleListenRead="handleListenRead"
-      />
-    </div>
-    <div v-for="(item, index) in curQue.option" :key="index">
-      <div class="item-box" v-if="isShowOption(item, index)">
-        <a
-          v-if="curQue.wordTime && curQue.wordTime.length > 0"
-          :class="[
-            'play-btn',
-            curTime >= curQue.wordTime[index].bg &&
-            curTime < curQue.wordTime[index].ed &&
-            stopAudio
-              ? 'active'
-              : '',
-          ]"
-          @click="
-            handleChangeTime(
-              curQue.wordTime[index].bg,
-              curQue.wordTime[index].ed
-            )
-          "
-        ></a>
-        <b v-if="item.number">{{ item.number }}</b>
-        <div class="zijie-box">
-          <p
+    <div class="SelectYinjie-inner">
+      <div
+        class="aduioLine-box"
+        v-if="
+          curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id
+        "
+        :style="{ height: judgeAnswer == 'standardAnswer' ? '0px' : 'auto' }"
+      >
+        <AudioLine
+          audioId="SelectYinjieAudio"
+          :mp3="curQue.mp3_list[0].id"
+          :getCurTime="getCurTime"
+          :themeColor="themeColor"
+          :ed="ed"
+          type="audioLine"
+          ref="audioLine"
+          @handleListenRead="handleListenRead"
+        />
+      </div>
+      <div v-for="(item, index) in curQue.option" :key="index">
+        <div class="item-box" v-if="isShowOption(item, index)">
+          <a
+            v-if="curQue.wordTime && curQue.wordTime.length > 0"
             :class="[
-              !judgeAnswer ? 'exercise-model' : '',
-              lookanswerClass(index, indexs),
+              'play-btn',
+              curTime >= curQue.wordTime[index].bg &&
+              curTime < curQue.wordTime[index].ed &&
+              stopAudio
+                ? 'active'
+                : '',
             ]"
-            v-for="(items, indexs) in item.option"
-            :key="indexs"
-            @click="handleClick(index, indexs)"
-          >
-            {{ items.pinyin }}
-          </p>
+            @click="
+              handleChangeTime(
+                curQue.wordTime[index].bg,
+                curQue.wordTime[index].ed
+              )
+            "
+          ></a>
+          <b v-if="item.number">{{ item.number }}</b>
+          <div class="zijie-box">
+            <p
+              :class="[
+                !judgeAnswer ? 'exercise-model' : '',
+                lookanswerClass(index, indexs),
+              ]"
+              v-for="(items, indexs) in item.option"
+              :key="indexs"
+              @click="handleClick(index, indexs)"
+            >
+              {{ items.pinyin }}
+            </p>
+          </div>
+          <a
+            v-if="!judgeAnswer"
+            :class="[
+              'clear-btn',
+              curQue.Bookanswer[index].length > 0 && TaskModel != 'ANSWER'
+                ? 'active'
+                : '',
+              TaskModel == 'ANSWER' ? 'notAllow' : '',
+            ]"
+            @click="handleClear(index)"
+          ></a>
         </div>
-        <a
-          v-if="!judgeAnswer"
-          :class="[
-            'clear-btn',
-            curQue.Bookanswer[index].length > 0 && TaskModel != 'ANSWER'
-              ? 'active'
-              : '',
-            TaskModel == 'ANSWER' ? 'notAllow' : '',
-          ]"
-          @click="handleClear(index)"
-        ></a>
       </div>
     </div>
   </div>
@@ -73,10 +72,9 @@
 
 <script>
 import AudioLine from "../preview/AudioLine.vue";
-import AnswerTitle from "../preview/components/AnswerTitle.vue";
 
 export default {
-  components: { AudioLine, AnswerTitle },
+  components: { AudioLine },
   props: ["curQue", "themeColor", "TaskModel", "judgeAnswer"],
   data() {
     return {
@@ -114,6 +112,10 @@ export default {
               className = "";
             }
           }
+        } else {
+          if (_this.judgeAnswer && userAnswer == indexs.toString()) {
+            className = "active";
+          }
         }
 
         if (!_this.judgeAnswer && userAnswer == indexs.toString()) {
@@ -272,11 +274,14 @@ export default {
 //@import url(); 引入公共css类
 .SelectYinjie {
   width: 100%;
-  background: #f7f7f7;
-  border: 1px solid rgba(0, 0, 0, 0.1);
-  box-sizing: border-box;
-  border-radius: 8px;
-  padding: 24px;
+  &-inner {
+    width: 100%;
+    background: #f7f7f7;
+    border: 1px solid rgba(0, 0, 0, 0.1);
+    box-sizing: border-box;
+    border-radius: 8px;
+    padding: 24px;
+  }
   .aduioLine-box {
     margin-bottom: 8px;
   }
@@ -332,7 +337,13 @@ export default {
         cursor: pointer;
         font-family: "GB-PINYINOK-B";
         overflow: hidden;
-
+        &:hover {
+          background: rgba(0, 0, 0, 0.05)
+            url("../../../assets/NPC/selectYinjie-hover.png") right bottom
+            no-repeat;
+          background-size: 11px;
+          border: 1px solid rgba(0, 0, 0, 0.1);
+        }
         &.active {
           background: rgba(0, 188, 75, 0.05)
             url("../../../assets/NPC/selectYinjie-active.png") right bottom
@@ -340,6 +351,7 @@ export default {
           background-size: 11px;
           border: 1px solid #00bc4b;
         }
+
         &.userRight {
           background: rgba(44, 167, 103, 0.1);
           border-color: #2ca767;
@@ -349,15 +361,6 @@ export default {
           border-color: #ed342d;
         }
       }
-      .exercise-model {
-        &:hover {
-          background: rgba(0, 0, 0, 0.05)
-            url("../../../assets/NPC/selectYinjie-hover.png") right bottom
-            no-repeat;
-          background-size: 11px;
-          border: 1px solid rgba(0, 0, 0, 0.1);
-        }
-      }
     }
     .clear-btn {
       width: 16px;

+ 19 - 11
src/components/Adult/preview/SentenceModule.vue

@@ -7,9 +7,8 @@
         ? 'hasmp3'
         : '',
     ]"
-    v-if="curQue && curQue.Bookanswer"
+    v-if="isShowTemp"
   >
-    <AnswerTitle :judgeAnswer="judgeAnswer" />
     <div
       class="out-audioLine-box"
       v-if="
@@ -173,13 +172,7 @@
                     <div
                       class="sent-que"
                       v-for="(sddItem, sddIndex) in sdItem.detail"
-                      :key="
-                        'sent-option-items' +
-                        
-                        indexs +
-                        sdIndex +
-                        sddIndex
-                      "
+                      :key="'sent-option-items' + indexs + sdIndex + sddIndex"
                       :style="{
                         paddingLeft:
                           sddItem.config.wordPadding.indexOf('left') > -1
@@ -837,7 +830,6 @@ import NumberStyle from "./components/NumberStyle.vue";
 import EditDiv from "../preview/EditDiv.vue";
 import Soundrecord from "../preview/Soundrecord.vue"; // 录音模板
 import OptionTemp from "./components/OptionTemp.vue";
-import AnswerTitle from "../preview/components/AnswerTitle.vue";
 export default {
   components: {
     AudioLine,
@@ -849,7 +841,6 @@ export default {
     JudgeTemp,
     ShortInputTemp,
     OptionTemp,
-    AnswerTitle,
   },
   props: ["curQue", "themeColor", "TaskModel", "judgeAnswer"],
   data() {
@@ -880,9 +871,26 @@ export default {
       answerpart: [],
       userErrorList: [],
       userBookanswer: [],
+      userErrorNumberTotal: 0,
     };
   },
   computed: {
+    isShowTemp() {
+      let _this = this;
+      let bool = false;
+      if (_this.curQue && _this.curQue.Bookanswer) {
+        if (_this.judgeAnswer == "standardAnswer") {
+          if (_this.userErrorNumberTotal > 0) {
+            bool = true;
+          } else {
+            bool = false;
+          }
+        } else {
+          bool = true;
+        }
+      }
+      return bool;
+    },
     bgClassName() {
       let className = "";
       if (this.curQue.bgColor == "grey") {

+ 2 - 2
src/components/Adult/preview/components/AnswerTitle.vue

@@ -1,6 +1,6 @@
 <!--  -->
 <template>
-  <div class="answer-title">
+  <div class="answer-title" v-if="curTableIndex == 0">
     <h6
       v-if="judgeAnswer == 'userAnswer' || judgeAnswer == 'studentAnswer'"
       class="standardTitle"
@@ -16,7 +16,7 @@
 <script>
 export default {
   components: {},
-  props: ["judgeAnswer"],
+  props: ["judgeAnswer", "curTableIndex"],
   data() {
     return {};
   },

+ 28 - 7
src/components/Adult/preview/components/OneSentenceTemp.vue

@@ -1,6 +1,9 @@
 <!--  -->
 <template>
-  <div class="sentence-temp" v-if="detail">
+  <div
+    :class="['npc-sentence-temp', 'npc-sentence-temp-' + judgeAnswer]"
+    v-if="detail"
+  >
     <template v-if="detail.wordsList && detail.wordsList.length > 0">
       <div
         :class="[
@@ -683,7 +686,7 @@ export default {
 <style lang='scss' scoped>
 //@import url(); 引入公共css类
 // //@import "../common.scss";
-.sentence-temp {
+.npc-sentence-temp {
   clear: both;
   overflow: hidden;
   width: 100%;
@@ -764,11 +767,29 @@ export default {
     &-example {
       color: #ff3f3f;
     }
-    &.userRight {
-      color: #2ca767;
-    }
-    &.userError {
-      color: #ed342d;
+  }
+}
+
+.npc-sentence-temp {
+  &-userAnswer,
+  &-standardAnswer,
+  &-studentAnswer {
+    .NPC-words {
+      .userError {
+        color: #ed342d;
+        .edit-div-npc {
+          color: #ed342d;
+        }
+      }
+      .userRight {
+        color: #2ca767;
+        .edit-div-rlc {
+          color: #2ca767;
+        }
+      }
+      .answer-input-example {
+        color: #2ca767;
+      }
     }
   }
 }

Деякі файли не було показано, через те що забагато файлів було змінено