后端

topbar.vue 2.7KB

    <template> <header class="site-topbar"> <div class="site-topbar__header"> <h1 class="site-logo" @click="$router.push({ name: 'home' })"> <a class="site-logo__lg" href="javascript:;">Vue-cli-basic</a> <a class="site-logo__mini" href="javascript:;">Vue</a> </h1> </div> <div class="site-topbar__body clearfix"> <el-menu class="site-topbar__menu" mode="horizontal"> <el-menu-item class="site-topbar__switch" index="1-1" @click="switchSidebarCollapseHandle()"> <icon-svg name="zhedie"></icon-svg> </el-menu-item> </el-menu> <el-menu class="site-topbar__menu site-topbar__menu--right" mode="horizontal"> <el-menu-item class="site-topbar__avatar" index="1-2"> <el-dropdown placement="bottom" :hide-on-click="false"> <span class="el-dropdown-link"> <img src="~@/assets/img/avatar.png" :alt="$store.state.user.name"> {{ $store.state.user.name }} </span> <el-dropdown-menu slot="dropdown"> <el-dropdown-item @click.native="updatePasswordHandle()">修改密码</el-dropdown-item> <el-dropdown-item @click.native="logoutHandle()">退出</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </el-menu-item> </el-menu> </div> <!-- 弹窗, 修改密码 --> <update-password v-if="updatePassowrdVisible" ref="updatePassowrd"></update-password> </header> </template> <script> import UpdatePassword from './update-password' import API from '@/api' import { mapMutations } from 'vuex' export default { data () { return { updatePassowrdVisible: false } }, components: { UpdatePassword }, methods: { // 切换侧边栏, 水平折叠收起状态 switchSidebarCollapseHandle () { this.SWITCH_SIDEBAR_COLLAPSE({ collapse: !this.$store.state.sidebarCollapse }) }, // 修改密码 updatePasswordHandle () { this.updatePassowrdVisible = true this.$nextTick(() => { this.$refs.updatePassowrd.init() }) }, // 退出 logoutHandle () { this.$confirm(`确定进行[退出]操作?`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { API.common.logout().then(({data}) => { if (data && data.code === 0) { this.DELETE_CONTENT_TABS([]) this.$cookie.delete('token') this.$router.replace({ name: 'login' }) } }) }) }, ...mapMutations(['SWITCH_SIDEBAR_COLLAPSE', 'DELETE_CONTENT_TABS']) } } </script>