feat: 学员端调整页面, 接入部分接口

This commit is contained in:
QDKF 2025-09-26 20:33:47 +08:00
parent a5bb4de1fe
commit a55bf916c2
5 changed files with 3508 additions and 636 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -451,6 +451,60 @@ class MessageApi {
}
})
}
/**
*
* @returns Promise<ApiResponse<any>>
*/
async getMyChats(): Promise<ApiResponse<any>> {
return request({
url: '/aiol/aiolChat/my_chats',
method: 'GET'
})
}
/**
*
* @param chatId ID
* @returns Promise<ApiResponse<any>>
*/
async getChatMessages(chatId: string): Promise<ApiResponse<any>> {
return request({
url: `/aiol/aiolChat/${chatId}/messages`,
method: 'GET'
})
}
/**
*
* @param data
* @returns Promise<ApiResponse<any>>
*/
async sendMessage(data: {
chat_id: string
content: string
message_type: string
file_url?: string
}): Promise<ApiResponse<any>> {
return request({
url: '/aiol/aiolChatMessage/send',
method: 'POST',
data
})
}
/**
* ID
* @param chatId ID
* @param messageId ID
* @returns Promise<ApiResponse<any>>
*/
async updateLastReadMessage(chatId: string, messageId: string): Promise<ApiResponse<any>> {
return request({
url: `/aiol/aiolChat/${chatId}/update_last_read/${messageId}`,
method: 'POST'
})
}
}
export default new MessageApi()

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -416,10 +416,10 @@
</div>
</div>
<div class="modal-actions">
<button v-if="!selectedMember?.isTeacher" @click="handleMuteMember" class="modal-btn mute-btn"
<!-- <button v-if="!selectedMember?.isTeacher" @click="handleMuteMember" class="modal-btn mute-btn"
:disabled="isMuteLoading">
{{ selectedMember?.izMuted === 1 ? '解除禁言' : '禁言' }}
</button>
</button> -->
<!-- <button v-if="!selectedMember?.isTeacher" @click="handleRemoveMember" class="modal-btn remove-btn"
:disabled="isMuteLoading">
移除群聊
@ -1035,43 +1035,43 @@ const closeMemberModal = () => {
}
// /
const handleMuteMember = async () => {
if (!activeContactId.value || !selectedMember.value) return
// const handleMuteMember = async () => {
// if (!activeContactId.value || !selectedMember.value) return
isMuteLoading.value = true
// isMuteLoading.value = true
try {
const member = selectedMember.value
const isCurrentlyMuted = member.izMuted === 1
// try {
// const member = selectedMember.value
// const isCurrentlyMuted = member.izMuted === 1
if (isCurrentlyMuted) {
//
console.log('🔓 解除禁言:', { chatId: activeContactId.value, userId: member.id, memberName: member.realname })
await ChatApi.unmuteMember(activeContactId.value, member.id)
message.success(`已解除 ${member.realname} 的禁言`)
// if (isCurrentlyMuted) {
// //
// console.log('🔓 :', { chatId: activeContactId.value, userId: member.id, memberName: member.realname })
// await ChatApi.unmuteMember(activeContactId.value, member.id)
// message.success(` ${member.realname} `)
//
member.izMuted = 0
} else {
//
console.log('🔒 禁言用户:', { chatId: activeContactId.value, userId: member.id, memberName: member.realname })
await ChatApi.muteMember(activeContactId.value, member.id)
message.success(`已禁言 ${member.realname}`)
// //
// member.izMuted = 0
// } else {
// //
// console.log('🔒 :', { chatId: activeContactId.value, userId: member.id, memberName: member.realname })
// await ChatApi.muteMember(activeContactId.value, member.id)
// message.success(` ${member.realname}`)
//
member.izMuted = 1
}
// //
// member.izMuted = 1
// }
//
closeMemberModal()
// //
// closeMemberModal()
} catch (error) {
console.error('❌ 禁言操作失败:', error)
message.error('操作失败,请重试')
} finally {
isMuteLoading.value = false
}
}
// } catch (error) {
// console.error(' :', error)
// message.error('')
// } finally {
// isMuteLoading.value = false
// }
// }
//
@ -1240,7 +1240,6 @@ const loadMessages = async (chatId: string) => {
//
const processedMessages: Message[] = []
let lastMessageTime: Date | null = null
let lastSenderId: string | null = null
sortedMessages.forEach((msg: any) => {
// messageType0=1=2=
@ -1261,9 +1260,6 @@ const loadMessages = async (chatId: string) => {
const timeDiff = lastMessageTime ? currentMessageTime.getTime() - lastMessageTime.getTime() : Infinity
const shouldShowTime = !lastMessageTime || timeDiff > 5 * 60 * 1000 // 5
//
const isSameSender = lastSenderId === messageSenderId
// URL
let fileName = msg.fileName
let fileUrl = msg.fileUrl
@ -1302,14 +1298,13 @@ const loadMessages = async (chatId: string) => {
fileType: fileType,
//
showTime: shouldShowTime,
showSender: !isSameSender || shouldShowTime //
showSender: !isOwnMessage //
}
processedMessages.push(message)
//
lastMessageTime = currentMessageTime
lastSenderId = messageSenderId
})
messages.value = processedMessages