diff --git a/src/components/Content.vue b/src/components/Content.vue index 8fa8956..7874160 100644 --- a/src/components/Content.vue +++ b/src/components/Content.vue @@ -29,6 +29,8 @@ const message = ref('') // input message const text = ref('') // current select message const translates = ref({}) // translate result const isTranslating = ref(false) // translate loading +const speakIndex = ref(0) // record speak +const translateIndex = ref(0) // record translate const messageLength = computed(() => store.getConversationsByCurrentProps('chatMessages').length) const chatMessages = computed(() => store.getConversationsByCurrentProps('chatMessages').slice(1)) @@ -82,7 +84,7 @@ const onSubmit = async () => { content, role: 'assistant', }, ]) - speak(content) + speak(content, chatMessages.value.length - 1) } else { store.changeConversations(currentChatMessages.value.slice(0, -1)) @@ -91,7 +93,8 @@ const onSubmit = async () => { store.changeLoading(false) } -function speak(content: string) { +function speak(content: string, index: number) { + speakIndex.value = index text.value = content textToSpeak(content) } @@ -114,6 +117,7 @@ const recognize = async () => { } const translate = async (text: string, i: number) => { + translateIndex.value = i const key = text + i if (translates.value[key]) return translates.value[key].isShow = !translates.value[key].isShow @@ -150,15 +154,18 @@ const translate = async (text: string, i: number) => {

- - - + + - - - + + + + + + + + +

diff --git a/src/components/Nav.vue b/src/components/Nav.vue index b52c2c9..3bd9ab0 100644 --- a/src/components/Nav.vue +++ b/src/components/Nav.vue @@ -12,6 +12,8 @@ const handleCardClick = (key: Key) => { } const handleDelete = (key: Key) => { + if (store.loading) + return alert('Please wait for the current operation to complete') store.deleteConversation(key) } diff --git a/src/components/NewChat.vue b/src/components/NewChat.vue index 35b2160..2abf2ef 100644 --- a/src/components/NewChat.vue +++ b/src/components/NewChat.vue @@ -1,21 +1,19 @@