Browse Source

基础组件预览:获取无文本内容的数据结构,用于保存为个人模板时的样式模板

zq 7 hours ago
parent
commit
bb807a37b8

+ 36 - 0
src/views/book/courseware/preview/components/audio/AudioPreview.vue

@@ -91,6 +91,7 @@ import { getAudioData } from '@/views/book/courseware/data/audio';
 
 
 import PreviewMixin from '../common/PreviewMixin';
 import PreviewMixin from '../common/PreviewMixin';
 import AudioPlay from '../common/AudioPlay.vue';
 import AudioPlay from '../common/AudioPlay.vue';
+import { getRandomNumber } from '@/utils';
 
 
 export default {
 export default {
   name: 'AudioPreview',
   name: 'AudioPreview',
@@ -216,6 +217,41 @@ export default {
         this.viewScroll = 'hidden';
         this.viewScroll = 'hidden';
       }
       }
     },
     },
+
+    /**
+     * 获取无文本内容的数据结构,用于保存为个人模板时的样式模板
+     */
+    getNoTextContentData() {
+      let noTextContentData = JSON.parse(JSON.stringify(this.data));
+      const resetFieldMap = {
+        analysis_list: [],
+        answer_list: [],
+      };
+
+      Object.assign(noTextContentData, resetFieldMap);
+
+      noTextContentData.option_list.forEach((item) => {
+        item.content = '';
+        item.pinyin = '';
+        item.shiyi = '';
+        item.mark = getRandomNumber();
+        item.hz_info = [];
+        item.file_list = [];
+        item.file_id_list = [];
+        item.content_list = [];
+        item.is_common_pinyin = true;
+        item.audio_file_id = '';
+        item.is_margin = false;
+        item.is_show_ben = true;
+      });
+
+      if (noTextContentData.answer) {
+        noTextContentData.answer.answer_list = [];
+        noTextContentData.answer.reference_answer = '';
+      }
+
+      return noTextContentData;
+    },
   },
   },
 };
 };
 </script>
 </script>

+ 37 - 0
src/views/book/courseware/preview/components/divider/DividerPreview.vue

@@ -6,6 +6,7 @@
 <script>
 <script>
 import { getDividerData } from '@/views/book/courseware/data/divider';
 import { getDividerData } from '@/views/book/courseware/data/divider';
 import PreviewMixin from '../common/PreviewMixin';
 import PreviewMixin from '../common/PreviewMixin';
+import { getRandomNumber } from '@/utils';
 
 
 export default {
 export default {
   name: 'DividerPreview',
   name: 'DividerPreview',
@@ -33,6 +34,42 @@ export default {
       };
       };
     },
     },
   },
   },
+  methods: {
+    /**
+     * 获取无文本内容的数据结构,用于保存为个人模板时的样式模板
+     */
+    getNoTextContentData() {
+      let noTextContentData = JSON.parse(JSON.stringify(this.data));
+      const resetFieldMap = {
+        analysis_list: [],
+        answer_list: [],
+      };
+
+      Object.assign(noTextContentData, resetFieldMap);
+
+      noTextContentData.option_list.forEach((item) => {
+        item.content = '';
+        item.pinyin = '';
+        item.shiyi = '';
+        item.mark = getRandomNumber();
+        item.hz_info = [];
+        item.file_list = [];
+        item.file_id_list = [];
+        item.content_list = [];
+        item.is_common_pinyin = true;
+        item.audio_file_id = '';
+        item.is_margin = false;
+        item.is_show_ben = true;
+      });
+
+      if (noTextContentData.answer) {
+        noTextContentData.answer.answer_list = [];
+        noTextContentData.answer.reference_answer = '';
+      }
+
+      return noTextContentData;
+    },
+  },
 };
 };
 </script>
 </script>
 
 

+ 37 - 1
src/views/book/courseware/preview/components/label/LabelPreview.vue

@@ -20,6 +20,7 @@
 <script>
 <script>
 import { getLabelData } from '@/views/book/courseware/data/label';
 import { getLabelData } from '@/views/book/courseware/data/label';
 import PreviewMixin from '../common/PreviewMixin';
 import PreviewMixin from '../common/PreviewMixin';
+import { getRandomNumber } from '@/utils';
 
 
 export default {
 export default {
   name: 'LabelPreview',
   name: 'LabelPreview',
@@ -29,7 +30,42 @@ export default {
       data: getLabelData(),
       data: getLabelData(),
     };
     };
   },
   },
-  methods: {},
+  methods: {
+    /**
+     * 获取无文本内容的数据结构,用于保存为个人模板时的样式模板
+     */
+    getNoTextContentData() {
+      let noTextContentData = JSON.parse(JSON.stringify(this.data));
+      const resetFieldMap = {
+        analysis_list: [],
+        answer_list: [],
+      };
+
+      Object.assign(noTextContentData, resetFieldMap);
+
+      noTextContentData.option_list.forEach((item) => {
+        item.content = '';
+        item.pinyin = '';
+        item.shiyi = '';
+        item.mark = getRandomNumber();
+        item.hz_info = [];
+        item.file_list = [];
+        item.file_id_list = [];
+        item.content_list = [];
+        item.is_common_pinyin = true;
+        item.audio_file_id = '';
+        item.is_margin = false;
+        item.is_show_ben = true;
+      });
+
+      if (noTextContentData.answer) {
+        noTextContentData.answer.answer_list = [];
+        noTextContentData.answer.reference_answer = '';
+      }
+
+      return noTextContentData;
+    },
+  },
 };
 };
 </script>
 </script>
 
 

+ 36 - 0
src/views/book/courseware/preview/components/picture/PicturePreview.vue

@@ -66,6 +66,7 @@
 <script>
 <script>
 import { getPictureData } from '@/views/book/courseware/data/picture';
 import { getPictureData } from '@/views/book/courseware/data/picture';
 import PreviewMixin from '../common/PreviewMixin';
 import PreviewMixin from '../common/PreviewMixin';
+import { getRandomNumber } from '@/utils';
 
 
 export default {
 export default {
   name: 'PicturePreview',
   name: 'PicturePreview',
@@ -255,6 +256,41 @@ export default {
         }
         }
       });
       });
     },
     },
+
+    /**
+     * 获取无文本内容的数据结构,用于保存为个人模板时的样式模板
+     */
+    getNoTextContentData() {
+      let noTextContentData = JSON.parse(JSON.stringify(this.data));
+      const resetFieldMap = {
+        analysis_list: [],
+        answer_list: [],
+      };
+
+      Object.assign(noTextContentData, resetFieldMap);
+
+      noTextContentData.option_list.forEach((item) => {
+        item.content = '';
+        item.pinyin = '';
+        item.shiyi = '';
+        item.mark = getRandomNumber();
+        item.hz_info = [];
+        item.file_list = [];
+        item.file_id_list = [];
+        item.content_list = [];
+        item.is_common_pinyin = true;
+        item.audio_file_id = '';
+        item.is_margin = false;
+        item.is_show_ben = true;
+      });
+
+      if (noTextContentData.answer) {
+        noTextContentData.answer.answer_list = [];
+        noTextContentData.answer.reference_answer = '';
+      }
+
+      return noTextContentData;
+    },
   },
   },
 };
 };
 </script>
 </script>

+ 36 - 0
src/views/book/courseware/preview/components/rich_text/RichTextPreview.vue

@@ -58,6 +58,7 @@ import PreviewMixin from '../common/PreviewMixin';
 import { isEnable } from '@/views/book/courseware/data/common';
 import { isEnable } from '@/views/book/courseware/data/common';
 import PinyinText from '@/components/PinyinText.vue';
 import PinyinText from '@/components/PinyinText.vue';
 import AudioPlay from '../character_base/components/AudioPlay.vue';
 import AudioPlay from '../character_base/components/AudioPlay.vue';
+import { getRandomNumber } from '@/utils';
 
 
 export default {
 export default {
   name: 'RichTextPreview',
   name: 'RichTextPreview',
@@ -119,6 +120,41 @@ export default {
         }, 800);
         }, 800);
       });
       });
     },
     },
+
+    /**
+     * 获取无文本内容的数据结构,用于保存为个人模板时的样式模板
+     */
+    getNoTextContentData() {
+      let noTextContentData = JSON.parse(JSON.stringify(this.data));
+      const resetFieldMap = {
+        analysis_list: [],
+        answer_list: [],
+      };
+
+      Object.assign(noTextContentData, resetFieldMap);
+
+      noTextContentData.option_list.forEach((item) => {
+        item.content = '';
+        item.pinyin = '';
+        item.shiyi = '';
+        item.mark = getRandomNumber();
+        item.hz_info = [];
+        item.file_list = [];
+        item.file_id_list = [];
+        item.content_list = [];
+        item.is_common_pinyin = true;
+        item.audio_file_id = '';
+        item.is_margin = false;
+        item.is_show_ben = true;
+      });
+
+      if (noTextContentData.answer) {
+        noTextContentData.answer.answer_list = [];
+        noTextContentData.answer.reference_answer = '';
+      }
+
+      return noTextContentData;
+    },
   },
   },
 };
 };
 </script>
 </script>

+ 36 - 0
src/views/book/courseware/preview/components/video/VideoPreview.vue

@@ -60,6 +60,7 @@
 import { getVideoData } from '@/views/book/courseware/data/video';
 import { getVideoData } from '@/views/book/courseware/data/video';
 import PreviewMixin from '../common/PreviewMixin';
 import PreviewMixin from '../common/PreviewMixin';
 import VideoPlay from '../common/VideoPlay.vue';
 import VideoPlay from '../common/VideoPlay.vue';
+import { getRandomNumber } from '@/utils';
 
 
 export default {
 export default {
   name: 'VideoPreview',
   name: 'VideoPreview',
@@ -282,6 +283,41 @@ export default {
         this.translateY = newY;
         this.translateY = newY;
       }
       }
     },
     },
+
+    /**
+     * 获取无文本内容的数据结构,用于保存为个人模板时的样式模板
+     */
+    getNoTextContentData() {
+      let noTextContentData = JSON.parse(JSON.stringify(this.data));
+      const resetFieldMap = {
+        analysis_list: [],
+        answer_list: [],
+      };
+
+      Object.assign(noTextContentData, resetFieldMap);
+
+      noTextContentData.option_list.forEach((item) => {
+        item.content = '';
+        item.pinyin = '';
+        item.shiyi = '';
+        item.mark = getRandomNumber();
+        item.hz_info = [];
+        item.file_list = [];
+        item.file_id_list = [];
+        item.content_list = [];
+        item.is_common_pinyin = true;
+        item.audio_file_id = '';
+        item.is_margin = false;
+        item.is_show_ben = true;
+      });
+
+      if (noTextContentData.answer) {
+        noTextContentData.answer.answer_list = [];
+        noTextContentData.answer.reference_answer = '';
+      }
+
+      return noTextContentData;
+    },
   },
   },
 };
 };
 </script>
 </script>