|
@@ -27,8 +27,8 @@
|
|
|
<label class="subtitle">内容</label>
|
|
|
<ul>
|
|
|
<li v-for="(item, i) in data.option_list" :key="i" class="content-item">
|
|
|
- <span class="question-number" @dblclick="changeOptionType(data)">
|
|
|
- {{ computedQuestionNumber(i, data.option_number_show_mode) }}.
|
|
|
+ <span class="question-number" title="双击切换序号类型" @dblclick="changeOptionType(data)">
|
|
|
+ {{ computedQuestionNumber(i, data.option_number_show_mode) }}
|
|
|
</span>
|
|
|
<el-input v-model="item.content" placeholder="输入内容" @blur="handleItemAnswer(item)" />
|
|
|
<UploadAudio
|
|
@@ -136,7 +136,7 @@ import QuestionMixin from '@/views/exercise_questions/create/components/common/Q
|
|
|
import UploadAudio from '../common/UploadAudio.vue';
|
|
|
import SoundRecord from '../common/SoundRecord.vue';
|
|
|
|
|
|
-import { changeOptionType } from '@/views/exercise_questions/data/common';
|
|
|
+import { changeOptionType, addTone } from '@/views/exercise_questions/data/common';
|
|
|
import {
|
|
|
getOption,
|
|
|
ChooseToneData,
|
|
@@ -161,19 +161,6 @@ export default {
|
|
|
toneTypeList,
|
|
|
data: JSON.parse(JSON.stringify(ChooseToneData)),
|
|
|
matically_pinyin_obj: {}, // 存放转成声调的拼音
|
|
|
- tone_data: [
|
|
|
- ['ā', 'á', 'ǎ', 'à', 'a'],
|
|
|
- ['ō', 'ó', 'ǒ', 'ò', 'o'],
|
|
|
- ['ē', 'é', 'ě', 'è', 'e'],
|
|
|
- ['ī', 'í', 'ǐ', 'ì', 'i'],
|
|
|
- ['ū', 'ú', 'ǔ', 'ù', 'u'],
|
|
|
- ['ǖ', 'ǘ', 'ǚ', 'ǜ', 'ü'],
|
|
|
- ['Ā', 'Á', 'Â', 'À', 'A'],
|
|
|
- ['Ō', 'Ó', 'Ô', 'Ò', 'O'],
|
|
|
- ['Ē', 'É', 'Ê', 'È', 'E'],
|
|
|
- ['Ī', 'Í', 'Î', 'Ì', 'I'],
|
|
|
- ['Ū', 'Ú', 'Û', 'Ù', 'U'],
|
|
|
- ],
|
|
|
res_arr: [],
|
|
|
};
|
|
|
},
|
|
@@ -217,7 +204,7 @@ export default {
|
|
|
});
|
|
|
this.matically_pinyin_obj[mark] = this.res_arr
|
|
|
.map((item) =>
|
|
|
- item.map(({ number, con }) => (number && con ? this.addTone(Number(number), con) : number || con || '')),
|
|
|
+ item.map(({ number, con }) => (number && con ? addTone(Number(number), con) : number || con || '')),
|
|
|
)
|
|
|
.filter((item) => item.length > 0)
|
|
|
.join(',');
|
|
@@ -243,33 +230,6 @@ export default {
|
|
|
|
|
|
this.res_arr.push(numList.length === 0 ? [{ con: valItem }] : numList);
|
|
|
},
|
|
|
- addTone(number, con) {
|
|
|
- const zmList = ['a', 'o', 'e', 'i', 'u', 'v', 'A', 'O', 'E', 'I', 'U'];
|
|
|
- let cons = con;
|
|
|
- if (number) {
|
|
|
- for (let i = 0; i < zmList.length; i++) {
|
|
|
- let zm = zmList[i];
|
|
|
- if (con.includes(zm)) {
|
|
|
- let zm2 = this.tone_data[i][number - 1];
|
|
|
- if (con.includes('iu')) {
|
|
|
- zm2 = this.tone_data[4][number - 1];
|
|
|
- cons = con.replace('u', zm2);
|
|
|
- } else if (con.includes('ui')) {
|
|
|
- zm2 = this.tone_data[3][number - 1];
|
|
|
- cons = con.replace('i', zm2);
|
|
|
- } else if (/yv|jv|qv|xv/.test(con)) {
|
|
|
- zm2 = this.tone_data[4][number - 1];
|
|
|
- cons = con.replace('v', zm2);
|
|
|
- } else {
|
|
|
- cons = con.replace(zm, zm2);
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return cons;
|
|
|
- },
|
|
|
// 答案
|
|
|
handleItemAnswer(item) {
|
|
|
const index = this.data.answer.answer_list.findIndex((items) => items.mark === item.mark);
|