2025-01-09 11:01:35 +00:00
|
|
|
<script setup>
|
2025-01-08 07:32:54 +00:00
|
|
|
import { useI18n } from 'vue-i18n'
|
2025-01-09 11:01:35 +00:00
|
|
|
import {message} from '@/components/x-message/useMessage.js'
|
2025-01-15 05:05:07 +00:00
|
|
|
// message.success('success')
|
2025-01-08 05:26:12 +00:00
|
|
|
useHead({
|
2025-01-08 07:32:54 +00:00
|
|
|
title: useI18n().t('appSetting.appName'),
|
|
|
|
meta: [
|
|
|
|
{ name: 'description', content: useI18n().t('appSetting.appDescription') },
|
2025-01-08 08:06:43 +00:00
|
|
|
{ name: 'keywords', content: useI18n().t('appSetting.appKeyWords') },
|
2025-01-08 07:32:54 +00:00
|
|
|
],
|
2025-01-08 05:26:12 +00:00
|
|
|
})
|
|
|
|
const color = useColorMode()
|
|
|
|
const mode = computed(() => {
|
2025-01-09 11:01:35 +00:00
|
|
|
return color.value
|
2025-01-08 05:26:12 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
2025-01-09 11:01:35 +00:00
|
|
|
<VanConfigProvider :theme="mode" >
|
2025-01-08 07:32:54 +00:00
|
|
|
<NuxtLoadingIndicator
|
|
|
|
color="repeating-linear-gradient(to right,var(--c-primary) 0%,var(--c-primary-active) 100%)" />
|
2025-01-08 05:26:12 +00:00
|
|
|
<NuxtLayout>
|
2025-01-15 01:18:43 +00:00
|
|
|
<NuxtPage/>
|
2025-01-08 05:26:12 +00:00
|
|
|
</NuxtLayout>
|
|
|
|
</VanConfigProvider>
|
|
|
|
</template>
|
2025-01-08 07:32:54 +00:00
|
|
|
|
|
|
|
<style>
|
|
|
|
.page-enter-active,
|
|
|
|
.page-leave-active {
|
|
|
|
transition: all 0.2s;
|
|
|
|
}
|
|
|
|
|
|
|
|
.page-enter-from,
|
|
|
|
.page-leave-to {
|
|
|
|
opacity: 0;
|
|
|
|
filter: blur(1rem);
|
|
|
|
}
|
|
|
|
</style>
|