|
|
@@ -241,7 +241,7 @@
|
|
|
v-for="(dialogue, dialogueIndex) in section.dialogues"
|
|
|
:key="dialogueIndex"
|
|
|
class="dialogue-item"
|
|
|
- :class="dialogue.type"
|
|
|
+ :class="[dialogue.type, { 'hidden': dialogue.type === 'user' }]"
|
|
|
>
|
|
|
<div class="dialogue-header">
|
|
|
<div class="dialogue-type-tag" :class="dialogue.type">
|
|
|
@@ -540,11 +540,8 @@
|
|
|
<button class="add-dialogue-btn digital" @click="addDialogue(sectionIndex)"
|
|
|
>+ 添加对话</button
|
|
|
>
|
|
|
- <button class="add-dialogue-btn user" @click="addUserReply(sectionIndex)"
|
|
|
- >+ 添加用户回复</button
|
|
|
- >
|
|
|
- <button class="add-dialogue-btn quest" @click="addQuestDialogue(sectionIndex)"
|
|
|
- >+ 添加提问</button
|
|
|
+ <button class="add-dialogue-btn quest-user" @click="addQuestWithUserReply(sectionIndex)"
|
|
|
+ >+ 添加提问与回复</button
|
|
|
>
|
|
|
<button class="add-dialogue-btn poem" @click="addPoemDialogue(sectionIndex)"
|
|
|
>+ 添加诗词</button
|
|
|
@@ -621,7 +618,7 @@
|
|
|
|
|
|
<div class="preview-dialogues">
|
|
|
<div
|
|
|
- v-for="(dialogue, dialogueIndex) in section.dialogues"
|
|
|
+ v-for="(dialogue, dialogueIndex) in section.dialogues.filter(d => d.type !== 'user')"
|
|
|
:key="dialogueIndex"
|
|
|
class="preview-dialogue"
|
|
|
:class="dialogue.type"
|
|
|
@@ -1165,9 +1162,37 @@ const addPoemDialogue = (sectionIndex) => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+// 步骤2:添加提问与用户回复
|
|
|
+const addQuestWithUserReply = (sectionIndex) => {
|
|
|
+ // 添加提问类型对话
|
|
|
+ scriptData.sections[sectionIndex].dialogues.push({
|
|
|
+ type: 'quest',
|
|
|
+ content: '',
|
|
|
+ roleName: '',
|
|
|
+ voiceoverUrl: '',
|
|
|
+ generatingVoiceover: false
|
|
|
+ })
|
|
|
+ // 添加用户回复类型对话
|
|
|
+ scriptData.sections[sectionIndex].dialogues.push({
|
|
|
+ type: 'user',
|
|
|
+ content: '',
|
|
|
+ roleName: '',
|
|
|
+ voiceoverUrl: '',
|
|
|
+ generatingVoiceover: false
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
// 步骤2:删除对话
|
|
|
const removeDialogue = (sectionIndex, dialogueIndex) => {
|
|
|
- scriptData.sections[sectionIndex].dialogues.splice(dialogueIndex, 1)
|
|
|
+ const dialogues = scriptData.sections[sectionIndex].dialogues
|
|
|
+ const dialogue = dialogues[dialogueIndex]
|
|
|
+
|
|
|
+ // 如果是提问类型,同时删除后面的用户回复
|
|
|
+ if (dialogue.type === 'quest' && dialogueIndex < dialogues.length - 1 && dialogues[dialogueIndex + 1].type === 'user') {
|
|
|
+ dialogues.splice(dialogueIndex, 2)
|
|
|
+ } else {
|
|
|
+ dialogues.splice(dialogueIndex, 1)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 步骤2:删除环节
|
|
|
@@ -1721,6 +1746,11 @@ onUnmounted(() => {
|
|
|
color: white;
|
|
|
}
|
|
|
|
|
|
+/* 隐藏用户回复卡片 */
|
|
|
+.dialogue-item.hidden {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+
|
|
|
.dialogue-type-tag.digital {
|
|
|
background-color: #409eff;
|
|
|
}
|
|
|
@@ -1841,6 +1871,11 @@ onUnmounted(() => {
|
|
|
color: white;
|
|
|
}
|
|
|
|
|
|
+.add-dialogue-btn.quest-user {
|
|
|
+ background-color: #e6a23c;
|
|
|
+ color: white;
|
|
|
+}
|
|
|
+
|
|
|
.add-dialogue-btn.user:hover {
|
|
|
background-color: #67c23a;
|
|
|
border-color: #67c23a;
|
|
|
@@ -1853,6 +1888,12 @@ onUnmounted(() => {
|
|
|
color: white;
|
|
|
}
|
|
|
|
|
|
+.add-dialogue-btn.quest-user:hover {
|
|
|
+ background-color: #cf9236;
|
|
|
+ border-color: #cf9236;
|
|
|
+ color: white;
|
|
|
+}
|
|
|
+
|
|
|
.add-dialogue-btn.poem:hover {
|
|
|
background-color: #73767a;
|
|
|
border-color: #73767a;
|