1. <template>
    2. <v-navigation-drawer
    3. app
    4. v-model="drawer"
    5. width="250"
    6. disable-resize-watcher
    7. right
    8. overlay-opacity="0.8"
    9. >
    10. <!-- 博主介绍 -->
    11. <div class="blogger-info">
    12. <v-avatar size="110" style="margin-bottom=0.5rem">
    13. <img src=@/assets/img/avatar.jpg />
    14. </v-avatar>
    15. </div>
    16. <!-- 博客信息 -->
    17. <div class="blog-info-wrapper">
    18. <div class="blog-info-data">
    19. <router-link to="/archives">
    20. <div style="font-size: 0.875rem">文章</div>
    21. <div style="font-size: 1.125rem">1</div>
    22. </router-link>
    23. </div>
    24. <div class="blog-info-data">
    25. <router-link to="/categories">
    26. <div style="font-size: 0.875rem">分类</div>
    27. <div style="font-size: 1.125rem">1</div>
    28. </router-link>
    29. </div>
    30. <div class="blog-info-data">
    31. <router-link to="/tags">
    32. <div style="font-size: 0.875rem">标签</div>
    33. <div style="font-size: 1.125rem">1</div>
    34. </router-link>
    35. </div>
    36. </div>
    37. <hr />
    38. <!-- 页面导航 -->
    39. <div class="menu-container">
    40. <div class="menus-item">
    41. <router-link to="/">
    42. <i class="iconfont iconzhuye"/> 首页
    43. </router-link>
    44. </div>
    45. <div class="menus-item">
    46. <router-link to="/">
    47. <i class="iconfont iconguidang"/> 归档
    48. </router-link>
    49. </div>
    50. <div class="menus-item">
    51. <router-link to="/">
    52. <i class="iconfont iconfenlei"/> 分类
    53. </router-link>
    54. </div>
    55. <div class="menus-item">
    56. <router-link to="/">
    57. <i class="iconfont iconbiaoqian"/> 标签
    58. </router-link>
    59. </div>
    60. <div class="menus-item">
    61. <router-link to="/">
    62. <i class="iconfont iconlianjie"/> 友链
    63. </router-link>
    64. </div>
    65. <div class="menus-item">
    66. <router-link to="/">
    67. <i class="iconfont iconzhifeiji"/> 关于
    68. </router-link>
    69. </div>
    70. <div class="menus-item">
    71. <router-link to="/">
    72. <i class="iconfont iconpinglunzu"/> 留言
    73. </router-link>
    74. </div>
    75. <div class="menus-item" v-if="!this.$store.state.avatar">
    76. <a><i class="iconfont icondenglu"/> 登录</a>
    77. </div>
    78. <div v-else>
    79. <div class="menus-item">
    80. <router-link to="/user">
    81. <i class="iconfont icongerenzhongxin" />个人中心
    82. </router-link>
    83. </div>
    84. <div class="menus-item">
    85. <a><i class="iconfont icontuichu" />退出</a>
    86. </div>
    87. </div>
    88. </div>
    89. </v-navigation-drawer>
    90. </template>
    91. <script>
    92. export default {
    93. computed: {
    94. drawer: {
    95. set(value) {
    96. this.$store.state.drawer = value;
    97. },
    98. get() {
    99. return this.$store.state.drawer;
    100. },
    101. },
    102. },
    103. };
    104. </script>
    105. <style scoped>
    106. .blogger-info {
    107. padding: 26px 30px 0;
    108. text-align: center;
    109. }
    110. .blog-info-wrapper {
    111. display: flex;
    112. align-items: center;
    113. padding: 12px 10px 0;
    114. }
    115. .blog-info-data {
    116. flex: 1;
    117. line-height: 2;
    118. text-align: center;
    119. }
    120. hr {
    121. border: 2px dashed #d2ebfd;
    122. margin: 20px 0;
    123. }
    124. .menu-container {
    125. padding: 0 10px 40px;
    126. animation: 0.8s ease 0s 1 normal none running sidebarItem;
    127. }
    128. .menus-item a {
    129. padding: 6px 30px;
    130. display: block;
    131. line-height: 2;
    132. }
    133. .menus-item i {
    134. margin-right: 2rem;
    135. }
    136. @keyframes sidebarItem {
    137. 0% {
    138. transform: translateX(200px);
    139. }
    140. 100% {
    141. transform: translateX();
    142. }
    143. }
    144. </style>