From 8564788b115bdbbbc2ba1100ab093071829d194a Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 1 May 2026 08:17:24 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(im):=20=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=9A=84=E5=9B=BE=E6=A0=87=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/im/home/components/ToolBar.vue | 11 +++----- .../components/message/MessagePanel.vue | 25 +++++++++++++++---- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/views/im/home/components/ToolBar.vue b/src/views/im/home/components/ToolBar.vue index 9fedb85f6..ee715d5b9 100644 --- a/src/views/im/home/components/ToolBar.vue +++ b/src/views/im/home/components/ToolBar.vue @@ -67,15 +67,10 @@ const conversationStore = useConversationStore() /** 消息 Tab 的红点:所有非免打扰会话的未读总和 */ const totalUnread = computed(() => conversationStore.getTotalUnread) -/** - * 两个主 Tab 的配置,name 对应路由 ImHomeConversation/Contact - * 用 name 而非 path:path 后期容易变(前缀调整、嵌套加层),name 更稳定 - * icon 走通用 组件,支持 iconify 全部前缀(ep: / ant-design: / svg-icon: 等) - * 通讯录用 ant-design:contacts-outlined:与消息图标一眼区分;好友 + 群聊在通讯录内分组展示 - */ +/** 两个主 Tab;用路由 name 而非 path,避免前缀 / 嵌套调整后失效 */ const tabs = [ - { name: 'ImHomeConversation', label: '消息', icon: 'ep:chat-dot-round' }, - { name: 'ImHomeContact', label: '通讯录', icon: 'ant-design:contacts-outlined' } + { name: 'ImHomeConversation', label: '消息', icon: 'ep:chat-round' }, + { name: 'ImHomeContact', label: '通讯录', icon: 'mingcute:contacts-line' } ] /** 当前路由是否命中 Tab:直接比对 route.name */ diff --git a/src/views/im/home/pages/conversation/components/message/MessagePanel.vue b/src/views/im/home/pages/conversation/components/message/MessagePanel.vue index 627628303..95ca9936f 100644 --- a/src/views/im/home/pages/conversation/components/message/MessagePanel.vue +++ b/src/views/im/home/pages/conversation/components/message/MessagePanel.vue @@ -19,20 +19,28 @@
- + - + + + + + import { ref, watch, nextTick, computed } from 'vue' import Icon from '@/components/Icon/src/Icon.vue' +import { useMessage } from '@/hooks/web/useMessage' import { useConversationStore } from '../../../../store/conversationStore' import { useFriendStore } from '../../../../store/friendStore' @@ -138,6 +147,7 @@ defineOptions({ name: 'ImMessagePanel' }) const conversationStore = useConversationStore() const friendStore = useFriendStore() const groupStore = useGroupStore() +const message = useMessage() const listRef = ref() const messages = computed(() => conversationStore.getActiveMessages) @@ -256,6 +266,11 @@ function toggleSide() { sideVisible.value = !sideVisible.value } +/** 通话入口:功能未开放,先弹提示占位 */ +function handleCall() { + message.warning('通话功能暂未开放') +} + /** 当前私聊对应的好友(抽屉头部展示用) */ const privateFriend = computed(() => { const conversation = conversationStore.activeConversation