|
@@ -6,7 +6,7 @@
|
|
|
:class="[
|
|
|
themeColor.length === 0 || themeColor === 'red'
|
|
|
? 'serial-number'
|
|
|
- : `serial-number-${themeColor}`
|
|
|
+ : `serial-number-${themeColor}`,
|
|
|
]"
|
|
|
>
|
|
|
{{ curQue.voiceMatrix.audioSerialNumber }}
|
|
@@ -17,12 +17,12 @@
|
|
|
class="audio-simple-image"
|
|
|
:src="playing ? voicePlaySrc : voicePauseSrc"
|
|
|
@click="playAudio"
|
|
|
- >
|
|
|
+ />
|
|
|
<span
|
|
|
:class="[
|
|
|
'Repeat-16',
|
|
|
'audio-simple-repeat',
|
|
|
- isRepeat ? '' : 'disabled'
|
|
|
+ isRepeat ? '' : 'disabled',
|
|
|
]"
|
|
|
@click="isRepeat = !isRepeat"
|
|
|
/>
|
|
@@ -45,7 +45,7 @@
|
|
|
v-if="curQue.voiceMatrix.matrix.length > 0"
|
|
|
class="matrix"
|
|
|
:style="{
|
|
|
- 'grid-template': `36px repeat(${curQue.voiceMatrix.matrix.length}, auto) minmax(36px, 1fr) / 36px repeat(${curQue.voiceMatrix.matrix[0].length}, auto) minmax(36px, 1fr)`
|
|
|
+ 'grid-template': `36px repeat(${curQue.voiceMatrix.matrix.length}, auto) minmax(36px, 1fr) / 36px repeat(${curQue.voiceMatrix.matrix[0].length}, auto) minmax(36px, 1fr)`,
|
|
|
}"
|
|
|
@mouseleave="clearSelectCell"
|
|
|
>
|
|
@@ -57,10 +57,10 @@
|
|
|
:class="[
|
|
|
'matrix-top',
|
|
|
curQue.voiceMatrix.columnSelection &&
|
|
|
- (selectColumn === i ||
|
|
|
- (selectedLine.type === 'column' && selectedLine.index === i))
|
|
|
+ (selectColumn === i ||
|
|
|
+ (selectedLine.type === 'column' && selectedLine.index === i))
|
|
|
? 'read'
|
|
|
- : ''
|
|
|
+ : '',
|
|
|
]"
|
|
|
@mouseenter="checkboxMouseenter(selectColumn === i, 'column')"
|
|
|
>
|
|
@@ -70,13 +70,13 @@
|
|
|
"
|
|
|
v-show="
|
|
|
selectColumn === i ||
|
|
|
- (selectedLine.type === 'column' && selectedLine.index === i)
|
|
|
+ (selectedLine.type === 'column' && selectedLine.index === i)
|
|
|
"
|
|
|
:class="[
|
|
|
`matrix-checkbox-row-${themeColor}`,
|
|
|
selectedLine.type === 'column' && selectedLine.index === i
|
|
|
? 'active'
|
|
|
- : ''
|
|
|
+ : '',
|
|
|
]"
|
|
|
@click="selectRowOrColumn(i, 'column')"
|
|
|
/>
|
|
@@ -90,10 +90,10 @@
|
|
|
:class="[
|
|
|
'column-wrapper',
|
|
|
curQue.voiceMatrix.rowSelection &&
|
|
|
- (selectRow === i ||
|
|
|
- (selectedLine.type === 'row' && selectedLine.index === i))
|
|
|
+ (selectRow === i ||
|
|
|
+ (selectedLine.type === 'row' && selectedLine.index === i))
|
|
|
? 'read'
|
|
|
- : ''
|
|
|
+ : '',
|
|
|
]"
|
|
|
@mouseenter="checkboxMouseenter(selectRow === i, 'row')"
|
|
|
>
|
|
@@ -101,13 +101,13 @@
|
|
|
v-if="curQue.voiceMatrix.rowSelection"
|
|
|
v-show="
|
|
|
selectRow === i ||
|
|
|
- (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
+ (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
"
|
|
|
:class="[
|
|
|
`matrix-checkbox-column-${themeColor}`,
|
|
|
selectedLine.type === 'row' && selectedLine.index === i
|
|
|
? 'active'
|
|
|
- : ''
|
|
|
+ : '',
|
|
|
]"
|
|
|
@click="selectRowOrColumn(i, 'row')"
|
|
|
/>
|
|
@@ -119,19 +119,19 @@
|
|
|
:class="[
|
|
|
'column-wrapper',
|
|
|
(curQue.voiceMatrix.rowSelection && selectRow === i) ||
|
|
|
- (curQue.voiceMatrix.columnSelection && selectColumn === j) ||
|
|
|
- (curQue.voiceMatrix.columnSelection &&
|
|
|
- selectedLine.type === 'column' &&
|
|
|
- selectedLine.index === j) ||
|
|
|
- (curQue.voiceMatrix.rowSelection &&
|
|
|
- selectedLine.type === 'row' &&
|
|
|
- selectedLine.index === i)
|
|
|
+ (curQue.voiceMatrix.columnSelection && selectColumn === j) ||
|
|
|
+ (curQue.voiceMatrix.columnSelection &&
|
|
|
+ selectedLine.type === 'column' &&
|
|
|
+ selectedLine.index === j) ||
|
|
|
+ (curQue.voiceMatrix.rowSelection &&
|
|
|
+ selectedLine.type === 'row' &&
|
|
|
+ selectedLine.index === i)
|
|
|
? 'read'
|
|
|
: '',
|
|
|
(i === 0 && curQue.voiceMatrix.firstLineHighlight) ||
|
|
|
- (j === row.length - 1 && curQue.voiceMatrix.lastColumnHighlight)
|
|
|
+ (j === row.length - 1 && curQue.voiceMatrix.lastColumnHighlight)
|
|
|
? `highlight-${themeColor}`
|
|
|
- : ''
|
|
|
+ : '',
|
|
|
]"
|
|
|
@mouseenter="matrixCellMouseenter(i, j, column.type)"
|
|
|
>
|
|
@@ -142,18 +142,18 @@
|
|
|
:class="[
|
|
|
column.text.length === 0 ? 'space' : `column-${themeColor}`,
|
|
|
(selectCell.row === i && selectCell.column === j) ||
|
|
|
- (selectedLine.type === 'column' &&
|
|
|
- selectedLine.index === j) ||
|
|
|
- (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
+ (selectedLine.type === 'column' &&
|
|
|
+ selectedLine.index === j) ||
|
|
|
+ (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
? 'selected'
|
|
|
: '',
|
|
|
playing &&
|
|
|
- column.lrc_data.begin_time / 1000 <= curTime &&
|
|
|
- (curTime < column.lrc_data.end_time / 1000 ||
|
|
|
- column.lrc_data.end_time === -1)
|
|
|
+ column.lrc_data.begin_time / 1000 <= curTime &&
|
|
|
+ (curTime < column.lrc_data.end_time / 1000 ||
|
|
|
+ column.lrc_data.end_time === -1)
|
|
|
? 'playing'
|
|
|
: '',
|
|
|
- column.isTitle ? 'title' : ''
|
|
|
+ column.isTitle ? 'title' : '',
|
|
|
]"
|
|
|
@click="matrixCellClick(i, j)"
|
|
|
>
|
|
@@ -167,7 +167,7 @@
|
|
|
'connection',
|
|
|
i === 0 && curQue.voiceMatrix.firstLineHighlight
|
|
|
? `highlight-bc-${themeColor}`
|
|
|
- : ''
|
|
|
+ : '',
|
|
|
]"
|
|
|
/>
|
|
|
<!-- 分词 -->
|
|
@@ -177,21 +177,21 @@
|
|
|
:class="[
|
|
|
`sentence-${themeColor}`,
|
|
|
(selectCell.row === i && selectCell.column === j) ||
|
|
|
- (selectedLine.type === 'column' &&
|
|
|
- selectedLine.index === j) ||
|
|
|
- (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
+ (selectedLine.type === 'column' &&
|
|
|
+ selectedLine.index === j) ||
|
|
|
+ (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
? 'selected'
|
|
|
: '',
|
|
|
playing &&
|
|
|
- column.lrc_data.begin_time / 1000 <= curTime &&
|
|
|
- (curTime < column.lrc_data.end_time / 1000 ||
|
|
|
- column.lrc_data.end_time === -1)
|
|
|
+ column.lrc_data.begin_time / 1000 <= curTime &&
|
|
|
+ (curTime < column.lrc_data.end_time / 1000 ||
|
|
|
+ column.lrc_data.end_time === -1)
|
|
|
? 'playing'
|
|
|
: '',
|
|
|
- column.isTitle ? 'title' : ''
|
|
|
+ column.isTitle ? 'title' : '',
|
|
|
]"
|
|
|
:style="{
|
|
|
- 'grid-template-columns': `repeat(${column.sentence_data.wordsList.length}, auto)`
|
|
|
+ 'grid-template-columns': `repeat(${column.sentence_data.wordsList.length}, auto)`,
|
|
|
}"
|
|
|
@click="matrixCellClick(i, j)"
|
|
|
>
|
|
@@ -199,13 +199,11 @@
|
|
|
v-for="({ pinyin, chs }, w) in column.sentence_data.wordsList"
|
|
|
>
|
|
|
<span
|
|
|
- :key="
|
|
|
- `${
|
|
|
- column.sentence_data.pyPosition === 'top'
|
|
|
- ? 'pinyin'
|
|
|
- : 'chs'
|
|
|
- }-${w}`
|
|
|
- "
|
|
|
+ :key="`${
|
|
|
+ column.sentence_data.pyPosition === 'top'
|
|
|
+ ? 'pinyin'
|
|
|
+ : 'chs'
|
|
|
+ }-${w}`"
|
|
|
:class="
|
|
|
column.sentence_data.pyPosition === 'top'
|
|
|
? 'pinyin'
|
|
@@ -221,13 +219,11 @@
|
|
|
v-for="({ pinyin, chs }, w) in column.sentence_data.wordsList"
|
|
|
>
|
|
|
<span
|
|
|
- :key="
|
|
|
- `${
|
|
|
- column.sentence_data.pyPosition === 'top'
|
|
|
- ? 'chs'
|
|
|
- : 'pinyin'
|
|
|
- }-${w}`
|
|
|
- "
|
|
|
+ :key="`${
|
|
|
+ column.sentence_data.pyPosition === 'top'
|
|
|
+ ? 'chs'
|
|
|
+ : 'pinyin'
|
|
|
+ }-${w}`"
|
|
|
:class="
|
|
|
column.sentence_data.pyPosition === 'top'
|
|
|
? 'chs'
|
|
@@ -247,18 +243,18 @@
|
|
|
:class="[
|
|
|
`pinyinEnglish-${themeColor}`,
|
|
|
(selectCell.row === i && selectCell.column === j) ||
|
|
|
- (selectedLine.type === 'column' &&
|
|
|
- selectedLine.index === j) ||
|
|
|
- (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
+ (selectedLine.type === 'column' &&
|
|
|
+ selectedLine.index === j) ||
|
|
|
+ (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
? 'selected'
|
|
|
: '',
|
|
|
playing &&
|
|
|
- column.lrc_data.begin_time / 1000 <= curTime &&
|
|
|
- (curTime < column.lrc_data.end_time / 1000 ||
|
|
|
- column.lrc_data.end_time === -1)
|
|
|
+ column.lrc_data.begin_time / 1000 <= curTime &&
|
|
|
+ (curTime < column.lrc_data.end_time / 1000 ||
|
|
|
+ column.lrc_data.end_time === -1)
|
|
|
? 'playing'
|
|
|
: '',
|
|
|
- column.isTitle ? 'title' : ''
|
|
|
+ column.isTitle ? 'title' : '',
|
|
|
]"
|
|
|
@click="matrixCellClick(i, j)"
|
|
|
>
|
|
@@ -278,18 +274,18 @@
|
|
|
:class="[
|
|
|
`textBrackets-${themeColor}`,
|
|
|
(selectCell.row === i && selectCell.column === j) ||
|
|
|
- (selectedLine.type === 'column' &&
|
|
|
- selectedLine.index === j) ||
|
|
|
- (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
+ (selectedLine.type === 'column' &&
|
|
|
+ selectedLine.index === j) ||
|
|
|
+ (selectedLine.type === 'row' && selectedLine.index === i)
|
|
|
? 'selected'
|
|
|
: '',
|
|
|
playing &&
|
|
|
- column.lrc_data.begin_time / 1000 <= curTime &&
|
|
|
- (curTime < column.lrc_data.end_time / 1000 ||
|
|
|
- column.lrc_data.end_time === -1)
|
|
|
+ column.lrc_data.begin_time / 1000 <= curTime &&
|
|
|
+ (curTime < column.lrc_data.end_time / 1000 ||
|
|
|
+ column.lrc_data.end_time === -1)
|
|
|
? 'playing'
|
|
|
: '',
|
|
|
- column.isTitle ? 'title' : ''
|
|
|
+ column.isTitle ? 'title' : '',
|
|
|
]"
|
|
|
@click="matrixCellClick(i, j)"
|
|
|
>
|
|
@@ -311,10 +307,10 @@
|
|
|
:key="`end-${i}`"
|
|
|
:class="[
|
|
|
curQue.voiceMatrix.rowSelection &&
|
|
|
- (selectRow === i ||
|
|
|
- (selectedLine.type === 'row' && selectedLine.index === i))
|
|
|
+ (selectRow === i ||
|
|
|
+ (selectedLine.type === 'row' && selectedLine.index === i))
|
|
|
? 'read'
|
|
|
- : ''
|
|
|
+ : '',
|
|
|
]"
|
|
|
@mouseenter="clearSelectCell"
|
|
|
/>
|
|
@@ -327,10 +323,10 @@
|
|
|
:class="[
|
|
|
'matrix-bottom',
|
|
|
curQue.voiceMatrix.columnSelection &&
|
|
|
- (selectColumn === i ||
|
|
|
- (selectedLine.type === 'column' && selectedLine.index === i))
|
|
|
+ (selectColumn === i ||
|
|
|
+ (selectedLine.type === 'column' && selectedLine.index === i))
|
|
|
? 'read'
|
|
|
- : ''
|
|
|
+ : '',
|
|
|
]"
|
|
|
@mouseenter="clearSelectCell"
|
|
|
/>
|
|
@@ -353,6 +349,7 @@
|
|
|
@handleParentPlay="pauseOtherAudio"
|
|
|
@sentPause="sentPause"
|
|
|
@handleWav="handleWav"
|
|
|
+ v-if="refresh"
|
|
|
/>
|
|
|
<audio-compare
|
|
|
:style="{ flex: 1 }"
|
|
@@ -400,15 +397,13 @@ export default {
|
|
|
AudioLine,
|
|
|
Soundrecord,
|
|
|
AudioCompare,
|
|
|
- VoiceFullscreen
|
|
|
+ VoiceFullscreen,
|
|
|
},
|
|
|
props: ["curQue", "themeColor", "TaskModel"],
|
|
|
data() {
|
|
|
return {
|
|
|
// 组件id
|
|
|
- cid: Math.random()
|
|
|
- .toString(36)
|
|
|
- .substr(2, 10),
|
|
|
+ cid: Math.random().toString(36).substr(2, 10),
|
|
|
isFull: false,
|
|
|
curTime: 0,
|
|
|
playing: false,
|
|
@@ -422,18 +417,19 @@ export default {
|
|
|
// 行、列选中
|
|
|
selectedLine: {
|
|
|
type: "",
|
|
|
- index: 0
|
|
|
+ index: 0,
|
|
|
},
|
|
|
// 点击选中
|
|
|
selectCell: {
|
|
|
row: -1,
|
|
|
- column: -1
|
|
|
+ column: -1,
|
|
|
},
|
|
|
isRepeat: false,
|
|
|
// 跟读所需属性
|
|
|
wavblob: null,
|
|
|
isRecord: false,
|
|
|
- matrixSelectLrc: null
|
|
|
+ matrixSelectLrc: null,
|
|
|
+ refresh: true,
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -467,7 +463,7 @@ export default {
|
|
|
type: type.length > 0 && index >= 0 ? type : "cell",
|
|
|
index,
|
|
|
row,
|
|
|
- column
|
|
|
+ column,
|
|
|
};
|
|
|
},
|
|
|
|
|
@@ -491,22 +487,39 @@ export default {
|
|
|
return require("../../../assets/NPC/full-screen-red.png");
|
|
|
}
|
|
|
return require(`../../../assets/NPC/full-screen-${themeColor}.png`);
|
|
|
- }
|
|
|
+ },
|
|
|
},
|
|
|
watch: {
|
|
|
hasSelectedCell() {
|
|
|
this.handleParentPlay();
|
|
|
- }
|
|
|
+ },
|
|
|
+ isFull: {
|
|
|
+ handler: function (newVal, oldVal) {
|
|
|
+ let _this = this;
|
|
|
+ _this.refresh = false;
|
|
|
+ if (!newVal) {
|
|
|
+ _this.$nextTick(() => {
|
|
|
+ // 重新渲染组件
|
|
|
+ _this.refresh = true;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ deep: true,
|
|
|
+ },
|
|
|
},
|
|
|
created() {
|
|
|
- Bus.$on("audioPause", id => {
|
|
|
- if (this.cid === id) return;
|
|
|
- if (this.$refs.luyin.microphoneStatus) this.$refs.luyin.microphone();
|
|
|
- this.handleParentPlay();
|
|
|
+ let _this = this;
|
|
|
+ Bus.$on("audioPause", (id) => {
|
|
|
+ if (_this.cid === id) return;
|
|
|
+ _this.$nextTick(() => {
|
|
|
+ console.log(_this.$refs.luyin);
|
|
|
+ if (_this.$refs.luyin.microphoneStatus) _this.$refs.luyin.microphone();
|
|
|
+ _this.handleParentPlay();
|
|
|
+ });
|
|
|
});
|
|
|
if (!this.curQue.Bookanswer) {
|
|
|
let bookanswer = {
|
|
|
- recordList: []
|
|
|
+ recordList: [],
|
|
|
};
|
|
|
this.$set(this.curQue, "Bookanswer", bookanswer);
|
|
|
}
|
|
@@ -566,13 +579,8 @@ export default {
|
|
|
},
|
|
|
|
|
|
setRecordingFileName(row, column) {
|
|
|
- let {
|
|
|
- type,
|
|
|
- text,
|
|
|
- sentence_data,
|
|
|
- pinyin_english_data,
|
|
|
- text_brackets
|
|
|
- } = this.curQue.voiceMatrix.matrix[row][column];
|
|
|
+ let { type, text, sentence_data, pinyin_english_data, text_brackets } =
|
|
|
+ this.curQue.voiceMatrix.matrix[row][column];
|
|
|
if (type === "text") this.fileName = text;
|
|
|
if (type === "SentenceSegwordChs") this.fileName = sentence_data.sentence;
|
|
|
if (type === "PinyinEnglish") this.fileName = pinyin_english_data.pinyin;
|
|
@@ -591,13 +599,13 @@ export default {
|
|
|
"matrix-checkbox-row-",
|
|
|
"audio-simple-image",
|
|
|
"audio-simple-repeat",
|
|
|
- "luyin-box"
|
|
|
+ "luyin-box",
|
|
|
];
|
|
|
|
|
|
- let operable = event.path.some(item => {
|
|
|
+ let operable = event.path.some((item) => {
|
|
|
let className = item.className;
|
|
|
if (!className) return false;
|
|
|
- return whitePath.some(path => className.includes(path));
|
|
|
+ return whitePath.some((path) => className.includes(path));
|
|
|
});
|
|
|
if (!operable) {
|
|
|
this.selectedLine = { type: "", index: -1 };
|
|
@@ -646,7 +654,7 @@ export default {
|
|
|
this.lrcArray = [];
|
|
|
let { type, index } = this.selectedLine;
|
|
|
if (type.length > 0 && index >= 0 && type === "row") {
|
|
|
- this.curQue.voiceMatrix.matrix[index].forEach(item => {
|
|
|
+ this.curQue.voiceMatrix.matrix[index].forEach((item) => {
|
|
|
let data = this.getLrcData(item);
|
|
|
if (data) this.lrcArray.push(data);
|
|
|
});
|
|
@@ -655,7 +663,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
if (type.length > 0 && index >= 0 && type === "column") {
|
|
|
- this.curQue.voiceMatrix.matrix.forEach(item => {
|
|
|
+ this.curQue.voiceMatrix.matrix.forEach((item) => {
|
|
|
let data = this.getLrcData(item[index]);
|
|
|
if (data) this.lrcArray.push(data);
|
|
|
});
|
|
@@ -678,7 +686,7 @@ export default {
|
|
|
this.$refs.audioLine.PlayAudio();
|
|
|
if (end_time === -1) return;
|
|
|
let end = end_time / 1000 - 0.01;
|
|
|
- this.unWatch = this.$watch("curTime", val => {
|
|
|
+ this.unWatch = this.$watch("curTime", (val) => {
|
|
|
if (val >= end) {
|
|
|
if (!this.hasSelectedCell) return this.unWatch();
|
|
|
this.handleParentPlay();
|
|
@@ -733,7 +741,7 @@ export default {
|
|
|
}
|
|
|
let arr = [];
|
|
|
if (type.length > 0 && index >= 0 && type === "row") {
|
|
|
- this.curQue.voiceMatrix.matrix[index].forEach(item => {
|
|
|
+ this.curQue.voiceMatrix.matrix[index].forEach((item) => {
|
|
|
let data = this.getLrcData(item);
|
|
|
if (data) arr.push(data);
|
|
|
});
|
|
@@ -742,7 +750,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
if (type.length > 0 && index >= 0 && type === "column") {
|
|
|
- this.curQue.voiceMatrix.matrix.forEach(item => {
|
|
|
+ this.curQue.voiceMatrix.matrix.forEach((item) => {
|
|
|
let data = this.getLrcData(item[index]);
|
|
|
if (data) arr.push(data);
|
|
|
});
|
|
@@ -768,7 +776,7 @@ export default {
|
|
|
return {
|
|
|
begin_time: lrc_data.begin_time,
|
|
|
end_time: this.mp3Duration,
|
|
|
- text: lrc_data.text
|
|
|
+ text: lrc_data.text,
|
|
|
};
|
|
|
}
|
|
|
return lrc_data;
|
|
@@ -782,7 +790,7 @@ export default {
|
|
|
|
|
|
pauseAudio() {
|
|
|
let audio = document.getElementsByTagName("audio");
|
|
|
- audio.forEach(item => {
|
|
|
+ audio.forEach((item) => {
|
|
|
item.pause();
|
|
|
});
|
|
|
},
|
|
@@ -820,15 +828,19 @@ export default {
|
|
|
},
|
|
|
|
|
|
handleChangeTime({ begin_time, end_time }) {
|
|
|
+ let _this = this;
|
|
|
if (this.unWatch) this.unWatch();
|
|
|
this.handleParentPlay();
|
|
|
this.$nextTick(() => {
|
|
|
this.$refs.audioLine.onTimeupdateTime(begin_time / 1000);
|
|
|
- this.$refs.audioLine.PlayAudio();
|
|
|
+ setTimeout(() => {
|
|
|
+ _this.$refs.audioLine.PlayAudio();
|
|
|
+ });
|
|
|
+
|
|
|
// 监听是否已到结束时间,为了选中效果 - 0.01
|
|
|
if (end_time === -1) return;
|
|
|
let end = end_time / 1000 - 0.01;
|
|
|
- this.unWatch = this.$watch("curTime", val => {
|
|
|
+ this.unWatch = this.$watch("curTime", (val) => {
|
|
|
if (val >= end) {
|
|
|
this.handleParentPlay();
|
|
|
this.$refs.audioLine.onTimeupdateTime(end);
|
|
@@ -841,8 +853,8 @@ export default {
|
|
|
handleWav(list, tmIndex = 0) {
|
|
|
console.log(list);
|
|
|
this.$set(this.curQue.Bookanswer, "recordList", list);
|
|
|
- }
|
|
|
- }
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
</script>
|
|
|
|