This commit is contained in:
cansnow
2025-12-11 22:33:31 +08:00
parent 375917f06c
commit 5a086fa1fa
44 changed files with 1978 additions and 359 deletions
@@ -16,9 +16,7 @@
</view>
</view>
<view class="message_content_wrap message_content_wrap_shadow" :id="`message_content_wrap_${source.clientMsgID}`" @longtap.stop.prevent="longtapEvent($event)">
<text-message-render v-if="showTextRender" :message="source" />
<media-message-render v-else-if="showMediaRender" :message="source" />
<error-message-render v-else />
<component :is="component" :message="source" :conversationID="conversationID"></component>
</view>
</view>
</view>
@@ -35,20 +33,46 @@
import {MessageStatus,MessageType,SessionType,} from "openim-uniapp-polyfill";
import MyAvatar from "@/components/MyAvatar/index.vue";
import TextMessageRender from "./TextMessageRender";
import MediaMessageRender from "./MediaMessageRender";
import PictureMessageRender from "./PictureMessageRender";
import VoiceMessageRender from "./VoiceMessageRender";
import VideoMessageRender from "./VideoMessageRender";
import FileMessageRender from "./FileMessageRender";
import AtTextMessageRender from "./AtTextMessageRender";
import MergeMessageRender from "./MergeMessageRender";
import CardMessageRender from "./CardMessageRender";
import LocationMessageRender from "./LocationMessageRender";
import CustomMessageRender from "./CustomMessageRender";
import TypingMessageRender from "./TypingMessageRender";
import QuoteMessageRender from "./QuoteMessageRender";
import FaceMessageRender from "./FaceMessageRender";
import MarkdownMessageRender from "./MarkdownMessageRender";
import StreamMessageRender from "./StreamMessageRender";
import OANotificationRender from "./OANotificationRender";
import ErrorMessageRender from "./ErrorMessageRender";
import {noticeMessageTypes} from "@/constant";
import {tipMessaggeFormat,formatMessageTime} from "@/util/imCommon";
const textRenderTypes = [MessageType.TextMessage];
const mediaRenderTypes = [MessageType.PictureMessage];
import { ca } from "date-fns/locale";
export default {
components: {
MyAvatar,
TextMessageRender,
MediaMessageRender,
PictureMessageRender,
VoiceMessageRender,
VideoMessageRender,
FileMessageRender,
AtTextMessageRender,
MergeMessageRender,
CardMessageRender,
LocationMessageRender,
CustomMessageRender,
TypingMessageRender,
QuoteMessageRender,
FaceMessageRender,
MarkdownMessageRender,
StreamMessageRender,
OANotificationRender,
ErrorMessageRender
},
props: {
@@ -57,6 +81,7 @@
type: Boolean,
default: false,
},
conversationID:String,
isPreview: Boolean,
isActive: Boolean,
},
@@ -67,6 +92,7 @@
toolTipFlag: false,
popPostion:"default",
toolTipData: [],
component:"ErrorMessageRender",
};
},
computed: {
@@ -82,12 +108,6 @@
formattedMessageTime() {
return formatMessageTime(this.source.sendTime);
},
showTextRender() {
return textRenderTypes.includes(this.source.contentType);
},
showMediaRender() {
return mediaRenderTypes.includes(this.source.contentType);
},
getNoticeContent() {
const isNoticeMessage = noticeMessageTypes.includes(
this.source.contentType
@@ -110,7 +130,26 @@
},
},
mounted() {
this.$emit("messageItemRender", this.source.clientMsgID);
const MsgType2Components = {
['type_'+MessageType.TextMessage] : "TextMessageRender",
['type_'+MessageType.PictureMessage] : "PictureMessageRender",
['type_'+MessageType.VoiceMessage] : "VoiceMessageRender",
['type_'+MessageType.VideoMessage] : "VideoMessageRender",
['type_'+MessageType.FileMessage] : "FileMessageRender",
['type_'+MessageType.AtTextMessage] : "AtTextMessageRender",
['type_'+MessageType.MergeMessage] : "MergeMessageRender",
['type_'+MessageType.CardMessage] : "CardMessageRender",
['type_'+MessageType.LocationMessage] : "LocationMessageRender",
['type_'+MessageType.CustomMessage] : "CustomMessageRender",
['type_'+MessageType.TypingMessage] : "TypingMessageRender",
['type_'+MessageType.QuoteMessage] : "QuoteMessageRender",
['type_'+MessageType.FaceMessage] : "FaceMessageRender",
['type_'+MessageType.MarkdownMessage] : "MarkdownMessageRender",
['type_'+MessageType.StreamMessage] : "StreamMessageRender",
['type_'+MessageType.OANotification] : "OANotificationRender"
};
this.component = MsgType2Components['type_'+this.source.contentType] || "ErrorMessageRender";
this.$emit('userEvent',{type:"messageItemRender"},this.source.clientMsgID);
this.setSendingDelay();
},
methods: {