feat(im): 增加群消息的回执开关,通过向下箭头

im
YunaiV 2026-04-27 23:56:50 +08:00
parent 29695b649a
commit e9be6ef8b3
2 changed files with 9 additions and 13 deletions

View File

@ -4,11 +4,14 @@
布局顶部头像 中间三 Tab消息/好友/群聊 底部设置
-->
<div class="flex flex-col items-center w-14 pt-4 pb-3 gap-2 flex-shrink-0 bg-[#2b2b2b]">
<!-- 顶部用户头像点击跳个人中心方块小圆角对齐 UserAvatar 风格 -->
<!-- 顶部用户头像点击跳个人中心UserAvatar 统一首字 / 哈希配色规则 -->
<div class="mb-2 cursor-pointer" @click="goProfile">
<el-avatar :size="36" :src="avatar" shape="square" :style="{ borderRadius: '6px' }">
{{ nicknameShort }}
</el-avatar>
<UserAvatar
:url="userStore.getUser?.avatar"
:name="userStore.getUser?.nickname"
:size="36"
:clickable="false"
/>
</div>
<!-- 中间三 Tab -->
@ -54,6 +57,7 @@ import { Setting } from '@element-plus/icons-vue'
import Icon from '@/components/Icon/src/Icon.vue'
import { useUserStore } from '@/store/modules/user'
import { useConversationStore } from '../store/conversationStore'
import UserAvatar from './UserAvatar.vue'
defineOptions({ name: 'ImToolBar' })
@ -80,14 +84,6 @@ const tabs = [
/** 当前路由是否命中 Tab直接比对 route.name */
const isActive = (name: string) => route.name === name
const avatar = computed(() => userStore.getUser?.avatar || '')
/** 头像兜底:取昵称最后一个字符,避免空头像时的灰底过于突兀 */
const nicknameShort = computed(() => {
const name = userStore.getUser?.nickname || ''
return name ? name.slice(-1) : '我'
})
/** 切换 Tab当前 Tab 已选中时跳过,避免无意义的导航 */
const goTab = (name: string) => {
if (route.name === name) {

View File

@ -538,7 +538,7 @@ async function handleRecall() {
* 失败消息点击重试先把 FAILED 的本地占位消息从列表里去掉再用同样的 type + content 走一遍 sendRaw
* 后者会新建 clientMessageId 并重新跑乐观更新流程
*
* 不还原原 needReceipt群回执是发送时的扩展选项不会持久化到 message强行猜测可能与原意不符
* 不还原原 receipt群回执是发送时的扩展选项不会持久化到 message强行猜测可能与原意不符
* 默认按"无回执"重发绝大多数场景符合预期要回执就重新发一次更直观
*/
async function handleResend() {