liuxiaolong
2019-05-06 19e47fa0e48ac76a951bbfaa0a3e95211567f5a1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<template>
  <b-navbar toggleable="lg" :variant="getLayoutNavbarBg()" class="layout-navbar align-items-lg-center container-x">
 
    <!-- Brand demo (see demo.css) -->
    <b-navbar-brand to="/" class="app-brand demo d-lg-none py-0 mr-4">
      <!-- <span class="app-brand-logo demo">
        <img src="/static/img/logo.png" width="100%" alt="">
      </span> -->
      <!-- <span class="app-brand-text demo font-weight-normal ml-2">{{$store.state.projectTitle}}</span> -->
      <h4 class="app-brand-text ml-2 font-weight-bold pt-3">{{$store.state.projectTitle}}</h4>
    </b-navbar-brand>
 
    <!-- Sidenav toggle (see demo.css) -->
    <b-navbar-nav class="layout-sidenav-toggle d-lg-none align-items-lg-center mr-auto" v-if="sidenavToggle">
      <a class="nav-item nav-link px-0 mr-lg-4" href="javascript:void(0)" @click="toggleSidenav">
        <i class="ion ion-md-menu text-large align-middle" />
      </a>
    </b-navbar-nav>
 
    <b-navbar-toggle target="app-layout-navbar"></b-navbar-toggle>
 
    <b-collapse is-nav id="app-layout-navbar">
      <!-- Divider -->
      <hr class="d-lg-none w-100 my-2">
 
      <b-navbar-nav class="align-items-lg-center ml-auto">
        <!-- 公告 end -->
        <quick-menu-button/>
        <b-nav-item-dropdown no-caret :right="!isRTL" class="demo-navbar-messages mr-lg-2">
          <template slot="button-content">
            <i class="ion ion-ios-mail navbar-icon align-middle f22"></i>
            <span class="badge badge-danger badge-dot indicator text-danger"></span>
            <span class="d-lg-none align-middle">&nbsp; 消息</span>
          </template>
 
          <div class="bg-primary text-center text-white font-weight-bold p-3">
            4 新消息
          </div>
          <a href="javascript:void(0)" class="d-block text-center text-light small p-2 my-1">显示全部消息</a>
        </b-nav-item-dropdown>
 
        <!-- Divider -->
        <!-- <div class="nav-item d-none d-lg-block text-big font-weight-light line-height-1 opacity-25 mr-3 ml-1">|</div> -->
        <!-- <div class="nav-item d-none d-lg-block text-big font-weight-light line-height-1 mr-3 ml-1 text-white">|</div> -->
        <div class="headImgUrl flex-center bg-white">
          <httpImg
            :propNoneImg="require('@/assets/img/user.png')"
            :src="userInfo.headImgUrl"
            width="100%"
            alt
          />
 
        </div>
        <!-- <b-nav-item-dropdown :right="!isRTL" class="demo-navbar-user">
          <template slot="button-content">
            <span class="d-inline-flex flex-lg-row-reverse align-items-center align-middle">
              <div class="headImgUrl flex-center bg-white">
                <httpImg
                  :propNoneImg="require('@/assets/img/user.png')"
                  :src="userInfo.headImgUrl"
                  width="100%"
                  alt
                />
              </div>
              <span class="px-1 mr-lg-2 ml-2 ml-lg-0">{{userInfo.username}}</span>
            </span>
          </template>
          <b-dd-item @click="toLogout"><i class="ion ion-ios-log-out text-danger"></i> &nbsp; 退 出</b-dd-item>
          <b-dd-item>{{userInfo.username}}</b-dd-item>
        </b-nav-item-dropdown> -->
        <div class="nav-item d-none d-lg-block text-big line-height-1 mr-3 ml-1 text-white cursor-pointer" @click="toLogout">退出</div>
        <!-- 快速跳转菜单 start -->
        <!-- <quick-menu/> -->
        <!-- 快速跳转菜单 end -->
      </b-navbar-nav>
 
    </b-collapse>
  </b-navbar>
</template>
 
<script>
import { logout } from '@/server/login.js'
import quickMenu from '@/components/quickMenu'
import quickMenuButton from '@/components/quickMenuButton'
 
export default {
  name: 'app-layout-navbar',
  props: {
    sidenavToggle: {
      type: Boolean,
      default: true
    }
  },
 
  data() {
    return {
      userInfo: {
        username: 'admin',
        headImgUrl: ''
      }
    }
  },
 
  methods: {
    toggleSidenav() {
      this.layoutHelpers.toggleCollapsed()
    },
 
    getLayoutNavbarBg() {
      return this.layoutNavbarBg
    },
 
    toLogout() {
      this.$swal(
        {
          title: '确定退出吗?',
          text: '你将要离开当前页面!',
          type: 'warning',
          showCancelButton: true,
          allowOutsideClick: true,
          // confirmButtonColor: '#d9534f',
          confirmButtonText: '确定离开!',
          cancelButtonText: '取消',
          closeOnConfirm: true
        },
        () => {
          logout()
        }
      )
    }
  },
 
  created() {
    if (
      sessionStorage.getItem('userInfo') &&
      sessionStorage.getItem('userInfo') !== ''
    ) {
      this.userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
    }
  },
  components: {
    quickMenu,
    quickMenuButton
  }
}
</script>
<style>
.headImgUrl {
  height: 30px;
  width: 30px;
  overflow: hidden;
  border-radius: 25px;
}
</style>