Skip to content

Commit e7ecf99

Browse files
committed
feat(chat): 支持表情图片预览
- 将表情加入图片预览列表 - 支持在普通消息和合并聊天记录中点击预览表情
1 parent 217926d commit e7ecf99

3 files changed

Lines changed: 11 additions & 3 deletions

File tree

frontend/components/chat/ChatOverlays.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -822,9 +822,11 @@
822822
<div
823823
v-else-if="rec.renderType === 'emoji'"
824824
class="inline-block"
825+
:class="rec.emojiUrl ? 'cursor-pointer' : ''"
826+
@click="rec.emojiUrl && openImagePreview(rec.emojiUrl)"
825827
@contextmenu="openMediaContextMenu($event, rec, 'emoji')"
826828
>
827-
<img v-if="rec.emojiUrl" :src="rec.emojiUrl" alt="表情" class="w-24 h-24 object-contain" />
829+
<img v-if="rec.emojiUrl" :src="rec.emojiUrl" alt="表情" class="w-24 h-24 object-contain hover:opacity-90 transition-opacity" />
828830
<div v-else class="px-3 py-2 text-sm text-gray-700">{{ rec.content || '[表情]' }}</div>
829831
</div>
830832

@@ -1137,9 +1139,11 @@
11371139
<div
11381140
v-else-if="rec.renderType === 'emoji'"
11391141
class="inline-block"
1142+
:class="rec.emojiUrl ? 'cursor-pointer' : ''"
1143+
@click="rec.emojiUrl && openImagePreview(rec.emojiUrl)"
11401144
@contextmenu="openMediaContextMenu($event, rec, 'emoji')"
11411145
>
1142-
<img v-if="rec.emojiUrl" :src="rec.emojiUrl" alt="表情" class="w-24 h-24 object-contain" />
1146+
<img v-if="rec.emojiUrl" :src="rec.emojiUrl" alt="表情" class="w-24 h-24 object-contain hover:opacity-90 transition-opacity" />
11431147
<div v-else class="px-3 py-2 text-sm text-gray-700">{{ rec.content || '[表情]' }}</div>
11441148
</div>
11451149

frontend/components/chat/MessageContent.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,11 @@
133133
<img
134134
v-chat-lazy-src="message.emojiUrl"
135135
alt="表情"
136-
class="w-24 h-24 object-contain"
136+
class="w-24 h-24 object-contain cursor-pointer hover:opacity-90 transition-opacity"
137137
loading="lazy"
138138
decoding="async"
139139
fetchpriority="low"
140+
@click.stop="openImagePreview(message.emojiUrl)"
140141
@contextmenu="openMediaContextMenu($event, message, 'emoji')"
141142
>
142143
<button

frontend/composables/chat/useChatMessages.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,9 @@ export const useChatMessages = ({
361361
if (message?.renderType === 'image') {
362362
push(message.imageUrl, message)
363363
}
364+
if (message?.renderType === 'emoji') {
365+
push(message.emojiUrl, { ...message, id: `${message.id || ''}:emoji`, label: message.content || '表情' })
366+
}
364367
if (message?.quoteImageUrl) {
365368
push(message.quoteImageUrl, { ...message, id: `${message.id || ''}:quote-image` })
366369
}

0 commit comments

Comments
 (0)