阅读 99

vue+elementUI的管理后台实例

第一次写管理后台的时候我还不懂用elementui的组件,直到后面有人和我说才知道有这个一个组合型的组件然后弄成一个简单的管理后台的模板

使用的是elementUI的Container 布局容器,NavMenu 导航菜单,使用了导航菜单的路由功能来实现点击切换的功能。

image-20211101091607828.png

代码目录(代码文件连接:github.com/ljy-110/vue…

image-20211101090929178.png

一、布局的页面代码

<template>   <div style="height:100%;">     <el-container class="index-con">       <el-aside :class="showclass">         <leftnav></leftnav>       </el-aside>       <el-container class="main-con">         <el-header class="index-header">           <topNav></topNav>         </el-header>         <el-main clss="index-main">           <router-view></router-view>         </el-main>       </el-container>     </el-container>   </div> </template> <script> import topNav from './nav/topNav' import leftnav from './nav/leftnav' export default {   props: {},   components: {     leftnav,     topNav   },   data () {     return {        showclass: 'asideshow',     };   },   created() {},   methods: {},   computed: {},   mounted(){},   watch: {} } </script> <style lang='css' scoped> .el-header, .el-footer {   background-color: #B3C0D1;   color: #333;   text-align: center;   line-height: 60px; } /* .el-aside {   background-color: #D3DCE6;   color: #333;   text-align: center;   line-height: 200px; } */ .el-main {   background-color: #E9EEF3;   color: #333;   text-align: center;   line-height: 160px; } body > .el-container {   margin-bottom: 40px; } .el-container:nth-child(5) .el-aside, .el-container:nth-child(6) .el-aside {   line-height: 260px; } .el-container:nth-child(7) .el-aside {   line-height: 320px; } .index-con {   height: 100%;   width: 100%;   box-sizing: border-box; } .aside {   width: 64px !important;   height: 100%;   background-color: #334157;   margin: 0px; } .asideshow {   width: 240px !important;   height: 100%;   background-color: #334157;   margin: 0px; } .index-header, .index-main {   padding: 0px;   border-left: 2px solid #333; } </style> 复制代码

二、左边导航的文件代码

<template>   <div style="height:100%;">     <div class="left-nav">       <el-menu       :default-active="this.$route.path" //标识使用了路由来做       class="el-menu-vertical-demo"       @open="handleOpen"       @close="handleClose"       background-color="#334157" //配置颜色       text-color="#fff"       active-text-color="#ffd04b"       router>       <h3 class="logobox">后台管理系统</h3>       <el-submenu index="1">         <template slot="title">           <i class="el-icon-location"></i>           <span>导航一</span>         </template>         <el-menu-item-group>           <!-- <template slot="title">分组一</template> -->           <el-menu-item index="/nav1">选项1</el-menu-item>           <el-menu-item index="/nav2">选项2</el-menu-item>         </el-menu-item-group>       </el-submenu>       <el-menu-item index="/nav5">         <i class="el-icon-menu"></i>         <span slot="title">导航二</span>       </el-menu-item>       <el-menu-item index="/nav3">         <i class="el-icon-document"></i>         <span slot="title">导航三</span>       </el-menu-item>       <el-menu-item index="/nav4">         <i class="el-icon-setting"></i>         <span slot="title">导航四</span>       </el-menu-item>     </el-menu>     </div>   </div> </template> <script> export default {   props: {},   components: {},   data () {     return {       activeIndex:'1'     };   },   created() {},   methods: {     handleSelect(key, keyPath) {       console.log(key, keyPath);     },     handleOpen(key, keyPath) {       console.log(key, keyPath);     },     handleClose(key, keyPath) {       console.log(key, keyPath);     }   },   computed: {},   mounted(){},   watch: {} } </script> <style lang='css' scoped> .left-nav{   /* width: 12%; */   height: 100%;   background-color:#334157; } .logobox {   height: 60px;   line-height: 60px;   color: #9d9d9d;   font-size: 20px;   text-align: center;   margin: 0px;   /* padding: 20px 0px; */ } .left-nav >>> .el-menu{   border-right: 0px; } </style> 复制代码

三、头部导航的文件代码

<template>   <div style="height:100%;" class="bwt bg">     <div class="width:90%">       <el-menu         :default-active="this.$route.path"         class="el-menu-demo"         mode="horizontal"         @open="handleOpen"         @close="handleClose"         @select="handleSelect"         background-color="#334157"         text-color="#fff"         active-text-color="#ffd04b"         router>         <el-menu-item index="/top1">处理中心</el-menu-item>         <el-menu-item index="/top2">消息中心</el-menu-item>         <!-- <el-menu-item index="/nav5">订单管理</el-menu-item> -->       </el-menu>     </div>     <div>       <el-menu         :default-active="activeIndex"         class="el-menu-demo"         mode="horizontal"         background-color="#334157"         text-color="#fff"         active-text-color="#ffd04b">         <!-- <el-menu-item index="/top1">处理中心</el-menu-item> -->         <el-submenu index="2">           <template slot="title">管理员</template>           <el-menu-item index="2-1">个人中心</el-menu-item>           <el-menu-item index="2-2" @click="$router.push({ path:'/' })">退出</el-menu-item>         </el-submenu>         <!-- <el-menu-item index="/top2">消息中心</el-menu-item> -->         <!-- <el-menu-item index="/nav5">订单管理</el-menu-item> -->       </el-menu>     </div>   </div> </template> <script> export default {   props: {},   components: {},   data () {     return {       activeIndex:'1'     };   },   created() {},   methods: {     handleSelect(key, keyPath) {       console.log(key, keyPath);     },     handleOpen(key, keyPath) {       console.log(key, keyPath);     },     handleClose(key, keyPath) {       console.log(key, keyPath);     }   },   computed: {},   mounted(){},   watch: {} } </script> <style lang='css' scoped> /* .left-nav{   width: 12%;   height: 93.5%;   background-color:#545c64; } */ .bwt{   justify-content: space-between;   width: 100%;   display: flex; } .bg{   background-color:#334157; } </style>


作者:青烟小生
链接:https://juejin.cn/post/7026505262924038157


文章分类
前端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐