Prechádzať zdrojové kódy

视频交互练习题离线包获取数据

natasha 2 týždňov pred
rodič
commit
47aabfbfbf

+ 1 - 3
src/views/book/courseware/preview/components/article/components/Practice.vue

@@ -286,9 +286,7 @@ export default {
     bookStatus: {
       default: 'online',
     },
-    convertText: {
-      default: '',
-    },
+    convertText: {},
   },
   props: [
     'cur',

+ 3 - 9
src/views/book/courseware/preview/components/article/components/WordPhraseDetail.vue

@@ -350,15 +350,9 @@ export default {
     bookStatus: {
       default: 'online',
     },
-    convertText: {
-      default: '',
-    },
-    getSelectId: {
-      default: '',
-    },
-    getCoursewareId: {
-      default: '',
-    },
+    convertText: {},
+    getSelectId: {},
+    getCoursewareId: {},
   },
   props: [
     'data',

+ 1 - 3
src/views/book/courseware/preview/components/article/components/Wordcard.vue

@@ -237,9 +237,7 @@ export default {
     bookStatus: {
       default: 'online',
     },
-    convertText: {
-      default: '',
-    },
+    convertText: {},
   },
   props: [
     'word',

+ 3 - 9
src/views/book/courseware/preview/components/new_word/components/WordPhraseDetail.vue

@@ -276,15 +276,9 @@ export default {
     bookStatus: {
       default: 'online',
     },
-    convertText: {
-      default: '',
-    },
-    getSelectId: {
-      default: '',
-    },
-    getCoursewareId: {
-      default: '',
-    },
+    convertText: {},
+    getSelectId: {},
+    getCoursewareId: {},
   },
   props: [
     'data',

+ 44 - 17
src/views/book/courseware/preview/components/video_interaction/ExercisePreview.vue

@@ -32,7 +32,15 @@ export default {
       modal: false,
     };
   },
-  inject: ['getCoursewareId'],
+  inject: {
+    bookStatus: {
+      default: 'online',
+    },
+    tempDir: {
+      default: '',
+    },
+    getCoursewareId: {},
+  },
   props: ['exercise_id', 'feed_back'],
   data() {
     return {
@@ -90,27 +98,46 @@ export default {
         this.permissionControl.can_show_answer = true;
       }
     },
-    handleData() {
+    async handleData() {
       this.loading = true;
-      let data = {
-        exercise_id: this.exercise_id,
-        courseware_id: this.getCoursewareId(),
-      };
-      GetCoursewareExerciseView(data)
-        .then((res) => {
-          this.loading = false;
-          if (res.status === 1) {
+      if (this.bookStatus() === 'offline') {
+        this.loading = false;
+        if (this.readFileContent()) {
+          const content = await window.fileAPI.readZipFilesync(
+            `${this.tempDir}/courseware`,
+            `EX_${this.getCoursewareId()}/${this.exercise_id}`,
+          );
+          const text = new TextDecoder().decode(content);
+          try {
+            const res = JSON.parse(text);
             this.content = res.content_exercise;
             this.title = res.content_title;
             this.typeValue = res.content_exercise ? JSON.parse(res.content_exercise).type : '';
-            // setTimeout(() => {
-            //   this.$refs.preview.showAnswer(true, false, this.$refs.preview.answer, true);
-            // }, 100);
+          } catch (e) {
+            this.$message.warning('获取练习题数据失败');
           }
-        })
-        .catch(() => {
-          this.loading = false;
-        });
+        }
+      } else {
+        let data = {
+          exercise_id: this.exercise_id,
+          courseware_id: this.getCoursewareId(),
+        };
+        GetCoursewareExerciseView(data)
+          .then((res) => {
+            this.loading = false;
+            if (res.status === 1) {
+              this.content = res.content_exercise;
+              this.title = res.content_title;
+              this.typeValue = res.content_exercise ? JSON.parse(res.content_exercise).type : '';
+              // setTimeout(() => {
+              //   this.$refs.preview.showAnswer(true, false, this.$refs.preview.answer, true);
+              // }, 100);
+            }
+          })
+          .catch(() => {
+            this.loading = false;
+          });
+      }
     },
   },
 };