fix: 修复文件管理器菜单不会自动消失的问题
This commit is contained in:
@@ -110,6 +110,25 @@ watch(
|
||||
{ deep: true, immediate: true } // immediate 确保初始状态(如果isVisible为true)也设置正确
|
||||
);
|
||||
|
||||
// 点击其他地方自动关闭菜单
|
||||
const handleClickOutside = (event: MouseEvent) => {
|
||||
if (contextMenuRef.value && !contextMenuRef.value.contains(event.target as Node)) {
|
||||
emit('close-request');
|
||||
}
|
||||
};
|
||||
|
||||
watch(() => props.isVisible, (newValue) => {
|
||||
if (newValue) {
|
||||
document.addEventListener('click', handleClickOutside, { capture: true });
|
||||
} else {
|
||||
document.removeEventListener('click', handleClickOutside, { capture: true });
|
||||
}
|
||||
}, { immediate: true });
|
||||
|
||||
onUnmounted(() => {
|
||||
document.removeEventListener('click', handleClickOutside, { capture: true });
|
||||
});
|
||||
|
||||
// 隐藏菜单的逻辑由 useFileManagerContextMenu 中的全局点击监听器处理
|
||||
// 但我们仍然需要触发菜单项的 action,并通知父组件关闭菜单
|
||||
const emit = defineEmits(['item-click', 'close-request']); // 添加 close-request
|
||||
|
||||
Reference in New Issue
Block a user