diff --git a/app/app.vue b/app/app.vue index 50092a6..7da29f2 100644 --- a/app/app.vue +++ b/app/app.vue @@ -2,6 +2,8 @@ import {useI18n} from 'vue-i18n' import {message} from '@/components/x-message/useMessage.js' import {hideMinWindow1} from "@/components/floatingBubble/floating.js"; +import AppSkeleton from '@/components/app-skeleton/index.vue' + // message.success('success') useHead({ title: useI18n().t('appSetting.appName'), @@ -20,6 +22,34 @@ const { locale } = useI18n() // 记录路由历史 const routeHistory = ref([]) +// 获取骨架屏状态 +const nuxtApp = useNuxtApp() +const isSkeletonLoading = ref(true) + +// 在组件挂载后获取骨架屏状态 +onMounted(() => { + console.log('app.vue 已挂载,检查骨架屏状态') + + // 立即检查一次骨架屏状态 + if (nuxtApp.$appSkeleton) { + console.log('找到骨架屏插件,当前状态:', nuxtApp.$appSkeleton.isLoading.value) + isSkeletonLoading.value = nuxtApp.$appSkeleton.isLoading.value + + // 监听骨架屏状态变化 + watch(() => nuxtApp.$appSkeleton.isLoading.value, (newValue) => { + console.log('骨架屏状态变化:', newValue) + isSkeletonLoading.value = newValue + }, { immediate: true }) + } else { + console.log('未找到骨架屏插件,将使用备用机制') + // 如果插件未加载,3秒后自动隐藏 + setTimeout(() => { + isSkeletonLoading.value = false + console.log('备用机制:骨架屏已隐藏') + }, 3000) + } +}) + router.beforeEach((to, from) => { // 记录路由历史 routeHistory.value.push(from.path) @@ -43,6 +73,9 @@ provide('slideDirection', slideDirection)