1
- <template >
2
- <a-layout-header style =" padding : 0px ;" >
3
- <div class =" header" >
4
- <a-icon class =" trigger" :type =" collapsed ? 'menu-unfold' : 'menu-fold'" @click.native =" toggle" />
5
- <div class =" user-wrapper" >
6
- <span class =" action" >
7
- <a-icon type =" question-circle-o" ></a-icon >
8
- </span >
9
- <header-notice class =" action" />
10
- <a-dropdown >
11
- <span class =" action ant-dropdown-link user-dropdown-menu" >
12
- <a-avatar class =" avatar" size =" small" :src =" avatar()" />
13
- <span >{{ nickname() }}</span >
14
- </span >
15
- <a-menu slot =" overlay" class =" user-dropdown-menu-wrapper" >
16
- <a-menu-item key =" 0" >
17
- <a-icon type =" user" />
18
- <span >个人中心</span >
19
- </a-menu-item >
20
- <a-menu-item key =" 1" >
21
- <router-link :to =" { name: 'settings' }" >
22
- <a-icon type =" setting" />
23
- <span >账户设置</span >
24
- </router-link >
25
- </a-menu-item >
26
- <a-menu-item key =" 2" disabled >
27
- <a-icon type =" setting" />
28
- <span >测试</span >
29
- </a-menu-item >
30
- <a-menu-divider />
31
- <a-menu-item key =" 3" >
32
- <a href =" javascript:;" @click =" handleLogout" >
33
- <a-icon type =" logout" />
34
- <span >退出登录</span >
35
- </a >
36
- </a-menu-item >
37
- </a-menu >
38
- </a-dropdown >
39
- </div >
40
- </div >
41
- </a-layout-header >
42
- </template >
43
-
44
- <script >
45
- import HeaderNotice from ' ./HeaderNotice'
46
- import { mapActions , mapGetters } from ' vuex'
47
-
48
- export default {
49
- name: " LayoutHeader" ,
50
- components: {
51
- HeaderNotice
52
- },
53
- props: {
54
- collapsed: {
55
- type: Boolean ,
56
- required: false ,
57
- default: false
58
- },
59
- },
60
- data () {
61
- return {
62
-
63
- }
64
- },
65
- created () {
66
-
67
- },
68
- methods: {
69
- ... mapActions ([" Logout" ]),
70
- ... mapGetters ([" nickname" , " avatar" ]),
71
- handleLogout () {
72
- this .Logout ({}).then (() => {
73
- window .location .reload ()
74
- }).catch (err => {
75
- this .$message .error (err .message )
76
- })
77
- },
78
- toggle () {
79
- this .$emit (' toggle' )
80
- }
81
- }
82
- }
83
- </script >
84
-
85
- <style scoped>
86
-
1
+ <template >
2
+ <a-layout-header style =" padding : 0px ;" >
3
+ <div class =" header" >
4
+ <a-icon class =" trigger" v-if =" device==='mobile'" :type =" collapsed ? 'menu-fold' : 'menu-unfold'" @click.native =" toggle" ></a-icon >
5
+ <a-icon class =" trigger" v-else :type =" collapsed ? 'menu-unfold' : 'menu-fold'" @click.native =" toggle" />
6
+
7
+ <div class =" user-wrapper" >
8
+ <span class =" action" >
9
+ <a-icon type =" question-circle-o" ></a-icon >
10
+ </span >
11
+ <header-notice class =" action" />
12
+ <a-dropdown >
13
+ <span class =" action ant-dropdown-link user-dropdown-menu" >
14
+ <a-avatar class =" avatar" size =" small" :src =" avatar()" />
15
+ <span >{{ nickname() }}</span >
16
+ </span >
17
+ <a-menu slot =" overlay" class =" user-dropdown-menu-wrapper" >
18
+ <a-menu-item key =" 0" >
19
+ <a-icon type =" user" />
20
+ <span >个人中心</span >
21
+ </a-menu-item >
22
+ <a-menu-item key =" 1" >
23
+ <router-link :to =" { name: 'settings' }" >
24
+ <a-icon type =" setting" />
25
+ <span >账户设置</span >
26
+ </router-link >
27
+ </a-menu-item >
28
+ <a-menu-item key =" 2" disabled >
29
+ <a-icon type =" setting" />
30
+ <span >测试</span >
31
+ </a-menu-item >
32
+ <a-menu-divider />
33
+ <a-menu-item key =" 3" >
34
+ <a href =" javascript:;" @click =" handleLogout" >
35
+ <a-icon type =" logout" />
36
+ <span >退出登录</span >
37
+ </a >
38
+ </a-menu-item >
39
+ </a-menu >
40
+ </a-dropdown >
41
+ </div >
42
+ </div >
43
+ </a-layout-header >
44
+ </template >
45
+
46
+ <script >
47
+ import HeaderNotice from ' ./HeaderNotice'
48
+ import { mapActions , mapGetters } from ' vuex'
49
+
50
+ export default {
51
+ name: " LayoutHeader" ,
52
+ components: {
53
+ HeaderNotice
54
+ },
55
+ props: {
56
+ collapsed: {
57
+ type: Boolean ,
58
+ required: false ,
59
+ default: false
60
+ },
61
+ device: {
62
+ type: String ,
63
+ required: false ,
64
+ default: ' desktop'
65
+ }
66
+ },
67
+ data () {
68
+ return {
69
+
70
+ }
71
+ },
72
+ created () {
73
+
74
+ },
75
+ methods: {
76
+ ... mapActions ([" Logout" ]),
77
+ ... mapGetters ([" nickname" , " avatar" ]),
78
+ handleLogout () {
79
+ this .Logout ({}).then (() => {
80
+ window .location .reload ()
81
+ }).catch (err => {
82
+ this .$message .error (err .message )
83
+ })
84
+ },
85
+ toggle () {
86
+ this .$emit (' toggle' )
87
+ }
88
+ }
89
+ }
90
+ </script >
91
+
92
+ <style scoped>
93
+
87
94
</style >
0 commit comments