diff --git a/frontend_nuxt/app.vue b/frontend_nuxt/app.vue index e95e848e5..fcc9288a9 100644 --- a/frontend_nuxt/app.vue +++ b/frontend_nuxt/app.vue @@ -48,8 +48,16 @@ export default { } }) - const handleMenuOutside = () => { - if (isMobile.value) menuVisible.value = false + const handleMenuOutside = (event) => { + // 检查点击事件是否来自菜单按钮 + const menuBtn = document.querySelector('.menu-btn') + if (menuBtn && (menuBtn === event.target || menuBtn.contains(event.target))) { + return // 如果是菜单按钮的点击,不处理关闭 + } + + if (isMobile.value) { + menuVisible.value = false + } } return { menuVisible, hideMenu, handleMenuOutside } diff --git a/frontend_nuxt/nuxt.config.ts b/frontend_nuxt/nuxt.config.ts index bf7035354..7d94847ba 100644 --- a/frontend_nuxt/nuxt.config.ts +++ b/frontend_nuxt/nuxt.config.ts @@ -43,4 +43,9 @@ export default defineNuxtConfig({ ], }, }, + vue: { + compilerOptions: { + isCustomElement: (tag) => ['l-hatch', 'l-hatch-spinner'].includes(tag), + }, + }, }) diff --git a/frontend_nuxt/pages/posts/[id]/index.vue b/frontend_nuxt/pages/posts/[id]/index.vue index 3d6cc917d..8e05e5d80 100644 --- a/frontend_nuxt/pages/posts/[id]/index.vue +++ b/frontend_nuxt/pages/posts/[id]/index.vue @@ -249,6 +249,7 @@ import TimeManager from '~/utils/time' import { useRouter } from 'vue-router' import { useIsMobile } from '~/utils/screen' import Dropdown from '~/components/Dropdown.vue' +import { ClientOnly } from '#components' export default { name: 'PostPageView', @@ -262,6 +263,7 @@ export default { DropdownMenu, VueEasyLightbox, Dropdown, + ClientOnly, }, async setup() { const route = useRoute() diff --git a/frontend_nuxt/pages/users/[id].vue b/frontend_nuxt/pages/users/[id].vue index 607f5e0b5..26381d870 100644 --- a/frontend_nuxt/pages/users/[id].vue +++ b/frontend_nuxt/pages/users/[id].vue @@ -297,27 +297,26 @@