删除确认框
This commit is contained in:
@@ -263,5 +263,27 @@ export function goEasyMessageRead(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 删除会话
|
||||||
|
export function goEasyRemoveConversation(conversation) {
|
||||||
|
if (!isGoEasyEnabled()) {
|
||||||
|
return Promise.reject(new Error('GoEasy 未启用'))
|
||||||
|
}
|
||||||
|
|
||||||
|
const goeasy = getPkGoEasy()
|
||||||
|
const im = goeasy.im
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
im.removeConversation({
|
||||||
|
conversation: conversation,
|
||||||
|
onSuccess: function () {
|
||||||
|
resolve(true)
|
||||||
|
},
|
||||||
|
onFailed: function (error) {
|
||||||
|
console.log('删除会话失败,code:' + error.code + ',error:' + error.content)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 导出 GoEasy 常量(用于事件监听)
|
// 导出 GoEasy 常量(用于事件监听)
|
||||||
export { GoEasy }
|
export { GoEasy }
|
||||||
|
|||||||
@@ -21,6 +21,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="conv-preview">{{ item.lastMessage?.payload?.text || '' }}</div>
|
<div class="conv-preview">{{ item.lastMessage?.payload?.text || '' }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<span
|
||||||
|
class="conv-delete"
|
||||||
|
@click.stop="removeConversation(item, index)"
|
||||||
|
title="删除会话"
|
||||||
|
>×</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="chatList.length === 0" class="empty-tip">暂无会话</div>
|
<div v-if="chatList.length === 0" class="empty-tip">暂无会话</div>
|
||||||
@@ -92,13 +97,14 @@ import {
|
|||||||
goEasySendMessage,
|
goEasySendMessage,
|
||||||
goEasySendImageMessage,
|
goEasySendImageMessage,
|
||||||
goEasyMessageRead,
|
goEasyMessageRead,
|
||||||
|
goEasyRemoveConversation,
|
||||||
getPkGoEasy,
|
getPkGoEasy,
|
||||||
GoEasy
|
GoEasy
|
||||||
} from '@/utils/pk-mini/goeasy'
|
} from '@/utils/pk-mini/goeasy'
|
||||||
import PictureMessage from '@/components/pk-mini/chat/PictureMessage.vue'
|
import PictureMessage from '@/components/pk-mini/chat/PictureMessage.vue'
|
||||||
import MiniPKMessage from '@/components/pk-mini/chat/MiniPKMessage.vue'
|
import MiniPKMessage from '@/components/pk-mini/chat/MiniPKMessage.vue'
|
||||||
import VoiceMessage from '@/components/pk-mini/chat/VoiceMessage.vue'
|
import VoiceMessage from '@/components/pk-mini/chat/VoiceMessage.vue'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import { pkUnreadStore } from '@/stores/pk-mini/notice.js'
|
import { pkUnreadStore } from '@/stores/pk-mini/notice.js'
|
||||||
|
|
||||||
const defaultAvatar = 'https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/default-avatar.png'
|
const defaultAvatar = 'https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/default-avatar.png'
|
||||||
@@ -229,6 +235,29 @@ async function handleFileSelect(event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function removeConversation(item, index) {
|
||||||
|
try {
|
||||||
|
await ElMessageBox.confirm('确定删除该会话吗?', '删除会话', {
|
||||||
|
confirmButtonText: '删除',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
} catch {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
await goEasyRemoveConversation(item)
|
||||||
|
chatList.value.splice(index, 1)
|
||||||
|
if (selectedChat.value === item) {
|
||||||
|
selectedChat.value = null
|
||||||
|
messagesList.value = []
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error('删除会话失败', e)
|
||||||
|
ElMessage.error('删除会话失败')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
currentUser.value = getMainUserData() || {}
|
currentUser.value = getMainUserData() || {}
|
||||||
if (isGoEasyEnabled()) {
|
if (isGoEasyEnabled()) {
|
||||||
@@ -491,6 +520,29 @@ onUnmounted(() => {
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.conversation-item:hover .conv-delete,
|
||||||
|
.conversation-item.active .conv-delete {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.conv-delete {
|
||||||
|
display: none;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
border-radius: 50%;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1;
|
||||||
|
color: #94a3b8;
|
||||||
|
flex-shrink: 0;
|
||||||
|
margin-left: 4px;
|
||||||
|
&:hover {
|
||||||
|
background-color: #fee2e2;
|
||||||
|
color: #ef4444;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.empty-tip {
|
.empty-tip {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 50px;
|
padding: 50px;
|
||||||
|
|||||||
Reference in New Issue
Block a user