|
@@ -5,7 +5,11 @@ import RichText from '@/components/RichText.vue';
|
|
|
import MultilingualFill from '@/views/book/components/MultilingualFill.vue';
|
|
|
|
|
|
import { displayList, viewMethodList, isEnable } from '@/views/book/courseware/data/common';
|
|
|
-import { ContentSaveCoursewareComponentContent, ContentGetCoursewareComponentContent } from '@/api/book';
|
|
|
+import {
|
|
|
+ ContentSaveCoursewareComponentContent,
|
|
|
+ ContentGetCoursewareComponentContent,
|
|
|
+ CrateParsedTextInfo_Pinyin,
|
|
|
+} from '@/api/book';
|
|
|
|
|
|
const mixin = {
|
|
|
data() {
|
|
@@ -137,6 +141,92 @@ const mixin = {
|
|
|
handleMultilingualTranslation(multilingual) {
|
|
|
this.data.multilingual = multilingual;
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 获取并设置拼音解析文本
|
|
|
+ * @param {String} text
|
|
|
+ * @param {Number} i
|
|
|
+ * @param {Number} j
|
|
|
+ */
|
|
|
+ crateParsedTextInfoPinyin(text, i = -1, j = -1) {
|
|
|
+ let data = null;
|
|
|
+ if (i === -1) {
|
|
|
+ data = this.data;
|
|
|
+ } else if (i >= 0 && j === -1) {
|
|
|
+ data = this.data.option_list[i];
|
|
|
+ } else if (i >= 0 && j >= 0) {
|
|
|
+ data = this.data.option_list[i][j];
|
|
|
+ }
|
|
|
+ if (text === '') {
|
|
|
+ data.pinyin_proofread_word_list = [];
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ data.paragraph_list_parameter.text = text;
|
|
|
+
|
|
|
+ CrateParsedTextInfo_Pinyin({
|
|
|
+ ...data.paragraph_list_parameter,
|
|
|
+ is_first_sentence_first_hz_pinyin_first_char_upper_case:
|
|
|
+ this.data.property.is_first_sentence_first_hz_pinyin_first_char_upper_case,
|
|
|
+ }).then(({ parsed_text }) => {
|
|
|
+ if (parsed_text) {
|
|
|
+ // 合并 activeTextStyle
|
|
|
+ const mergedData = parsed_text.paragraph_list.map((outerArr, i) =>
|
|
|
+ outerArr.map((innerArr, j) =>
|
|
|
+ innerArr.map((newItem, k) => ({
|
|
|
+ ...newItem,
|
|
|
+ // 如果 originalItem 有 activeTextStyle,就合并到 newItem
|
|
|
+ ...(data.paragraph_list?.[i]?.[j]?.[k]?.activeTextStyle && {
|
|
|
+ activeTextStyle: data.paragraph_list[i][j][k].activeTextStyle,
|
|
|
+ }),
|
|
|
+ })),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ data.paragraph_list = mergedData;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 填充校对后的拼音
|
|
|
+ * @param {Object} param0 拼音参数
|
|
|
+ * @param {Number} col 列索引
|
|
|
+ * @param {Number} row 行索引
|
|
|
+ */
|
|
|
+ fillCorrectPinyin({ selectContent: { text, pinyin, activeTextStyle }, i, j, k }, row = -1, col = -1) {
|
|
|
+ let data = null;
|
|
|
+ if (row === -1) {
|
|
|
+ data = this.data.paragraph_list_parameter;
|
|
|
+ } else if (row >= 0 && col === -1) {
|
|
|
+ data = this.data.option_list[row].paragraph_list_parameter;
|
|
|
+ } else if (row >= 0 && col >= 0) {
|
|
|
+ data = this.data.option_list[row][col].paragraph_list_parameter;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!Array.isArray(data.pinyin_proofread_word_list)) {
|
|
|
+ data.pinyin_proofread_word_list = [];
|
|
|
+ }
|
|
|
+
|
|
|
+ data.pinyin_proofread_word_list.push({
|
|
|
+ paragraph_index: i,
|
|
|
+ sentence_index: j,
|
|
|
+ word_index: k,
|
|
|
+ word: text,
|
|
|
+ pinyin,
|
|
|
+ });
|
|
|
+
|
|
|
+ let listItem = null;
|
|
|
+ if (row === -1) {
|
|
|
+ listItem = this.data.paragraph_list?.[i]?.[j]?.[k];
|
|
|
+ } else if (row >= 0 && col === -1) {
|
|
|
+ listItem = this.data.option_list?.[row]?.paragraph_list?.[i]?.[j]?.[k];
|
|
|
+ } else if (row >= 0 && col >= 0) {
|
|
|
+ listItem = this.data.option_list?.[row]?.[col]?.paragraph_list?.[i]?.[j]?.[k];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (listItem) {
|
|
|
+ if (pinyin) listItem.pinyin = pinyin;
|
|
|
+ if (activeTextStyle) listItem.activeTextStyle = activeTextStyle;
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
|