mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 15:36:49 +08:00
fix ui
This commit is contained in:
@@ -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
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user