离校前端框架,包括数据字典、工作队伍、新闻公告模块
diff --git a/leave-school-vue/src/views/layout/components/Navbar.vue b/leave-school-vue/src/views/layout/components/Navbar.vue
new file mode 100644
index 0000000..c901e8f
--- /dev/null
+++ b/leave-school-vue/src/views/layout/components/Navbar.vue
@@ -0,0 +1,95 @@
+<template>
+ <el-menu class="navbar" mode="horizontal">
+ <hamburger class="hamburger-container" :toggleClick="toggleSideBar" :isActive="sidebar.opened"></hamburger>
+ <breadcrumb></breadcrumb>
+ <el-dropdown class="avatar-container" trigger="click">
+ <div class="avatar-wrapper">
+ <img class="user-avatar" :src="avatar">
+ <i class="el-icon-caret-bottom"></i>
+ </div>
+ <el-dropdown-menu class="user-dropdown" slot="dropdown">
+ <router-link class="inlineBlock" to="/">
+ <el-dropdown-item>
+ 首页
+ </el-dropdown-item>
+ </router-link>
+ <el-dropdown-item divided>
+ <span @click="logout" style="display:block;">注销</span>
+ </el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ </el-menu>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import Breadcrumb from '@/components/Breadcrumb'
+import Hamburger from '@/components/Hamburger'
+
+export default {
+ components: {
+ Breadcrumb,
+ Hamburger
+ },
+ computed: {
+ ...mapGetters([
+ 'sidebar',
+ 'avatar'
+ ])
+ },
+ methods: {
+ toggleSideBar() {
+ this.$store.dispatch('ToggleSideBar')
+ },
+ logout() {
+ var pro = this.$store.dispatch('LogOut')
+ pro.then(() => {
+ location.reload() // 为了重新实例化vue-router对象 避免bug
+ })
+ }
+ }
+}
+</script>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+.navbar {
+ height: 50px;
+ line-height: 50px;
+ border-radius: 0px !important;
+ .hamburger-container {
+ line-height: 58px;
+ height: 50px;
+ float: left;
+ padding: 0 10px;
+ }
+ .screenfull {
+ position: absolute;
+ right: 90px;
+ top: 16px;
+ color: red;
+ }
+ .avatar-container {
+ height: 50px;
+ display: inline-block;
+ position: absolute;
+ right: 35px;
+ .avatar-wrapper {
+ cursor: pointer;
+ margin-top: 5px;
+ position: relative;
+ .user-avatar {
+ width: 40px;
+ height: 40px;
+ border-radius: 10px;
+ }
+ .el-icon-caret-bottom {
+ position: absolute;
+ right: -20px;
+ top: 25px;
+ font-size: 12px;
+ }
+ }
+ }
+}
+</style>
+