Browse Source

智能识别

natasha 1 year ago
parent
commit
f43627012e

+ 32 - 1
src/views/exercise_questions/create/components/exercises/ChineseQuestion.vue

@@ -30,7 +30,7 @@
             <el-input v-model="item.content" :placeholder="'输入汉字或词汇'" @blur="handleChineseStrokes(item, i)" />
             <el-input
               v-model="item.pinyin"
-              :placeholder="data.property.learn_type === 'dictation' ? '拼音间用空格隔开' : '输入拼音'"
+              :placeholder="'拼音间用空格隔开'"
               @blur="handleSplitPy(item)"
               @change="changePinyin(item)"
             />
@@ -154,6 +154,7 @@ import UploadAudio from '../common/UploadAudio.vue';
 import SoundRecord from '../common/SoundRecord.vue';
 import { GetStaticResources } from '@/api/app';
 import { changeOptionType, handleInputNumber } from '@/views/exercise_questions/data/common';
+import { getRandomNumber } from '@/utils/index';
 
 import {
   chineseData,
@@ -319,6 +320,36 @@ export default {
         item.audio_file_id = '';
       }
     },
+    /**
+     * 智能识别
+     * @param {String} text 识别数据
+     */
+    recognition(text) {
+      let arr = text
+        .split(/[\r\n]/)
+        .map((item) => item.trim())
+        .filter((item) => item);
+
+      if (arr.length > 0) {
+        this.data.stem = arr[0];
+        this.data.option_list = [];
+        arr.slice(1).map((content, index) => {
+          let content_item = content.split('&&');
+          this.data.option_list.push({
+            content: content_item[0] ? content_item[0] : '',
+            mark: getRandomNumber(),
+            audio_file_id: '',
+            pinyin: content_item[1] ? content_item[1] : '',
+            pinyin_item_list: [],
+            definition: content_item[2] ? content_item[2] : '',
+            collocation: content_item[3] ? content_item[3] : '',
+            hz_strokes_list: [],
+          });
+          this.handleSplitPy(this.data.option_list[index]);
+          this.handleChineseStrokes(this.data.option_list[index], index);
+        });
+      }
+    },
   },
 };
 </script>

+ 15 - 0
src/views/exercise_questions/create/components/exercises/ChooseToneQuestion.vue

@@ -315,6 +315,21 @@ export default {
         item.audio_file_id = '';
       }
     },
+    /**
+     * 智能识别
+     * @param {String} text 识别数据
+     */
+    recognition(text) {
+      let arr = text
+        .split(/[\r\n]/)
+        .map((item) => item.trim())
+        .filter((item) => item);
+
+      if (arr.length > 0) {
+        this.data.stem = arr[0];
+        this.data.option_list = arr.slice(1).map((content) => getOption(content));
+      }
+    },
   },
 };
 </script>

+ 1 - 1
src/views/exercise_questions/create/components/exercises/RepeatQuestion.vue

@@ -162,7 +162,7 @@ export default {
   methods: {
     /**
      * 智能识别
-     * @param {string} text 识别数据
+     * @param {String} text 识别数据
      */
     recognition(text) {
       let arr = text

+ 15 - 0
src/views/exercise_questions/create/components/exercises/SortQuestion.vue

@@ -117,6 +117,21 @@ export default {
     addOption() {
       this.data.option_list.push(getOption());
     },
+    /**
+     * 智能识别
+     * @param {String} text 识别数据
+     */
+    recognition(text) {
+      let arr = text
+        .split(/[\r\n]/)
+        .map((item) => item.trim())
+        .filter((item) => item);
+
+      if (arr.length > 0) {
+        this.data.stem = arr[0];
+        this.data.option_list = arr.slice(1).map((content) => getOption(content));
+      }
+    },
   },
 };
 </script>

+ 14 - 0
src/views/exercise_questions/create/components/exercises/TalkPictureQuestion.vue

@@ -169,6 +169,20 @@ export default {
       this.data.option_list[this.data.option_list.length - 1].picture_file_id = file_id;
       this.$set(this.pic_list, file_id, file_url);
     },
+    /**
+     * 智能识别
+     * @param {String} text 识别数据
+     */
+    recognition(text) {
+      let arr = text
+        .split(/[\r\n]/)
+        .map((item) => item.trim())
+        .filter((item) => item);
+
+      if (arr.length > 0) {
+        this.data.stem = arr[0];
+      }
+    },
   },
 };
 </script>

+ 14 - 0
src/views/exercise_questions/create/components/exercises/WordCardQuestion.vue

@@ -344,6 +344,20 @@ export default {
         item.audio_file_id = '';
       }
     },
+    /**
+     * 智能识别
+     * @param {String} text 识别数据
+     */
+    recognition(text) {
+      let arr = text
+        .split(/[\r\n]/)
+        .map((item) => item.trim())
+        .filter((item) => item);
+
+      if (arr.length > 0) {
+        this.data.stem = arr[0];
+      }
+    },
   },
 };
 </script>

+ 17 - 0
src/views/exercise_questions/create/components/exercises/WritePictureQuestion.vue

@@ -179,6 +179,23 @@ export default {
       this.data.option_list[this.data.option_list.length - 1].picture_file_id = file_id;
       this.$set(this.pic_list, file_id, file_url);
     },
+    /**
+     * 智能识别
+     * @param {String} text 识别数据
+     */
+    recognition(text) {
+      let arr = text
+        .split(/[\r\n]/)
+        .map((item) => item.trim())
+        .filter((item) => item);
+
+      if (arr.length > 0) {
+        this.data.stem = arr[0];
+        this.data.description = arr[2] ? arr[2] : '';
+        this.data.article = arr[1] ? arr[1] : '';
+        this.data.sample_text = arr[3] ? arr[3] : '';
+      }
+    },
   },
 };
 </script>

+ 19 - 1
src/views/exercise_questions/create/components/exercises/WriteQuestion.vue

@@ -106,7 +106,25 @@ export default {
       data: JSON.parse(JSON.stringify(writeData)),
     };
   },
-  methods: {},
+  methods: {
+    /**
+     * 智能识别
+     * @param {String} text 识别数据
+     */
+    recognition(text) {
+      let arr = text
+        .split(/[\r\n]/)
+        .map((item) => item.trim())
+        .filter((item) => item);
+
+      if (arr.length > 0) {
+        this.data.stem = arr[0];
+        this.data.description = arr[2] ? arr[2] : '';
+        this.data.article = arr[1] ? arr[1] : '';
+        this.data.sample_text = arr[3] ? arr[3] : '';
+      }
+    },
+  },
 };
 </script>