1.背景
2.基本结构
代码:
<template> <el-container class="home-container"> <!-- 头部--> <el-header>Header</el-header> <el-container> <!--左侧--> <el-aside width="200px">Aside</el-aside> <!--主题--> <el-main>Main</el-main> </el-container> </el-container> </template> <script> export default { name: "Home", methods: { // 退出登录 logout() { window.sessionStorage.clear() this.$router.push("/login") } } } </script> <style lang="less" scoped> .home-container { height: 100%; } .el-header { background-color: #373d41; display: flex; justify-content: space-between; padding-left: 0; align-items: center; color: #fff; font-size: 20px; > div { display: flex; align-items: center; span { margin-left: 15px; } } } .el-aside { background-color: #333744; .el-menu { border-right: none; } } .el-main { background-color: #eaedf1; } </style>View Code
3.头部
<template> <el-container class="home-container"> <!-- 头部--> <el-header> <div> <img src="../assets/ldp.png"> <span>后台管理系统</span> </div> <el-button type="info" @click="logout">退出</el-button> </el-header> <el-container> <!--左侧--> <el-aside width="200px">Aside</el-aside> <!--主题--> <el-main>Main</el-main> </el-container> </el-container> </template> <script> export default { name: "Home", methods: { // 退出登录 logout() { window.sessionStorage.clear() this.$router.push("/login") } } } </script> <style lang="less" scoped> .home-container { height: 100%; } .el-header { background-color: #373d41; display: flex; justify-content: space-between; padding-left: 0; align-items: center; color: #fff; font-size: 20px; > div { display: flex; align-items: center; span { margin-left: 15px; } } } .el-aside { background-color: #333744; .el-menu { border-right: none; } } .el-main { background-color: #eaedf1; } </style>View Code
4.左侧菜单
<template> <el-container class="home-container"> <!-- 头部--> <el-header> <div> <img src="../assets/ldp.png"> <span>后台管理系统</span> </div> <el-button type="info" @click="logout">退出</el-button> </el-header> <el-container> <!--左侧--> <el-aside width="200px"> <!--左侧菜单区域--> <el-menu default-active="2" class="el-menu-vertical-demo" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b"> <!-- 一级菜单--> <el-submenu index="1"> <!-- 一级菜单模板区--> <template slot="title"> <i class="el-icon-location"></i> <span>导航一</span> </template> <!-- 二级菜单--> <el-menu-item index="1-1"> <!-- 二级菜单模板区--> <template slot="title"> <i class="el-icon-location"></i> <span>导航一.1</span> </template> </el-menu-item> </el-submenu> </el-menu> </el-aside> <!--主题--> <el-main>Main</el-main> </el-container> </el-container> </template> <script> export default { name: "Home", methods: { // 退出登录 logout() { window.sessionStorage.clear() this.$router.push("/login") } } } </script> <style lang="less" scoped> .home-container { height: 100%; } .el-header { background-color: #373d41; display: flex; justify-content: space-between; padding-left: 0; align-items: center; color: #fff; font-size: 20px; > div { display: flex; align-items: center; span { margin-left: 15px; } } } .el-aside { background-color: #333744; .el-menu { border-right: none; } } .el-main { background-color: #eaedf1; } </style>View Code
5.请求统一配置token
// 设置请求token
axios.interceptors.request.use(config => {
// console.log(config)
config.headers.Authorization = window.sessionStorage.getItem('token')
// 在最后必须 return config
return config
})
6.菜单遍历
<template> <el-container class="home-container"> <!-- 头部--> <el-header> <div> <img src="../assets/ldp.png"> <span>后台管理系统</span> </div> <el-button type="info" @click="logout">退出</el-button> </el-header> <el-container> <!--左侧--> <el-aside width="200px"> <!--左侧菜单区域--> <el-menu default-active="2" class="el-menu-vertical-demo" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b"> <!-- 一级菜单--> <el-submenu v-for=" item in menuList" :index="item.id+''" :key="item.id"> <!-- 一级菜单模板区--> <template slot="title"> <i class="el-icon-location"></i> <span>{{item.authName}}</span> </template> <!-- 二级菜单--> <el-menu-item :index="itemChild.id+''" :key="itemChild.id" v-for="itemChild in item.children"> <!-- 二级菜单模板区--> <template slot="title"> <i class="el-icon-location"></i> <span>{{itemChild.authName}}</span> </template> </el-menu-item> </el-submenu> </el-menu> </el-aside> <!--主题--> <el-main>Main</el-main> </el-container> </el-container> </template> <script> export default { name: "Home", data() { // 菜单 return {menuList: []} }, // 模块加载的时候就执行 created() { this.getMenuList() }, methods: { // 退出登录 logout() { window.sessionStorage.clear() this.$router.push("/login") }, // 获取菜单数据 async getMenuList() { const {data: result} = await this.$http.get('menus') console.log(result) if (result.Meta.status !== 200) return this.$message.error(result.Meta.msg) this.menuList = result.data } } } </script> <style lang="less" scoped> .home-container { height: 100%; } .el-header { background-color: #373d41; display: flex; justify-content: space-between; padding-left: 0; align-items: center; color: #fff; font-size: 20px; > div { display: flex; align-items: center; span { margin-left: 15px; } } } .el-aside { background-color: #333744; .el-menu { border-right: none; } } .el-main { background-color: #eaedf1; } </style>View Code
完美!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。