02. 搭建前端Vue主体框架
改造 App.vue 作为项目入口
<template>
<router-view />
</template>logo:

Layout 最终的布局代码
<template>
<div>
<el-container style="min-height: 100vh">
<el-header
style="
display: flex;
align-items: center;
border-bottom: 1px solid #ddd;
background-color: #fff;
"
>
<div
style="flex: 1; display: flex; align-items: center; font-size: 24px; font-weight: bold"
>
<img style="width: 40px" src="@/assets/imgs/logo.png" alt="" />
<div style="margin-left: 5px">智能实验室预约系统</div>
</div>
<div style="display: flex; align-items: center">
<img src="@/assets/imgs/logo.png" alt="" style="width: 30px; border-radius: 50%" />
<div style="margin-left: 3px">管理员</div>
</div>
</el-header>
<el-container>
<el-aside width="220px">
<el-menu router style="height: 100%" default-active="/manager/home">
<el-menu-item index="/manager/home">
<el-icon><icon-menu /></el-icon>
<span>系统首页</span>
</el-menu-item>
<el-menu-item index="/manager/lab">
<el-icon><House /></el-icon>
<span>实验室管理</span>
</el-menu-item>
<el-menu-item index="/manager/equ">
<el-icon><Setting /></el-icon>
<span>设备列表管理</span>
</el-menu-item>
<el-menu-item index="/manager/user">
<el-icon><User /></el-icon>
<span>用户管理</span>
</el-menu-item>
</el-menu>
</el-aside>
<el-main>
<router-view />
</el-main>
</el-container>
</el-container>
</div>
</template>
<script setup>
import { Menu as IconMenu, House, Setting, User } from '@element-plus/icons-vue'
</script>
路由文件 router.js
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{ path: '/', redirect: '/manager/home' },
{
path: '/manager',
name: 'Layout',
component: () => import('@/layouts/Layout.vue'),
children: [
{ path: 'home', name: 'Home', component: () => import('@/views/Home.vue') },
{ path: 'lab', name: 'Lab', component: () => import('@/views/Lab.vue') }
]
}
]
})
export default router
Home.vue 页面
<template>
<div>系统首页</div>
</template>
<script setup></script>