|
|
@@ -515,13 +515,12 @@ const doSendMessage = async () => {
|
|
|
})
|
|
|
// 清空输入框
|
|
|
userInput.value = ''
|
|
|
- recoverQuestDialogue()
|
|
|
}
|
|
|
|
|
|
/** 显示问题回答对话 */
|
|
|
const showQuestAnswerDialogue = () => {
|
|
|
// 缓存当前对话
|
|
|
- currentDialogueCache.value = currentDialogue.value
|
|
|
+ currentDialogueCache.value = JSON.parse(JSON.stringify(currentDialogue.value))
|
|
|
|
|
|
// 将当前对话类型设置为数字人对话
|
|
|
currentDialogue.value.type = "digital"
|
|
|
@@ -529,11 +528,22 @@ const showQuestAnswerDialogue = () => {
|
|
|
currentDialogue.value.content = "让我思考一下..."
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
/** 回复对话 */
|
|
|
const recoverQuestDialogue = () => {
|
|
|
- // 缓存当前对话
|
|
|
- currentDialogue.value = currentDialogueCache.value
|
|
|
- currentDialogueCache.value = null
|
|
|
+ // 如果有缓存的对话
|
|
|
+ if (currentDialogueCache.value){
|
|
|
+ // 恢复当前对话
|
|
|
+ const currentSection = props.scriptData.sections[currentSectionIndex.value]
|
|
|
+ if (currentSection) {
|
|
|
+ currentSection.dialogues[currentDialogueIndex.value] = JSON.parse(JSON.stringify(currentDialogueCache.value))
|
|
|
+ }
|
|
|
+ // 清空缓存
|
|
|
+ currentDialogueCache.value = null
|
|
|
+ userInputCache.value = ''
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/** 真正执行【发送】消息操作 */
|
|
|
@@ -561,7 +571,7 @@ const doSendMessageStream = async userMessage => {
|
|
|
const { code, data, msg } = JSON.parse(res.data)
|
|
|
if (code !== 0) {
|
|
|
console.log(`对话异常! ${msg}`)
|
|
|
- recoverQuestDialogue();
|
|
|
+ // recoverQuestDialogue();
|
|
|
stopStream();
|
|
|
return
|
|
|
}
|
|
|
@@ -590,20 +600,18 @@ const doSendMessageStream = async userMessage => {
|
|
|
},
|
|
|
error => {
|
|
|
console.log(`对话异常! ${error}`)
|
|
|
- recoverQuestDialogue();
|
|
|
stopStream()
|
|
|
// 需要抛出异常,禁止重试
|
|
|
throw error
|
|
|
},
|
|
|
() => {
|
|
|
console.log(`结束对话! `)
|
|
|
- recoverQuestDialogue();
|
|
|
stopStream()
|
|
|
}
|
|
|
)
|
|
|
} catch (error) {
|
|
|
console.error('发送消息失败:', error)
|
|
|
- recoverQuestDialogue();
|
|
|
+ // recoverQuestDialogue();
|
|
|
stopStream()
|
|
|
}
|
|
|
}
|