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

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

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

页面布局如下

<template>
<el-row style="height:100%">
<v-header></v-header> //头部组件
<el-row>
<el-col class="leftmenu" :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="fa" :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="fa" :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="fa" :class="item.class"></i>
{{item.name}}
</el-menu-item>
</template>
</el-menu>
</el-col>
<el-col class="contentRight" :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)

 



附页面效果图:

 

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

转载于:https://www.cnblogs.com/ycc-521/p/9597460.html

技术特点:采用层架构模式、数据分页、获取等均使用代码实现。注释详细、代码规范,非常适合学习和中小型学校使用。 功能描述: 一,可以导入和导出成绩,成绩单上的项目包括:姓名,学号,科目,班级,成绩,补考成绩,授课老师,考试日期。 其中成绩和补考成绩具体情况如下: 1,计算机课程:理论成绩,实践成绩,, 2,文化课:理论, 3,英语:考试成绩,平时成绩,总成绩 二,导入成绩后,系统会自动计算出该班级该科目的应考人数,实考人数,缺考人数,及格人数,不及格人数,平均分,通过率。 其中平均分和率具体情况如下: 1,计算机课程:理论成绩,实践成绩,总成绩(理论和实践各占50%) 2,文化课:理论, 3,英语:考试成绩,平时成绩,总成绩(考试成绩占80%,平时成绩占20%) 4,计算机课程: 理论平均分,通过率;实践平均分,通过率;总成绩的平均分,通过率。 5,文化课:理论成绩的平均分,通过率 6,英语:总成绩的平均分和通过率 :查询: 1,可以通过班级,学号,姓名,科目,及格的人和不及格的人,授课老师进行查询, 2,可以查询该班的单科成绩,也可以查询该班的各科成绩汇总。 3,可以按月度查询该月所有考试的平均分和通过率,也可 以按年度查询该年度的平均分和通过率。 4,可以查询授课老师某一门的月度和年度平均分和通过率和该老师所授所有课程的月度和年度平均分和通过率。 四、成绩排序 可按照该班级某门课程的理论成绩,实践成绩、总成绩进行排序 五、任课教师的管理 任课教师基本信息,该门课程的授课教师 教务处: 学校全体成员的信息管理,对考试科目,时间及对所考科目的编号等进行具体的管理,并对任课老师等输入的信息进行管理,对学生的信息进行必要的维护,可打印学生的所有信息。 绝对是可用实际部署使用的。很实惠的。 注意事项:运行时请修改附加数据库并修改数据库连接字符串(在web.config里面)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值