|
|
@@ -198,9 +198,7 @@
|
|
|
}}</span>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
- <p class="tips">
|
|
|
- 一到四声分别用数字1-4表示。拼音间用空格隔开,儿化音用_代替空格,如“骨朵儿”输入“gu1 duo3_er”。
|
|
|
- </p>
|
|
|
+ <p class="tips">一到四声分别用数字1-4表示。拼音间用空格隔开,儿化音输入r,如“活儿”输入“huor2”。</p>
|
|
|
<div class="btn-box">
|
|
|
<el-button type="info" size="small" @click="cancleDialog">取消</el-button>
|
|
|
<el-button type="primary" size="small" @click="surePinyin">保存</el-button>
|
|
|
@@ -491,82 +489,20 @@ export default {
|
|
|
},
|
|
|
// 解析输入内容
|
|
|
handleChangeContent() {
|
|
|
- this.loading = true;
|
|
|
- this.data.detail = [];
|
|
|
if (this.data.content.trim()) {
|
|
|
- let contentArr = this.data.content.split('\n');
|
|
|
- let textList = [];
|
|
|
- let detailItem = {
|
|
|
- paraIndex: 0,
|
|
|
- para: '',
|
|
|
- sentences: [],
|
|
|
- segList: [],
|
|
|
- seg_words: [],
|
|
|
- wordsList: [],
|
|
|
- timeList: [],
|
|
|
- isTitle: false,
|
|
|
- sentencesEn: [],
|
|
|
- paraAlign: this.articleAttrib
|
|
|
- ? this.articleAttrib.align === 'RIGHT'
|
|
|
- ? 'right'
|
|
|
- : this.articleAttrib.align === 'MIDDLE'
|
|
|
- ? 'center'
|
|
|
- : 'left'
|
|
|
- : 'left',
|
|
|
- remark: {
|
|
|
- chs: '',
|
|
|
- en: '',
|
|
|
- heightNumber: null,
|
|
|
- img_list: [],
|
|
|
- widthNumber: null,
|
|
|
- chsBg: '#988ed6',
|
|
|
- enBg: '#fff',
|
|
|
- },
|
|
|
- sourceList: [],
|
|
|
- sourcePosition: 'after',
|
|
|
- heightNumber: null,
|
|
|
- widthNumber: null,
|
|
|
- };
|
|
|
- // 分段
|
|
|
- contentArr.forEach((item, index) => {
|
|
|
- if (item.trim()) {
|
|
|
- detailItem.para = item;
|
|
|
- detailItem.paraIndex = index;
|
|
|
- this.data.detail.push(JSON.parse(JSON.stringify(detailItem)));
|
|
|
-
|
|
|
- let str = Base64.encode(item);
|
|
|
- textList.push(str);
|
|
|
- }
|
|
|
- });
|
|
|
- BatchSegContent({
|
|
|
- text: this.data.content,
|
|
|
- is_build_pinyin: 'true',
|
|
|
- is_custom_fc: 'false',
|
|
|
- is_vocabulary_pinyin_lt: 'true',
|
|
|
- is_fill_punctuation_mark: 'true',
|
|
|
- })
|
|
|
- .then((res) => {
|
|
|
- this.loading = false;
|
|
|
- if (res.status === 1) {
|
|
|
- res.paragraph_list.forEach((item, index) => {
|
|
|
- let sentenceList = []; // 句子按段数组
|
|
|
- let segList = []; // 句子分词结果
|
|
|
- item.forEach((items) => {
|
|
|
- let sentence = items.reduce((acc, itemss) => `${acc + itemss.text}`, '');
|
|
|
- let seg = items.map((itemss) => itemss.text);
|
|
|
- sentenceList.push(sentence);
|
|
|
- segList.push(seg);
|
|
|
- });
|
|
|
- this.data.detail[index].sentences = sentenceList;
|
|
|
- this.data.detail[index].segList = segList;
|
|
|
- this.setWordsList(item, index);
|
|
|
- });
|
|
|
- this.handleSenWord();
|
|
|
- }
|
|
|
+ if (this.data.detail.length === 0) {
|
|
|
+ this.handleResetSet();
|
|
|
+ } else {
|
|
|
+ this.$confirm('重新生成分词会重置课文内拼音、气泡、字幕和图片视频附件,确定执行此操作吗?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning',
|
|
|
})
|
|
|
- .catch(() => {
|
|
|
- this.loading = false;
|
|
|
- });
|
|
|
+ .then(() => {
|
|
|
+ this.handleResetSet();
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ }
|
|
|
|
|
|
// 分句
|
|
|
// let sentenceList = []; // 句子按段数组
|
|
|
@@ -604,6 +540,84 @@ export default {
|
|
|
// });
|
|
|
}
|
|
|
},
|
|
|
+ // 重置分词结构
|
|
|
+ handleResetSet() {
|
|
|
+ this.loading = true;
|
|
|
+ this.data.detail = [];
|
|
|
+ let contentArr = this.data.content.split('\n');
|
|
|
+ let textList = [];
|
|
|
+ let detailItem = {
|
|
|
+ paraIndex: 0,
|
|
|
+ para: '',
|
|
|
+ sentences: [],
|
|
|
+ segList: [],
|
|
|
+ seg_words: [],
|
|
|
+ wordsList: [],
|
|
|
+ timeList: [],
|
|
|
+ isTitle: false,
|
|
|
+ sentencesEn: [],
|
|
|
+ paraAlign: this.articleAttrib
|
|
|
+ ? this.articleAttrib.align === 'RIGHT'
|
|
|
+ ? 'right'
|
|
|
+ : this.articleAttrib.align === 'MIDDLE'
|
|
|
+ ? 'center'
|
|
|
+ : 'left'
|
|
|
+ : 'left',
|
|
|
+ remark: {
|
|
|
+ chs: '',
|
|
|
+ en: '',
|
|
|
+ heightNumber: null,
|
|
|
+ img_list: [],
|
|
|
+ widthNumber: null,
|
|
|
+ chsBg: '#988ed6',
|
|
|
+ enBg: '#fff',
|
|
|
+ },
|
|
|
+ sourceList: [],
|
|
|
+ sourcePosition: 'after',
|
|
|
+ heightNumber: null,
|
|
|
+ widthNumber: null,
|
|
|
+ };
|
|
|
+ // 分段
|
|
|
+ contentArr.forEach((item, index) => {
|
|
|
+ if (item.trim()) {
|
|
|
+ detailItem.para = item;
|
|
|
+ detailItem.paraIndex = index;
|
|
|
+ this.data.detail.push(JSON.parse(JSON.stringify(detailItem)));
|
|
|
+
|
|
|
+ let str = Base64.encode(item);
|
|
|
+ textList.push(str);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ BatchSegContent({
|
|
|
+ text: this.data.content,
|
|
|
+ is_build_pinyin: 'true',
|
|
|
+ is_custom_fc: 'false',
|
|
|
+ is_vocabulary_pinyin_lt: 'true',
|
|
|
+ is_fill_punctuation_mark: 'true',
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ this.loading = false;
|
|
|
+ if (res.status === 1) {
|
|
|
+ res.paragraph_list.forEach((item, index) => {
|
|
|
+ let sentenceList = []; // 句子按段数组
|
|
|
+ let segList = []; // 句子分词结果
|
|
|
+ item.forEach((items) => {
|
|
|
+ let sentence = items.reduce((acc, itemss) => `${acc + itemss.text}`, '');
|
|
|
+ let seg = items.map((itemss) => itemss.text);
|
|
|
+ sentenceList.push(sentence);
|
|
|
+ segList.push(seg);
|
|
|
+ });
|
|
|
+ this.data.detail[index].sentences = sentenceList;
|
|
|
+ this.data.detail[index].segList = segList;
|
|
|
+ this.setWordsList(item, index);
|
|
|
+ });
|
|
|
+ this.handleSenWord();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
// 处理句子和词的关系
|
|
|
handleSenWord() {
|
|
|
this.data.sentence_list_mp = [];
|