fix: 修复文件管理器菜单不会自动消失的问题

This commit is contained in:
Baobhan Sith
2025-05-17 08:40:05 +08:00
parent 269131a306
commit e967fa34a9
@@ -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