diff --git a/src/views/im/home/pages/conversation/components/input/EmojiPicker.vue b/src/views/im/home/pages/conversation/components/input/EmojiPicker.vue index 07c412613..93ac70c10 100644 --- a/src/views/im/home/pages/conversation/components/input/EmojiPicker.vue +++ b/src/views/im/home/pages/conversation/components/input/EmojiPicker.vue @@ -9,7 +9,7 @@
@@ -99,3 +99,17 @@ onUnmounted(() => { }) + + diff --git a/src/views/im/home/pages/conversation/components/input/MessageInput.vue b/src/views/im/home/pages/conversation/components/input/MessageInput.vue index f2fdb50e0..36b2bb060 100644 --- a/src/views/im/home/pages/conversation/components/input/MessageInput.vue +++ b/src/views/im/home/pages/conversation/components/input/MessageInput.vue @@ -71,7 +71,7 @@ @@ -113,6 +113,13 @@ class="bottom-full left-3 mb-2" @select="insertText" /> + + +
@@ -127,9 +134,6 @@ @select="onMentionSelect" /> - - - @@ -508,8 +512,12 @@ function onInput() { // ==================== 表情 ==================== const emojiVisible = ref(false) +/** 切换表情面板;打开时互斥关掉语音面板 */ function toggleEmoji() { emojiVisible.value = !emojiVisible.value + if (emojiVisible.value) { + voiceVisible.value = false + } } // ==================== @ 成员选择(群聊) ==================== @@ -768,6 +776,11 @@ async function onFilePicked(e: Event) { // ==================== 语音 ==================== const voiceVisible = ref(false) +/** 打开语音录制面板;互斥关掉表情面板 */ +function openVoice() { + voiceVisible.value = true + emojiVisible.value = false +} /** VoiceRecorder 录完后回传 blob,包成 webm 文件上传,发送 VOICE 消息 */ async function onVoiceSend(payload: { blob: Blob; duration: number }) { const file = new File([payload.blob], `voice-${Date.now()}.webm`, { type: payload.blob.type }) diff --git a/src/views/im/home/pages/conversation/components/input/VoiceRecorder.vue b/src/views/im/home/pages/conversation/components/input/VoiceRecorder.vue index 1bbb91541..537186ab0 100644 --- a/src/views/im/home/pages/conversation/components/input/VoiceRecorder.vue +++ b/src/views/im/home/pages/conversation/components/input/VoiceRecorder.vue @@ -1,41 +1,68 @@