Skip to content

Commit 9e320e4

Browse files
author
sunshine824
committed
添加404兜底路由
1 parent 8eae3c1 commit 9e320e4

File tree

2 files changed

+81
-1
lines changed

2 files changed

+81
-1
lines changed

src/layouts/SimplifyBasicLayout.tsx

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import { defineComponent, computed } from 'vue'
2+
import { Layout, Dropdown, Menu } from 'ant-design-vue'
3+
import { GlobalHeader, Menus } from '@/components/GlobalHeader'
4+
import { RouterView, RouteRecordRaw, useRouter, useRoute } from 'vue-router'
5+
6+
import styles from './index.module.less'
7+
import UserIcon from '../assets/user.png'
8+
9+
const SimplifyBasicLayout = defineComponent({
10+
name: 'SimplifyBasicLayout',
11+
setup() {
12+
const router = useRouter()
13+
14+
// 获取路由列表
15+
const getMenus = () => {
16+
let menuList: RouteRecordRaw[] = []
17+
const routes: Array<RouteRecordRaw> = router.options?.routes || []
18+
routes.forEach((item) => {
19+
if (item.path == '/') {
20+
menuList = item.children || []
21+
}
22+
})
23+
return JSON.parse(JSON.stringify(menuList))
24+
}
25+
26+
// 获取显示状态的路由
27+
const menuLists = computed(() => {
28+
return getMenus().filter((item: any) => !item?.meta?.hidden)
29+
})
30+
31+
// 退出
32+
const exit = () => {
33+
sessionStorage.clear()
34+
router.push('/login')
35+
}
36+
37+
const menuSlots = {
38+
overlay: () => (
39+
<Menu>
40+
<Menu.Item>
41+
<span onClick={exit}>退出</span>
42+
</Menu.Item>
43+
</Menu>
44+
),
45+
}
46+
47+
const slots = {
48+
content: () => (
49+
<>
50+
{/* 用户信息 */}
51+
<div class={styles['user-info']}>
52+
<Dropdown v-slots={menuSlots}>
53+
<div>
54+
<img src={UserIcon} class={styles['user-head']} />
55+
<a class={styles['user-name']}>admin</a>
56+
</div>
57+
</Dropdown>
58+
</div>
59+
</>
60+
),
61+
}
62+
return () => (
63+
<Layout class={styles['level-layout']}>
64+
<GlobalHeader v-slots={slots}></GlobalHeader>
65+
<div class={styles['level-content']}>
66+
{/* 导航栏 */}
67+
<div class={styles['vertical-sub-menu']}>
68+
<Menus menuLists={menuLists['value']} mode="inline"></Menus>
69+
</div>
70+
<Layout.Content>
71+
<RouterView />
72+
</Layout.Content>
73+
</div>
74+
</Layout>
75+
)
76+
},
77+
})
78+
79+
export default SimplifyBasicLayout

src/layouts/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import LevelBasicLayout from './LevelBasicLayout'
2+
import SimplifyBasicLayout from './SimplifyBasicLayout'
23
import RouteLayout from './RouteLayout'
34
import BlankLayout from './BlankLayout'
45

5-
export { LevelBasicLayout, RouteLayout, BlankLayout }
6+
export { LevelBasicLayout, RouteLayout, BlankLayout, SimplifyBasicLayout }

0 commit comments

Comments
 (0)