应用配置增加 home.fullPath

This commit is contained in:
Hooray Hu
2023-12-14 21:43:07 +08:00
parent f1c31a2fc2
commit a9a2704ae1
12 changed files with 29 additions and 16 deletions
+5 -1
View File
@@ -1,10 +1,14 @@
<script setup lang="ts">
import useSettingsStore from '@/store/modules/settings'
defineOptions({
name: 'NotAllowed',
})
const router = useRouter()
const settingsStore = useSettingsStore()
const data = ref({
inter: Number.NaN,
countdown: 5,
@@ -25,7 +29,7 @@ onMounted(() => {
})
function goBack() {
router.push('/')
router.push(settingsStore.settings.home.fullPath)
}
</script>
+1 -5
View File
@@ -22,11 +22,7 @@ const settingsStore = useSettingsStore()
const title = ref(import.meta.env.VITE_APP_TITLE)
const logo = ref(imgLogo)
const to = computed(() => {
return {
...(settingsStore.settings.home.enable && { name: 'home' }),
}
})
const to = computed(() => settingsStore.settings.home.enable ? settingsStore.settings.home.fullPath : '')
</script>
<template>
+1 -1
View File
@@ -76,7 +76,7 @@ watch(() => userStore.avatar, () => {
<HDropdownMenu
:items="[
[
{ label: settingsStore.settings.home.title, handle: () => router.push({ name: 'home' }), hide: !settingsStore.settings.home.enable },
{ label: settingsStore.settings.home.title, handle: () => router.push({ path: settingsStore.settings.home.fullPath }), hide: !settingsStore.settings.home.enable },
{ label: '个人设置', handle: () => router.push({ name: 'personalSetting' }) },
],
[
@@ -21,7 +21,7 @@ const breadcrumbList = computed(() => {
const breadcrumbList = []
if (settingsStore.settings.home.enable) {
breadcrumbList.push({
path: '/',
path: settingsStore.settings.home.fullPath,
title: settingsStore.settings.home.title,
})
}
+3 -3
View File
@@ -34,12 +34,12 @@ router.beforeEach(async (to, from, next) => {
// 如果已登录状态下,进入登录页会强制跳转到主页
if (to.name === 'login') {
next({
name: 'home',
path: settingsStore.settings.home.fullPath,
replace: true,
})
}
// 如果未开启主页,但进入的是主页,则会进入侧边栏导航第一个模块
else if (!settingsStore.settings.home.enable && to.name === 'home') {
else if (!settingsStore.settings.home.enable && to.fullPath === settingsStore.settings.home.fullPath) {
if (menuStore.sidebarMenus.length > 0) {
next({
path: menuStore.sidebarMenusFirstDeepestPath,
@@ -105,7 +105,7 @@ router.beforeEach(async (to, from, next) => {
next({
name: 'login',
query: {
redirect: to.fullPath !== '/' ? to.fullPath : undefined,
redirect: to.fullPath !== settingsStore.settings.home.fullPath ? to.fullPath : undefined,
},
})
}
-1
View File
@@ -48,7 +48,6 @@ const systemRoutes: RouteRecordRaw[] = [
children: [
{
path: '',
name: 'home',
component: () => import('@/views/index.vue'),
meta: {
title: () => useSettingsStore().settings.home.title,
+1
View File
@@ -14,6 +14,7 @@ const globalSettingsDefault: RecursiveRequired<Settings.all> = {
home: {
enable: true,
title: '主页',
fullPath: '/',
},
layout: {
enableMobileAdaptation: false,
+1 -1
View File
@@ -64,7 +64,7 @@ const useMenuStore = defineStore(
const sidebarMenusFirstDeepestPath = computed(() => {
return sidebarMenus.value.length > 0
? getDeepestPath(sidebarMenus.value[0])
: '/'
: settingsStore.settings.home.fullPath
})
function getDeepestPath(menu: Menu.recordRaw, rootPath = '') {
let retnPath = ''
+3 -1
View File
@@ -1,3 +1,4 @@
import useSettingsStore from './settings'
import useRouteStore from './route'
import useMenuStore from './menu'
import router from '@/router'
@@ -7,6 +8,7 @@ const useUserStore = defineStore(
// 唯一ID
'user',
() => {
const settingsStore = useSettingsStore()
const routeStore = useRouteStore()
const menuStore = useMenuStore()
@@ -56,7 +58,7 @@ const useUserStore = defineStore(
router.push({
name: 'login',
query: {
...(router.currentRoute.value.path !== '/' && router.currentRoute.value.name !== 'login' && { redirect }),
...(router.currentRoute.value.path !== settingsStore.settings.home.fullPath && router.currentRoute.value.name !== 'login' && { redirect }),
},
})
}
+5
View File
@@ -55,6 +55,11 @@ declare namespace Settings {
* @默认值 `'主页'`
*/
title?: string
/**
* 主页完整路径
* @默认值 `'/'`
*/
fullPath?: string
}
interface layout {
/**
+5 -1
View File
@@ -7,8 +7,12 @@ meta:
</route>
<script setup lang="ts">
import useSettingsStore from '@/store/modules/settings'
const router = useRouter()
const settingsStore = useSettingsStore()
const data = ref({
inter: Number.NaN,
countdown: 5,
@@ -29,7 +33,7 @@ onMounted(() => {
})
function goBack() {
router.push('/')
router.push(settingsStore.settings.home.fullPath)
}
</script>
+3 -1
View File
@@ -9,6 +9,7 @@ meta:
import type { FormInstance, FormRules } from 'element-plus'
import { ElMessage } from 'element-plus'
import Copyright from '@/layouts/components/Copyright/index.vue'
import useSettingsStore from '@/store/modules/settings'
import useUserStore from '@/store/modules/user'
defineOptions({
@@ -18,6 +19,7 @@ defineOptions({
const route = useRoute()
const router = useRouter()
const settingsStore = useSettingsStore()
const userStore = useUserStore()
const banner = new URL('../assets/images/login-banner.png', import.meta.url).href
@@ -27,7 +29,7 @@ const title = import.meta.env.VITE_APP_TITLE
// 表单类型,login 登录,register 注册,reset 重置密码
const formType = ref('login')
const loading = ref(false)
const redirect = ref(route.query.redirect?.toString() ?? '/')
const redirect = ref(route.query.redirect?.toString() ?? settingsStore.settings.home.fullPath)
// 登录
const loginFormRef = ref<FormInstance>()