1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00

fix: routes mets typed

Signed-off-by: Kaifuny <superbiger.github@gmail.com>
This commit is contained in:
Kaifuny 2023-07-29 21:45:36 +08:00
parent 14c00a9081
commit 0e183c2b5f
12 changed files with 142 additions and 4 deletions

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [
{
path: 'social',
name: ROUTE_NAME.SYSTEM_SOCIAL_INDEX,
component: () => import('../views/HomeView.vue'),
component: () => import('../views/AuthenticatorView.vue'),
meta: {
title: '认证登录',
requiresAuth: true,

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -0,0 +1,3 @@
<template>
<div>调整登录</div>
</template>

View File

@ -0,0 +1,13 @@
import 'vue-router'
import { Component } from 'vue'
declare module 'vue-router' {
interface RouteMeta {
// 是可选的
icon?: Component,
comingSoon?: boolean
// 每个路由都必须声明
requiresAuth: boolean
title: string
}
}

View File

@ -1,6 +1,6 @@
import { MenuOption, NIcon } from 'naive-ui'
import { Component, h } from 'vue'
import { RouteRecordRaw } from 'vue-router'
import { RouteRecordRaw, RouterLink } from 'vue-router'
function renderIcon(icon?: Component) {
if (icon) {
@ -18,14 +18,32 @@ export function routesToMenus(
array.forEach((route: RouteRecordRaw) => {
if (route.children) {
result.push({
label: route.meta?.title,
label: h(
RouterLink,
{
to: {
name: route.name,
},
},
{ default: () => route.meta?.title as string }
),
title: route.meta?.title,
key: route.path,
icon: renderIcon(route.meta?.icon),
children: routesToMenus(route.children, true),
})
} else {
result.push({
label: route.meta?.title,
label: h(
RouterLink,
{
to: {
name: route.name,
},
},
{ default: () => route.meta?.title as string }
),
title: route.meta?.title,
key: route.name as string,
icon: renderIcon(route.meta?.icon),
disabled: route.meta?.disabled as boolean,