This commit is contained in:
jxxghp
2023-09-19 13:41:05 +08:00
parent 7d500aedb5
commit 552b20b5d9
2 changed files with 32 additions and 22 deletions
-21
View File
@@ -33,25 +33,6 @@ const updateIsVerticalNavScrolled = (val: boolean) => (isVerticalNavScrolled.val
function handleNavScroll(evt: Event) { function handleNavScroll(evt: Event) {
isVerticalNavScrolled.value = (evt.target as HTMLElement).scrollTop > 0 isVerticalNavScrolled.value = (evt.target as HTMLElement).scrollTop > 0
} }
// 是否LG大屏幕
const isLargeScreen = ref(false)
// 检测屏幕大小
function checkScreenSize() {
const screenWidth = window.innerWidth
isLargeScreen.value = screenWidth >= 1024
}
// 在组件挂载时和窗口大小变化时执行检查
onMounted(() => {
checkScreenSize()
window.addEventListener('resize', checkScreenSize)
})
// 在组件销毁前移除窗口大小变化监听器
onBeforeUnmount(() => {
window.removeEventListener('resize', checkScreenSize)
})
</script> </script>
<template> <template>
@@ -86,7 +67,6 @@ onBeforeUnmount(() => {
</slot> </slot>
<slot name="nav-items" :update-is-vertical-nav-scrolled="updateIsVerticalNavScrolled"> <slot name="nav-items" :update-is-vertical-nav-scrolled="updateIsVerticalNavScrolled">
<PerfectScrollbar <PerfectScrollbar
v-if="isLargeScreen"
tag="ul" tag="ul"
class="nav-items" class="nav-items"
:options="{ wheelPropagation: false }" :options="{ wheelPropagation: false }"
@@ -95,7 +75,6 @@ onBeforeUnmount(() => {
<slot /> <slot />
</PerfectScrollbar> </PerfectScrollbar>
<ul <ul
v-if="!isLargeScreen"
class="nav-items" class="nav-items"
> >
<slot /> <slot />
+32 -1
View File
@@ -10,6 +10,9 @@ globalTheme.name.value = localStorage.getItem('theme') || 'light'
// 提示框 // 提示框
const $toast = useToast() const $toast = useToast()
// 是否加载完成
const isLoaded = ref(false)
// SSE持续接收消息 // SSE持续接收消息
function startSSEMessager() { function startSSEMessager() {
const token = store.state.auth.token const token = store.state.auth.token
@@ -30,14 +33,42 @@ function startSSEMessager() {
} }
} }
// 是否LG大屏幕
const isLargeScreen = ref(false)
// 检测屏幕大小
function checkScreenSize() {
const screenWidth = window.innerWidth
isLargeScreen.value = screenWidth >= 1024
}
// 页面加载时,加载当前用户数据 // 页面加载时,加载当前用户数据
onBeforeMount(async () => { onBeforeMount(async () => {
checkScreenSize()
startSSEMessager() startSSEMessager()
// 如果是小屏幕,1秒后才显示界面
if (!isLargeScreen.value) {
setTimeout(() => {
isLoaded.value = true
}, 1000)
}
else {
isLoaded.value = true
}
}) })
</script> </script>
<template> <template>
<VApp> <div
v-if="!isLoaded"
class="mt-12 w-full text-center text-gray-500 text-sm flex flex-col items-center"
>
<VProgressCircular
size="48"
indeterminate
color="primary"
/>
</div>
<VApp v-show="isLoaded">
<RouterView /> <RouterView />
</VApp> </VApp>
</template> </template>