refactor: always display the navbar on the page
This commit is contained in:
parent
90bec318c2
commit
085ff2fbf8
|
|
@ -17,14 +17,22 @@ const title = computed(() => {
|
||||||
|
|
||||||
return route.meta.i18n ? t(route.meta.i18n) : (route.meta.title || '')
|
return route.meta.i18n ? t(route.meta.i18n) : (route.meta.title || '')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const showLeftArrow = computed(() => {
|
||||||
|
if (!route.meta)
|
||||||
|
return false
|
||||||
|
|
||||||
|
return route.meta.level === 2
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<VanNavBar
|
<VanNavBar
|
||||||
v-if="title"
|
|
||||||
:title="title"
|
:title="title"
|
||||||
:fixed="true"
|
:fixed="true"
|
||||||
clickable left-arrow placeholder
|
clickable
|
||||||
|
placeholder
|
||||||
|
:left-arrow="showLeftArrow"
|
||||||
@click-left="onBack"
|
@click-left="onBack"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ const { t } = useI18n()
|
||||||
const active = ref(0)
|
const active = ref(0)
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
const display = computed(() => {
|
const show = computed(() => {
|
||||||
if (route.meta.level && route.meta.level !== 2)
|
if (route.meta.level && route.meta.level !== 2)
|
||||||
return true
|
return true
|
||||||
return false
|
return false
|
||||||
|
|
@ -11,7 +11,7 @@ const display = computed(() => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<van-tabbar v-if="display" v-model="active" route placeholder>
|
<van-tabbar v-if="show" v-model="active" placeholder route>
|
||||||
<van-tabbar-item replace to="/">
|
<van-tabbar-item replace to="/">
|
||||||
{{ t('layouts.home') }}
|
{{ t('layouts.home') }}
|
||||||
<template #icon>
|
<template #icon>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
{
|
{
|
||||||
"home": {
|
"menus": {
|
||||||
|
"home": "Home",
|
||||||
|
"profile": "My Center",
|
||||||
"darkMode": "🌗 Dark Mode",
|
"darkMode": "🌗 Dark Mode",
|
||||||
"mockGuide": "💿 Mock Guide",
|
"mockGuide": "💿 Mock Guide",
|
||||||
"language": "📚 Language",
|
"language": "📚 Language",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
{
|
{
|
||||||
"home": {
|
"menus": {
|
||||||
|
"home": "主页",
|
||||||
|
"profile": "个人中心",
|
||||||
"darkMode": "🌗 暗黑模式",
|
"darkMode": "🌗 暗黑模式",
|
||||||
"mockGuide": "💿 Mock 指南",
|
"mockGuide": "💿 Mock 指南",
|
||||||
"language": "📚 语言",
|
"language": "📚 语言",
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
definePage({
|
definePage({
|
||||||
name: '404',
|
name: '404',
|
||||||
meta: {
|
meta: {
|
||||||
|
title: '404',
|
||||||
|
i18n: 'menus.404Demo',
|
||||||
level: 2,
|
level: 2,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ definePage({
|
||||||
meta: {
|
meta: {
|
||||||
level: 2,
|
level: 2,
|
||||||
title: '📊 Echarts 演示',
|
title: '📊 Echarts 演示',
|
||||||
i18n: 'home.echartsDemo',
|
i18n: 'menus.echartsDemo',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ definePage({
|
||||||
meta: {
|
meta: {
|
||||||
level: 2,
|
level: 2,
|
||||||
title: '🍍 持久化 Pinia 状态',
|
title: '🍍 持久化 Pinia 状态',
|
||||||
i18n: 'home.persistPiniaState',
|
i18n: 'menus.persistPiniaState',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import { languageColumns, locale } from '@/utils/i18n'
|
||||||
definePage({
|
definePage({
|
||||||
name: 'home',
|
name: 'home',
|
||||||
meta: {
|
meta: {
|
||||||
|
title: '主页',
|
||||||
|
i18n: 'menus.home',
|
||||||
level: 1,
|
level: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
@ -38,19 +40,19 @@ function onLanguageConfirm(event: { selectedOptions: PickerColumn }) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const menuItems = computed(() => ([
|
const menuItems = computed(() => ([
|
||||||
{ title: t('home.mockGuide'), route: 'mock' },
|
{ title: t('menus.mockGuide'), route: 'mock' },
|
||||||
{ title: t('home.echartsDemo'), route: 'charts' },
|
{ title: t('menus.echartsDemo'), route: 'charts' },
|
||||||
{ title: t('home.unocssExample'), route: 'unocss' },
|
{ title: t('menus.unocssExample'), route: 'unocss' },
|
||||||
{ title: t('home.persistPiniaState'), route: 'counter' },
|
{ title: t('menus.persistPiniaState'), route: 'counter' },
|
||||||
{ title: t('home.404Demo'), route: 'unknown' },
|
{ title: t('menus.404Demo'), route: 'unknown' },
|
||||||
{ title: t('home.keepAlive'), route: 'keepalive' },
|
{ title: t('menus.keepAlive'), route: 'keepalive' },
|
||||||
]))
|
]))
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="pt-46">
|
<div class="pt-16">
|
||||||
<VanCellGroup inset>
|
<VanCellGroup inset>
|
||||||
<VanCell center :title="t('home.darkMode')">
|
<VanCell center :title="t('menus.darkMode')">
|
||||||
<template #right-icon>
|
<template #right-icon>
|
||||||
<VanSwitch v-model="checked" size="20px" aria-label="on/off Dark Mode" @click="toggle()" />
|
<VanSwitch v-model="checked" size="20px" aria-label="on/off Dark Mode" @click="toggle()" />
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -58,7 +60,7 @@ const menuItems = computed(() => ([
|
||||||
|
|
||||||
<VanCell
|
<VanCell
|
||||||
is-link
|
is-link
|
||||||
:title="t('home.language')"
|
:title="t('menus.language')"
|
||||||
:value="language"
|
:value="language"
|
||||||
@click="showLanguagePicker = true"
|
@click="showLanguagePicker = true"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ definePage({
|
||||||
meta: {
|
meta: {
|
||||||
level: 2,
|
level: 2,
|
||||||
title: '🧡 KeepAlive',
|
title: '🧡 KeepAlive',
|
||||||
i18n: 'home.keepAlive',
|
i18n: 'menus.keepAlive',
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ definePage({
|
||||||
meta: {
|
meta: {
|
||||||
level: 2,
|
level: 2,
|
||||||
title: '💿 Mock 指南',
|
title: '💿 Mock 指南',
|
||||||
i18n: 'home.mockGuide',
|
i18n: 'menus.mockGuide',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
definePage({
|
definePage({
|
||||||
name: 'profile',
|
name: 'profile',
|
||||||
meta: {
|
meta: {
|
||||||
|
title: '个人中心',
|
||||||
|
i18n: 'menus.profile',
|
||||||
level: 1,
|
level: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ definePage({
|
||||||
meta: {
|
meta: {
|
||||||
level: 2,
|
level: 2,
|
||||||
title: '🎨 Unocss 示例',
|
title: '🎨 Unocss 示例',
|
||||||
i18n: 'home.unocssExample',
|
i18n: 'menus.unocssExample',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue