sessionList中当没有右键选中某个session时不应该打开菜单

This commit is contained in:
bob
2025-02-25 22:54:15 +08:00
parent 4ba32b0145
commit 5a5ada7f01
2 changed files with 26 additions and 5 deletions

View File

@@ -814,6 +814,10 @@ const onOpenSessionMenu = (sessionId) => {
showMenuSessionId.value = sessionId
}
const onCloseSessionMenu = () => {
showMenuSessionId.value = ''
}
const onNoneSelected = () => {
messageData.setSelectedSessionId('')
}
@@ -969,7 +973,11 @@ const onSendEmoji = (key) => {
</AddOprMenu>
</div>
<SessionMenu :sessionId="showMenuSessionId" @selectMenu="onSelectMenu">
<SessionMenu
:sessionId="showMenuSessionId"
@selectMenu="onSelectMenu"
@closeMenu="onCloseSessionMenu"
>
<div class="session-list my-scrollbar" ref="sessionListRef">
<SessionItem
:ref="(el) => setSessionItemRef(item.sessionId, el)"

View File

@@ -4,16 +4,24 @@ import { Top, Bottom, MuteNotification, Bell, CircleClose, Edit } from '@element
import { messageStore } from '@/stores'
const props = defineProps(['sessionId'])
const emit = defineEmits(['selectMenu'])
const emit = defineEmits(['selectMenu', 'closeMenu'])
const messageData = messageStore()
const top = computed(() => {
return messageData.sessionList[props.sessionId].top
if (props.sessionId) {
return messageData.sessionList[props.sessionId].top
} else {
return undefined
}
})
const dnd = computed(() => {
return messageData.sessionList[props.sessionId].dnd
if (props.sessionId) {
return messageData.sessionList[props.sessionId].dnd
} else {
return undefined
}
})
const menu = computed(() => {
@@ -62,9 +70,13 @@ onUnmounted(() => {
})
const handleSessionMenu = (e) => {
isShowMenu.value = props.sessionId && true
if (!isShowMenu.value) {
return
}
e.preventDefault() //阻止浏览器默认行为
e.stopPropagation() // 阻止冒泡
isShowMenu.value = true
x.value = e.clientX
y.value = e.clientY
@@ -84,6 +96,7 @@ const handleEscEvent = (event) => {
const closeMenu = () => {
isShowMenu.value = false
emit('closeMenu')
}
const handleClick = (item) => {