Bläddra i källkod

课件集成答案

natasha 1 år sedan
förälder
incheckning
b455299a37
2 ändrade filer med 127 tillägg och 123 borttagningar
  1. 1 1
      package.json
  2. 126 122
      src/views/courseWare.vue

+ 1 - 1
package.json

@@ -17,7 +17,7 @@
     "@tinymce/tinymce-vue": "^3.2.8",
     "awe-dnd": "^0.3.4",
     "axios": "0.18.1",
-    "book-ui": "file:../GCLS-Book-question-ui/book-ui-0.3.55.tgz",
+    "book-ui": "file:../GCLS-Book-question-ui/book-ui-0.3.56.tgz",
     "cnchar": "^3.0.1",
     "cnchar-all": "^3.0.1",
     "cnchar-order": "^3.0.1",

+ 126 - 122
src/views/courseWare.vue

@@ -1,45 +1,26 @@
 <template>
   <div class="container GCLS-BOOK-Container">
-    <!-- <div v-if="!type" class="header-box">
-      <Header />
-      <Nav nav-value="书籍预览" />
-    </div>
-    <div v-else class="header-box">
-      <div class="bookname">
-        <i
-          style="cursor: pointer; margin-right: 5px"
-          class="el-icon-arrow-left"
-          @click="back"
-        />
-        {{ name }}
-      </div>
-    </div> -->
     <div
       id="content-scroll"
       class="content"
       :class="[type ? 'content-top' : '']"
     >
-      <!-- <div
-        id="content-tree"
-        :class="[fullTree ? 'content-tree-full' : 'content-tree']"
-      >
-        <TreeView
-          ref="treeView"
-          :book-id="bookId"
-          :change-id="changeId"
-          :change-tree-data="changeTreeData"
-          :current-tree-i-d="chapterId"
-        />
-        <div v-move class="moveBtn-nnpe" />
-      </div> -->
       <div
         id="data-screen"
         v-loading="loading"
         :class="['inner', fullscreen ? 'inner-full' : '']"
       >
-        <!-- 显示答案按钮 -->
-        <!-- <a v-if="chapterId" :class="['answerShow',isAnswerShow?'answerShowTrue':'']" @click="handleAnswerShow">显示答案</a> -->
-        <!-- <a class="edit-btn" @click="handleEdit">编辑</a> -->
+        <div class="resule-box" v-if="$route.query.ViewMode === 'Result'">
+          <span>用时:{{ handleDateTime(this.duration) }}</span>
+          <span
+            >答对:<span style="color: #2ca767">{{ rightNumber }}</span>
+            个</span
+          >
+          <span
+            >答错:<span style="color: #ed342d">{{ errorNumber }}</span>
+            个</span
+          >
+        </div>
         <div v-if="chapterId" class="title-box">
           <img
             v-if="!treeFlag"
@@ -51,14 +32,6 @@
             src="../assets/common/icon-treelist.png"
             @click="chooseCourseware"
           />
-          <!-- <h2 class="title">{{ chapterName }}</h2> -->
-          <!-- <el-switch
-            v-if="!treeFlag"
-            v-model="switchvalue"
-            active-color="#FF9900"
-            active-text
-            inactive-text="生词模式"
-          /> -->
         </div>
 
         <template v-if="category == 'OC' || !category">
@@ -83,7 +56,7 @@
             :theme-color="themeColor"
             :is-show-title="false"
             :task-model="TaskModel"
-            :is-show-save="false"
+            :is-show-save="showSaveFlag"
             :book-answer-content="bookAnswerContent"
             :is-answer-item-show="isAnswerItemShow"
             @finishTaskMaterial="finishTaskMaterial"
@@ -101,7 +74,7 @@
             :is-show-title="false"
             :is-answer-item-show="true"
             :task-model="TaskModel"
-            :is-show-save="true"
+            :is-show-save="showSaveFlag"
             :book-answer-content="bookAnswerContent"
             @finishTaskMaterial="finishTaskMaterial"
           />
@@ -119,20 +92,13 @@
             :book-font-size="bookFontSize"
             :is-answer-item-show="isAnswerItemShow"
             :task-model="TaskModel"
-            :is-show-save="false"
+            :is-show-save="showSaveFlag"
             :book-answer-content="bookAnswerContent"
             @finishTaskMaterial="finishTaskMaterial"
           />
         </template>
       </div>
     </div>
-    <!-- <Preview :context="context" :queIndex="queIndex" /> -->
-
-    <!-- <a
-      v-if="chapterId && treeFlag"
-      class="screen-full"
-      @click="finishPreviewGroupId()"
-    /> -->
   </div>
 </template>
 
@@ -147,7 +113,7 @@ import Preview from "@/components/Preview";
 import { getStaticContent } from "@/api/ajax";
 import { setToken } from "@/utils/auth";
 export default {
-  name: "CourseView",
+  name: "CourseWare",
   directives: {
     move(el, bindings) {
       el.onmousedown = function (e) {
@@ -177,14 +143,11 @@ export default {
     return {
       bookId: "",
       chapterId: "",
-      chapterName: "",
       fullscreen: false, // 控制全屏
       fullTree: false, // 全屏模式下树是否显示
       context: null,
       question: null, // 选择的模板题型
-      queIndex: "",
       treeFlag: true, // tree是否显示
-      switchvalue: true, // 生词模式
       isAnswerShow: false, // 是否显示答案
       bookAnswerContent: "",
       TaskModel: "",
@@ -196,75 +159,33 @@ export default {
       loading: false,
       bookFontSize: "",
       showContent: false,
-      bookName: [
-        {
-          name: "新实用汉语课本1",
-          id: "002-20211006-10-NHVOMDLDRY",
-        },
-        {
-          name: "发展汉语初级综合(Ⅰ)",
-          id: "002-20211007-06-4DGL2ZRIB5",
-        },
-        {
-          name: "HSK标准教程1",
-          id: "002-20211007-14-UNYIWU8EKW",
-        },
-        {
-          name: "新实用汉语",
-          id: "003-20210908-10-1ZWNGSASZL",
-        },
-        {
-          name: "新航标职业英语 综合英语(基础级)学生用书1(修订版)",
-          id: "002-20211029-14-9VGMXLV2NU",
-        },
-        {
-          name: "新航标职业英语 综合英语(提高级)学生用书1 (第3版)",
-          id: "002-20211011-10-GOLXUZST4G",
-        },
-        {
-          name: "新航标英语 汽车英语",
-          id: "002-20211222-15-O7WVMR4XHK",
-        },
-        {
-          name: "新航标职业英语 英语视听说教程(入门级)1",
-          id: "001-20211222-15-LXK64LQZST",
-        },
-        {
-          name: "新航标职业英语 综合英语(提高级)学生用书2(第3版)",
-          id: "001-20220118-14-EZVO52PYXF",
-        },
-        {
-          name: "新航标职业英语 综合英语(基础级)学生用书2(修订版)",
-          id: "002-20220208-09-FDKUJJSLI8",
-        },
-        {
-          name: "轻松学中文. 课本 .第1册",
-          id: "002-20220312-11-HK93JKDAGR",
-        },
-        {
-          name: "轻松学中文. 课本. 第2册",
-          id: "001-20220312-11-WU8XCRQMDB",
-        },
-        {
-          name: "轻松学中文 . 练习册 . 第1册",
-          id: "001-20220429-18-ZDIKBFQ9DP",
-        },
-        {
-          name: "轻松学中文 . 练习册 . 第 2 册",
-          id: "002-20220429-18-KIOM0VEXLY",
-        },
-      ],
       isAnswerItemShow: true,
+      showSaveFlag: false,
+      rightNumber: 0,
+      errorNumber: 0,
+      duration: 0,
     };
   },
   created() {
     const _this = this;
-    const Mname = "login_control-ParseAccessToken";
-    getStaticContent(Mname, {
-      access_token: _this.$route.query.AccessToken,
-    }).then((res) => {
-      setToken(res);
-    });
+    if (_this.$route.query.AccessToken) {
+      const Mname = "login_control-ParseAccessToken";
+      getStaticContent(Mname, {
+        access_token: _this.$route.query.AccessToken,
+      }).then((res) => {
+        setToken(res);
+      });
+    }
+    if (_this.$route.query.ViewMode === "Answer") {
+      // 答题模式下 显示提交按钮 隐藏查看答案按钮
+      this.showSaveFlag = true;
+      this.isAnswerItemShow = false;
+    } else if (_this.$route.query.ViewMode === "Result") {
+      this.isAnswerItemShow = false;
+      this.TaskModel = "ANSWER";
+      this.getUserAnswer();
+    }
+
     _this.changeId();
   },
   mounted() {},
@@ -323,6 +244,11 @@ export default {
           } else {
             _this.context = JSON.parse(res.content);
           }
+          setTimeout(() => {
+            if (_this.$route.query.ViewMode === "Answer") {
+              _this.$refs.previewBook.handleAnswerTimeStart();
+            }
+          }, 200);
         } else {
           const _this = this;
           _this.context = null;
@@ -359,16 +285,87 @@ export default {
       }
     },
     finishTaskMaterial(data, time, rightNumber, errorNumber) {
-      sessionStorage.setItem("userAnswers", data);
-      console.log("用户提交的答案:" + data);
-      console.log("答题时间" + time);
-      console.log("答对个数" + rightNumber);
-      console.log("答错个数" + errorNumber);
+      // sessionStorage.setItem("userAnswers", data);
+      // console.log("用户提交的答案:" + data);
+      // console.log("答题时间" + time);
+      // console.log("答对个数" + rightNumber);
+      // console.log("答错个数" + errorNumber);
+      this.loading = true;
+      const AppID = this.$route.query.AppID;
+      const AccessToken = this.$route.query.AccessToken;
+      const MethodName =
+        "/TeachingServer/BookIntegrationManager/SaveCoursewareExamAnswer";
+      let datas = {
+        courseware_id: this.$route.query.CoursewareID,
+        user_id: this.$route.query.UserID,
+        business_id: this.$route.query.BusinessID,
+        exam_answer: {
+          duration: time,
+          count_right: rightNumber,
+          count_error: errorNumber,
+          content: data,
+        },
+      };
+      getContens(MethodName, datas, AccessToken, AppID)
+        .then((res) => {
+          this.loading = false;
+          if (res.status === 1) {
+            this.$message.success("提交成功");
+          }
+        })
+        .catch(() => {
+          this.loading = false;
+        });
     },
     finishPreviewGroupId() {
-      console.log(this.$refs.previewBook.submitPreviewGroupId());
       this.$refs.previewBook.submitPreviewGroupId();
     },
+    // 获取用户答题信息
+    getUserAnswer() {
+      this.loading = true;
+      const AppID = this.$route.query.AppID;
+      const AccessToken = this.$route.query.AccessToken;
+      const MethodName =
+        "/TeachingServer/BookIntegrationManager/GetCoursewareExamAnswer";
+      let datas = {
+        courseware_id: this.$route.query.CoursewareID,
+        user_id: this.$route.query.UserID,
+        business_id: this.$route.query.BusinessID,
+      };
+      getContens(MethodName, datas, AccessToken, AppID)
+        .then((res) => {
+          this.loading = false;
+          if (res.status === 1) {
+            let exam_answer = res.exam_answer
+              ? JSON.parse(res.exam_answer)
+              : null;
+            if (!exam_answer) return;
+            this.bookAnswerContent = exam_answer.content;
+            this.duration = exam_answer.duration;
+            this.rightNumber = exam_answer.count_right;
+            this.errorNumber = exam_answer.count_error;
+          }
+        })
+        .catch(() => {
+          this.loading = false;
+        });
+    },
+    handleDateTime(time) {
+      if (parseInt(time / 60) < 10) {
+        time =
+          ("0" + parseInt(time / 60)).substring(
+            ("0" + parseInt(time / 60)).length - 2
+          ) +
+          ":" +
+          ("0" + (time % 60)).substring(("0" + (time % 60)).length - 2);
+      } else {
+        time =
+          parseInt(time / 60) +
+          ":" +
+          ("0" + (time % 60)).substring(("0" + (time % 60)).length - 2);
+      }
+      return time;
+    },
   },
 };
 </script>
@@ -590,6 +587,13 @@ export default {
     }
   }
 }
+.resule-box {
+  width: 860px;
+  margin: 0 auto 20px auto;
+  > span {
+    margin-right: 24px;
+  }
+}
 </style>
 <style lang="scss">
 .GCLS-BOOK-Container {