单聊对接
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
import { MessageModelType } from '../types'
|
||||
import { ConversationType, MessageModelType } from '../types'
|
||||
|
||||
export default class BaseConversation {
|
||||
public id: string
|
||||
@ -9,7 +9,8 @@ export default class BaseConversation {
|
||||
public updateTime: number
|
||||
public unreadCount: number
|
||||
public msgList: Array<MessageModelType>
|
||||
|
||||
public type: ConversationType
|
||||
public targetId: number
|
||||
constructor(
|
||||
id: string,
|
||||
avatar: string,
|
||||
@ -18,7 +19,9 @@ export default class BaseConversation {
|
||||
createTime: number,
|
||||
updateTime: number,
|
||||
unreadCount: number,
|
||||
msgList: Array<MessageModelType>
|
||||
msgList: Array<MessageModelType>,
|
||||
type: ConversationType,
|
||||
targetId: number
|
||||
) {
|
||||
this.id = id
|
||||
this.avatar = avatar
|
||||
@ -28,5 +31,7 @@ export default class BaseConversation {
|
||||
this.updateTime = updateTime
|
||||
this.unreadCount = unreadCount
|
||||
this.msgList = msgList
|
||||
this.type = type
|
||||
this.targetId = targetId
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,16 +1,18 @@
|
||||
import { MessageRole, MessageType, SendStatus } from '../types'
|
||||
import { MessageRole, ContentType, SendStatus } from '../types'
|
||||
|
||||
export default class BaseMessage {
|
||||
id: string
|
||||
avatar: string
|
||||
nickname: string
|
||||
id?: string
|
||||
avatar?: string
|
||||
nickname?: string
|
||||
createTime: number
|
||||
isRead: boolean
|
||||
role: MessageRole
|
||||
sendStatus: SendStatus
|
||||
messageType: MessageType
|
||||
contentType: ContentType
|
||||
conversationId: string
|
||||
|
||||
clientMessageId: string
|
||||
receiverId: number
|
||||
conversationType: number
|
||||
constructor(
|
||||
id: string,
|
||||
avatar: string,
|
||||
@ -19,8 +21,10 @@ export default class BaseMessage {
|
||||
isRead: boolean,
|
||||
role: MessageRole,
|
||||
sendStauts: SendStatus,
|
||||
messageType: MessageType,
|
||||
conversationId: string
|
||||
contentType: ContentType,
|
||||
conversationId: string,
|
||||
receiverId: number,
|
||||
conversationType: number
|
||||
) {
|
||||
this.id = id
|
||||
this.avatar = avatar
|
||||
@ -29,7 +33,21 @@ export default class BaseMessage {
|
||||
this.isRead = isRead
|
||||
this.role = role
|
||||
this.sendStatus = sendStauts
|
||||
this.messageType = messageType
|
||||
this.contentType = contentType
|
||||
this.conversationId = conversationId
|
||||
this.receiverId = receiverId
|
||||
this.clientMessageId = this.generateClientMessageId()
|
||||
this.conversationType = conversationType
|
||||
}
|
||||
|
||||
private generateClientMessageId() {
|
||||
const timestamp = Date.now().toString() // 获取当前时间戳
|
||||
const randomPart = 'xxxx-xxxx-4xxx-yxxx-xxxx'.replace(/[xy]/g, function (c) {
|
||||
const r = (Math.random() * 16) | 0,
|
||||
v = c === 'x' ? r : (r & 0x3) | 0x8
|
||||
return v.toString(16)
|
||||
})
|
||||
|
||||
return `${timestamp}-${randomPart}`
|
||||
}
|
||||
}
|
||||
|
||||
5
src/views/chat/model/BaseResponse.ts
Normal file
5
src/views/chat/model/BaseResponse.ts
Normal file
@ -0,0 +1,5 @@
|
||||
export interface BaseResponse<T> {
|
||||
code: number // 0表示成功其他表示失败
|
||||
message: string // 返回的信息,可以是成功或错误信息
|
||||
data: T // 泛型数据,成功时返回数据,失败时为 null
|
||||
}
|
||||
@ -10,8 +10,21 @@ export class ChatConversation extends BaseConversation {
|
||||
createTime: number,
|
||||
updateTime: number,
|
||||
unreadCount: number,
|
||||
msgList: Array<BaseMessage>
|
||||
msgList: Array<BaseMessage>,
|
||||
type: number,
|
||||
targetId: number
|
||||
) {
|
||||
super(id, avatar, name, descrition, createTime, updateTime, unreadCount, msgList)
|
||||
super(
|
||||
id,
|
||||
avatar,
|
||||
name,
|
||||
descrition,
|
||||
createTime,
|
||||
updateTime,
|
||||
unreadCount,
|
||||
msgList,
|
||||
type,
|
||||
targetId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { MessageRole, MessageType, SendStatus } from '../types'
|
||||
import { MessageRole, ContentType, SendStatus } from '@/views/chat/types/index.d.ts'
|
||||
import BaseMessage from './BaseMessage'
|
||||
|
||||
export default class ImageMessage extends BaseMessage {
|
||||
@ -13,10 +13,23 @@ export default class ImageMessage extends BaseMessage {
|
||||
content: string,
|
||||
role: MessageRole,
|
||||
sendStatus: SendStatus,
|
||||
messageType: MessageType,
|
||||
conversationId: string
|
||||
conversationId: string,
|
||||
receiverId: number,
|
||||
conversationType: number
|
||||
) {
|
||||
super(id, avatar, nickname, createTime, isRead, role, sendStatus, messageType, conversationId)
|
||||
super(
|
||||
id,
|
||||
avatar,
|
||||
nickname,
|
||||
createTime,
|
||||
isRead,
|
||||
role,
|
||||
sendStatus,
|
||||
ContentType.IMAGE,
|
||||
conversationId,
|
||||
receiverId,
|
||||
conversationType
|
||||
)
|
||||
this.content = content
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { MessageRole, MessageType, SendStatus } from '../types'
|
||||
import { MessageRole, ContentType, SendStatus } from '@/views/chat/types/index.d.ts'
|
||||
import BaseMessage from './BaseMessage'
|
||||
|
||||
export default class TextMessage extends BaseMessage {
|
||||
@ -13,10 +13,23 @@ export default class TextMessage extends BaseMessage {
|
||||
content: string,
|
||||
role: MessageRole,
|
||||
sendStatus: SendStatus,
|
||||
messageType: MessageType,
|
||||
conversationId: string
|
||||
conversationId: string,
|
||||
receiverId: number,
|
||||
conversationType: number
|
||||
) {
|
||||
super(id, avatar, nickname, createTime, isRead, role, sendStatus, messageType, conversationId)
|
||||
super(
|
||||
id,
|
||||
avatar,
|
||||
nickname,
|
||||
createTime,
|
||||
isRead,
|
||||
role,
|
||||
sendStatus,
|
||||
ContentType.TEXT,
|
||||
conversationId,
|
||||
receiverId,
|
||||
conversationType
|
||||
)
|
||||
this.content = content
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user