fix: dropdown menu responsiveness and improve dialog handling (#8187)

* fix: 修复用户下拉框小部件菜单行点击无响应及弹框闪退

- 主题/时区/全屏/通知菜单行补充 @select 处理器,点击行任意位置即可触发
- 时区设置弹框宿主移出 DropdownMenu(showButton 模式),修复弹框随下拉框关闭而闪退
- 通知组件暴露 toggle 供下拉框调用
- 偏好设置小部件文案精简,positionMap 顺序调整

* feat: draggable-list.vue 直接复用 SelectItem,用法和 tabbar.vue 完全一致
This commit is contained in:
xingyu
2026-07-23 15:14:25 +08:00
committed by GitHub
parent 98dea92225
commit 2d82505330
7 changed files with 101 additions and 59 deletions

View File

@@ -12,6 +12,8 @@ import {
VbenIconButton,
} from '@vben-core/shadcn-ui';
withDefaults(defineProps<{ showButton?: boolean }>(), { showButton: true });
const TimezoneIcon = createIconifyIcon('fluent-mdl2:world-clock');
const timezoneStore = useTimezoneStore();
@@ -47,17 +49,20 @@ const [Modal, modalApi] = useVbenModal({
},
});
const handleClick = () => {
function open() {
modalApi.open();
};
}
defineExpose({ open });
</script>
<template>
<div>
<VbenIconButton
v-if="showButton"
:tooltip="$t('ui.widgets.timezone.setTimezone')"
class="hover:animate-[shrink_0.3s_ease-in-out]"
@click="handleClick"
@click="open"
>
<TimezoneIcon class="size-4 text-foreground" />
</VbenIconButton>