Browse Source

fix:会话消息时间无法显示问题

master
秋田弘 7 months ago
parent
commit
2ffe0e2445
  1. 3
      frontend/auto-imports.d.ts
  2. 15
      frontend/src/components/chat/ChatMessage.vue
  3. 2
      frontend/src/components/chat/ChatMsgList.vue
  4. 20
      frontend/src/stores/chat.ts

3
frontend/auto-imports.d.ts

@ -3,6 +3,7 @@
// @ts-nocheck // @ts-nocheck
// noinspection JSUnusedGlobalSymbols // noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import // Generated by unplugin-auto-import
// biome-ignore lint: disable
export {} export {}
declare global { declare global {
const EffectScope: typeof import('vue')['EffectScope'] const EffectScope: typeof import('vue')['EffectScope']
@ -71,6 +72,6 @@ declare global {
// for type re-export // for type re-export
declare global { declare global {
// @ts-ignore // @ts-ignore
export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
import('vue') import('vue')
} }

15
frontend/src/components/chat/ChatMessage.vue

@ -160,7 +160,7 @@
</div> </div>
<!-- 发送时间展示在消息框外部的下方 --> <!-- 发送时间展示在消息框外部的下方 -->
<div class="chat-time-other-outer"> <div class="chat-time-other-outer">
{{ item.time }} {{ formatTime(item.createdAt) }}
</div> </div>
</el-col> </el-col>
<el-col :span="8" /> <el-col :span="8" />
@ -231,11 +231,18 @@
const currUserId = ref(); const currUserId = ref();
// //
function formatTime(timestamp:string) { function formatTime(timestamp: string | number) {
const date = new Date(timestamp); const date = new Date(Number(timestamp)); //
const month = date.getMonth() + 1; // 0 const month = date.getMonth() + 1; // 0
const day = date.getDate(); const day = date.getDate();
return `${month}-${day}`; const hours = date.getHours();
const minutes = date.getMinutes();
//
const formattedHours = hours.toString().padStart(2, "0");
const formattedMinutes = minutes.toString().padStart(2, "0");
return `${month}-${day} ${formattedHours}:${formattedMinutes}`;
} }
const showUserInfo = (chatId: string) => { const showUserInfo = (chatId: string) => {

2
frontend/src/components/chat/ChatMsgList.vue

@ -90,7 +90,7 @@
</div> </div>
<div class="previewTime"> <div class="previewTime">
{{ formatTime(item.time) }} {{ formatTime(item.item) }}
</div> </div>
</div> </div>

20
frontend/src/stores/chat.ts

@ -279,7 +279,8 @@ export const useChatStore = defineStore('chatStore', () => {
isMe: true, isMe: true,
message: await getImageSrc(Message.message), message: await getImageSrc(Message.message),
previewMessage: "[图片消息]", previewMessage: "[图片消息]",
previewTimeFormat: formatTime(Date.now()), previewTimeFormat: Date.now(),
time: Date.now(),
displayName: userInfo.value.nickname, displayName: userInfo.value.nickname,
chatId: Message.type === 'group' ? targetGroupInfo.value.chatId : targetUserInfo.value.chatId, chatId: Message.type === 'group' ? targetGroupInfo.value.chatId : targetUserInfo.value.chatId,
avatar: Message.type === 'group' ? targetUserInfo.value.avatar : '', avatar: Message.type === 'group' ? targetUserInfo.value.avatar : '',
@ -347,6 +348,7 @@ export const useChatStore = defineStore('chatStore', () => {
file_name: Message.message.split('/').pop(), file_name: Message.message.split('/').pop(),
file_size: fileInfo.data.file_info?.size || 0, file_size: fileInfo.data.file_info?.size || 0,
previewMessage: "[文件消息]", previewMessage: "[文件消息]",
time: Date.now(),
previewTimeFormat: formatTime(Date.now()), previewTimeFormat: formatTime(Date.now()),
displayName: userInfo.value.nickname, displayName: userInfo.value.nickname,
chatId: Message.type === 'group' ? targetGroupInfo.value.chatId : targetUserInfo.value.chatId, chatId: Message.type === 'group' ? targetGroupInfo.value.chatId : targetUserInfo.value.chatId,
@ -412,8 +414,9 @@ export const useChatStore = defineStore('chatStore', () => {
...Message, ...Message,
isMe: true, isMe: true,
previewMessage: message.value, previewMessage: message.value,
previewTimeFormat: formatTime(Date.now()), previewTimeFormat: Date.now(),
displayName: userInfo.value.nickname, displayName: userInfo.value.nickname,
time: Date.now(),
chatId: targetUserInfo.value.chatId, chatId: targetUserInfo.value.chatId,
avatar: userInfo.value.avatar, avatar: userInfo.value.avatar,
createdAt: Date.now() createdAt: Date.now()
@ -426,8 +429,9 @@ export const useChatStore = defineStore('chatStore', () => {
messageHistory = { messageHistory = {
...Message, ...Message,
previewMessage: message.value, previewMessage: message.value,
previewTimeFormat: formatTime(Date.now()), previewTimeFormat: Date.now(),
displayName: targetGroupInfo.value.name, displayName: targetGroupInfo.value.name,
time: Date.now(),
isMe: true, isMe: true,
chatId: targetGroupInfo.value.chatId, chatId: targetGroupInfo.value.chatId,
createdAt: Date.now() createdAt: Date.now()
@ -568,7 +572,8 @@ export const useChatStore = defineStore('chatStore', () => {
online: user.online, online: user.online,
toUserId: userInfo.value.id, toUserId: userInfo.value.id,
previewMessage: message.value || "快开始打招呼吧!", previewMessage: message.value || "快开始打招呼吧!",
previewTimeFormat: formatTime(Date.now()), previewTimeFormat: Date.now(),
time: Date.now(),
displayName: user.nickname, displayName: user.nickname,
}; };
chatList.value.push(newChat); chatList.value.push(newChat);
@ -582,9 +587,10 @@ export const useChatStore = defineStore('chatStore', () => {
nickname: user.nickname, nickname: user.nickname,
avatar: user.avatar, avatar: user.avatar,
online: user.online, online: user.online,
time: Date.now(),
toUserId: userInfo.value.id, toUserId: userInfo.value.id,
previewMessage: message.value || "快开始打招呼吧!", previewMessage: message.value || "快开始打招呼吧!",
previewTimeFormat: formatTime(Date.now()), previewTimeFormat: Date.now(),
createdAt: Date.now(), createdAt: Date.now(),
}); });
@ -744,7 +750,7 @@ export const useChatStore = defineStore('chatStore', () => {
content_type: data.content_type, content_type: data.content_type,
to_groupid: data.to_groupid, to_groupid: data.to_groupid,
previewMessage: "", previewMessage: "",
previewTimeFormat: formatTime(Date.now()), previewTimeFormat: Date.now(),
displayName: data.userInfo.nickname, displayName: data.userInfo.nickname,
avatar: data.userInfo.avatar, avatar: data.userInfo.avatar,
createdAt: Date.now(), createdAt: Date.now(),
@ -803,6 +809,8 @@ export const useChatStore = defineStore('chatStore', () => {
} }
const list = await res.json() const list = await res.json()
console.log("list------", list)
if (list.data.groups == null) { if (list.data.groups == null) {
list.data.groups = [] list.data.groups = []
} }

Loading…
Cancel
Save