|
|
@@ -487,6 +487,7 @@ const sendMessage = () => {
|
|
|
isPlaying: false,
|
|
|
voiceCode: voiceCode.value
|
|
|
};
|
|
|
+ isLoading.value = true;
|
|
|
// 上传录制的语音文件
|
|
|
if (recorder.value && recorder.value.getWAVBlob) {
|
|
|
recorder.value.stop(); // 确保录音已停止
|
|
|
@@ -508,6 +509,7 @@ const sendMessage = () => {
|
|
|
if (res.data.code === 200) {
|
|
|
// 移除"正在思考中"消息
|
|
|
chatMessages.value = chatMessages.value.filter(msg => !msg.isThinking);
|
|
|
+ isLoading.value = false;
|
|
|
// 添加 AI 回复到聊天记录
|
|
|
const aiMessage = { sender: 'ai', text: res.data.data.message, audioUrl: res.data.data.audioUrl, voiceCode: voiceCode.value, isPlaying: false };
|
|
|
chatMessages.value.push(aiMessage);
|
|
|
@@ -533,11 +535,13 @@ const sendMessage = () => {
|
|
|
})
|
|
|
}).catch(err =>{
|
|
|
ElMessage('分析出错啦')
|
|
|
+ isLoading.value = false
|
|
|
})
|
|
|
} else {
|
|
|
// 移除"正在思考中"消息
|
|
|
chatMessages.value = chatMessages.value.filter(msg => !msg.isThinking);
|
|
|
chatMessages.value.push({ sender: 'ai', text: '服务器繁忙,请稍后再试...', isPlaying: false });
|
|
|
+ isLoading.value = false;
|
|
|
}
|
|
|
scrollToBottom()
|
|
|
initRecognitionValue();
|
|
|
@@ -546,11 +550,13 @@ const sendMessage = () => {
|
|
|
// 移除"正在思考中"消息
|
|
|
chatMessages.value = chatMessages.value.filter(msg => !msg.isThinking);
|
|
|
chatMessages.value.push({ sender: 'ai', text: '服务器繁忙,请稍后再试...', isPlaying: false });
|
|
|
+ isLoading.value = false;
|
|
|
});
|
|
|
})
|
|
|
.catch((uploadErr) => {
|
|
|
console.error('文件上传失败:', uploadErr);
|
|
|
ElMessage.error('文件上传失败');
|
|
|
+ isLoading.value = false;
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
@@ -1020,6 +1026,11 @@ onMounted(() => {
|
|
|
aiSpeakingAssignmentInfo.value = res.data.data;
|
|
|
getHistory();
|
|
|
})
|
|
|
+
|
|
|
+ doubaoApis.getRestricData(userId, assignmentId)
|
|
|
+ .then(res =>{
|
|
|
+ recordingDuration.value = +Number(res.data.data.recordTime).toFixed(0);
|
|
|
+ })
|
|
|
});
|
|
|
</script>
|
|
|
|