vue基于element-ui制作的成绩管理系统(三)主界面 登录后跳转的页面

摘要:
左侧菜单导航栏。右侧实时加载的内容分为三部分。页面布局如下:{{item.name}}//管理员身份菜单˂el菜单项:index=“item.path”@click=“dolist”v-if=“!

1.在views文件夹下新建home.vue 

介绍下首页应该包含头部。左边菜单导航栏。右面实时加载的内容,整个部分划分为三块。

页面布局如下

<template>
<el-row style="height:100%">
<v-header></v-header> //头部组件
<el-row>
<el-col :span="3">
<el-menu :default-active="$route.path" light router v-if="showTeacher"> //教师身份菜单
<template v-for="(item,index) in menuitem"> //循环菜单
<el-menu-item :index="item.path" @click="dolist(item.path)" v-if="!item.hidden">
<i :class="item.class"></i> //绑定类
{{item.name}}
</el-menu-item>
</template>
</el-menu>
<el-menu :default-active="$route.path" light router v-if="showStudent"> //学生身份菜单
<template v-for="(item,index) in menuitems">
<el-menu-item :index="item.path" @click="dolist(item.path)" v-if="!item.hidden">
<i :class="item.class"></i>
{{item.name}}
</el-menu-item>
</template>
</el-menu>

<el-menu :default-active="$route.path" light router v-if="showManager"> //管理员身份菜单
<template v-for="(item,index) in menuitemM">
<el-menu-item :index="item.path" @click="dolist(item.path)" v-if="!item.hidden">
<i :class="item.class"></i>
{{item.name}}
</el-menu-item>
</template>
</el-menu>
</el-col>
<el-col :span="21" :offset="3">
<router-view></router-view> //右面内容区
</el-col>
</el-row>
</el-row>
</template>


<script>
import Header from '../views/header/header.vue' //头部组件引入
export default {
name: "home",
data(){
return{
showTeacher:false, //初始值都不显示
showStudent:false,
showManager:false,
menuitem:[
{path:'/person-msg',name:'个人信息',class: 'fa-line-chart'},
{path:'/grade-manage',name:'成绩管理', class: 'fa-newspaper-o'},
{path:'/grade-query',name:'成绩查询', class: 'fa-line-chart'},
{path:'/grade-write',name:'成绩录入', class: 'fa-newspaper-o'},
{path:'/system-settings',name:'修改密码', class: 'fa-line-chart'},
],
menuitems:[
{path:'/person-msg',name:'个人信息',class: 'fa-line-chart'},
{path:'/grade-query',name:'成绩查询', class: 'fa-line-chart'},
{path:'/system-settings',name:'修改密码', class: 'fa-line-chart'},
],
menuitemM:[
{path:'/person-msg',name:'个人信息',class: 'fa-line-chart'},
{path:'/student-manage',name:'学生管理',class: 'fa-table'},
{path:'/teacher-manage',name:'教师管理',class: 'fa-newspaper-o'},
{path:'/course-manage',name:'课程管理', class: 'fa-plug'},
{path:'/system-settings',name:'修改密码', class: 'fa-line-chart'},
],
}
},
components: {
'v-header': Header //头部组件引入
},
mounted(){
let role = sessionStorage.getItem('userrole'); //根据存储下来的信息,得到当前的角色名
    //通过角色名判断
if(role=='教师'){
this.showTeacher = true; //角色名是教师,教师菜单显示
}else if(role=='管理员'){
this.showManager = true; //角色名是管理员,管理员菜单显示
}else{
this.showStudent = true; //角色名时学生,学生菜单显示
}
history.pushState(null, null, document.URL);
window.addEventListener('popstate', function () {
history.pushState(null, null, document.URL); //这里是设置点击浏览器后退按钮不会返回到登录页,为了防止用户点击在首页时点击浏览器后退按钮返回到登录页,
});
},
methods:{
dolist(e){
this.$router.push({path:e}) //点击菜单跳转到对应页面,浏览器地址也跳转到指定URL
}
}
}
</script>

附:路由js(index.js)

vue基于element-ui制作的成绩管理系统(三)主界面 登录后跳转的页面第1张



附页面效果图:

vue基于element-ui制作的成绩管理系统(三)主界面 登录后跳转的页面第2张

                          付出不一定有回报,但不付出一定没有回报

免责声明:文章转载自《vue基于element-ui制作的成绩管理系统(三)主界面 登录后跳转的页面》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Fedora的一些个人配置《转》事务对数据库的重要性下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Vue2、websocket 与node.js接口 本地测试

Vue2、websocket 与node.js接口 本地测试 1.  安装vue-native-websocket模块 2.  yarn add vue-native-websocket  或者用  npm install vue-native-websocket --save   3. 在main.js中引入websocket import websoc...

Vue可伸缩工具栏

<template> <div class="main"> <div class="toolbar" :class="{ toolbar_show: !openStatus }"> <el-button type="primary" size="small">点击</el-button>...

#学习分享#开发基础知识之前端测试(一)

前言:本文用于2018/1/30晚内部分享。主题:前端单元测试 正文: 一、思考 我的目标是,如何浅入本次的主题,让愿意接收陌生信号的“对象”快速简单的get到信号,并且对本次分享产生一个小兴趣。 二、What     本章节主要讲述前端单元测试做什么,vue单元测试做什么。   (1) 基础概念 测试的概念:测试是检测你的应用代码(也叫“生产代码”)...

vue开发环境和生产环境的跨域

前端在生产环境跨域 一,开发环境跨域 1.配置代理 如果使用vue-cli搭建的项目,可以直接使用proxyTable模块,项目框架已经集成在config -> index.js 页面配置proxyTable,如下: proxyTable: { '/api':{ //开发坏境下:target 里的地址是你跨域请求的...

vue框架前后端分离项目之区间过滤、搜索及支付宝支付功能等相关内容-130

1 区间过滤 # 方式一:自己写过滤类,配置到视图类的 filter_backends = [自己写的过滤类]# 方式二:借助django—fileter # 1 写一个类:    from . import models    from django_filters import filters    class CourseFilterSe...

采用vue编写的功能强大的swagger-ui页面

think-swagger-ui-vuele swagger-ui有非常多的版本,觉得不太好用,用postman,每个接口都要自己进行录入。所以在基于think-vuele进行了swagger格式json的解析,自己实现了一套swaggerui界面。 swagger分为后端数据提供方方和前端页面展示请求方。从一定角度来看,swagger是一种标准的数据格式...