navBar.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <template>
  2. <div id="tabberBox">
  3. <div class="left_hearder">
  4. <i
  5. class="el-icon-s-fold"
  6. :style="navStatusCss ? 'transform: rotate(180deg)' : ''"
  7. @click="changeNavStatus"
  8. ></i>
  9. <div class="searchBox">
  10. <input type="text" placeholder="搜索" />
  11. <i class="el-icon-search"></i>
  12. </div>
  13. </div>
  14. <div class="right_hearder">
  15. <img class="bell" src="@/assets/images/bell@2x.png" alt="" />
  16. <img class="avatar" src="@/assets/images/Avatar@2x.png" alt="" />
  17. <el-dropdown @command="handleCommand">
  18. <span class="el-dropdown-link">
  19. {{ userName }}<i class="el-icon-arrow-down el-icon--right"></i>
  20. </span>
  21. <el-dropdown-menu slot="dropdown">
  22. <el-dropdown-item command="a">乌鸦坐飞机</el-dropdown-item>
  23. <el-dropdown-item command="exit">退出</el-dropdown-item>
  24. </el-dropdown-menu>
  25. </el-dropdown>
  26. </div>
  27. </div>
  28. </template>
  29. <script>
  30. import cookie from "@/utils/cookie";
  31. export default {
  32. data() {
  33. return {
  34. userName: "加载中...",
  35. };
  36. },
  37. watch: {
  38. "$store.state.userInfo"(newval, olval) {
  39. console.log(newval);
  40. this.userName = newval[0].user.nickName;
  41. },
  42. },
  43. computed: {
  44. // 菜单栏状态
  45. navStatusCss() {
  46. return this.$store.state.navStatus;
  47. },
  48. },
  49. mounted() {
  50. this.userName = this.$store.state.userInfo[0].user.nickName;
  51. },
  52. methods: {
  53. // 收起or展示菜单栏
  54. changeNavStatus() {
  55. this.$store.state.navStatus = !this.$store.state.navStatus;
  56. },
  57. //用户下拉功能
  58. handleCommand(command) {
  59. // if (command === "exit") {
  60. // // cookie.delCookie("token");
  61. // this.delCookie("token");
  62. // this.$router.replace({
  63. // path: `/login?TenantId=${sessionStorage.TenantId}`,
  64. // });
  65. // this.$message("退出成功!");
  66. // }
  67. switch (command) {
  68. case "exit":
  69. this.delCookie("token");
  70. this.$router.replace({
  71. path: `/login?TenantId=${sessionStorage.TenantId}`,
  72. });
  73. this.$message("退出成功!");
  74. break;
  75. case "a":
  76. this.$message("乌鸦坐飞机!");
  77. break;
  78. default:
  79. break;
  80. }
  81. },
  82. //删除cookie (名称)
  83. delCookie(name) {
  84. var exp = new Date();
  85. exp.setTime(exp.getTime() - 1);
  86. var cval = cookie.getCookie(name);
  87. if (cval != null)
  88. document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
  89. },
  90. },
  91. };
  92. </script>
  93. <style lang="less" scoped>
  94. #tabberBox {
  95. height: 80px;
  96. background-color: #2f4379;
  97. padding-left: 16px;
  98. padding-right: 32px;
  99. display: flex;
  100. align-items: center;
  101. justify-content: space-between;
  102. color: #fff;
  103. .left_hearder {
  104. display: flex;
  105. align-items: center;
  106. .el-icon-s-fold {
  107. cursor: pointer;
  108. font-size: 20px;
  109. margin-right: 10px;
  110. transition: all 0.3s;
  111. }
  112. .searchBox {
  113. width: 192px;
  114. height: 40px;
  115. border-radius: 20px;
  116. background: linear-gradient(
  117. 90deg,
  118. rgba(68, 96, 171, 0.8),
  119. rgba(126, 142, 183, 0.8)
  120. );
  121. display: flex;
  122. align-items: center;
  123. overflow: hidden;
  124. input {
  125. height: 100%;
  126. background: transparent;
  127. border: none;
  128. outline: none;
  129. padding: 0px 12px;
  130. width: 100%;
  131. box-sizing: border-box;
  132. color: #ced7f1;
  133. }
  134. input::placeholder {
  135. color: #ced7f1;
  136. }
  137. .el-icon-search {
  138. width: 40px;
  139. cursor: pointer;
  140. }
  141. }
  142. }
  143. .right_hearder {
  144. display: flex;
  145. align-items: center;
  146. .bell {
  147. width: 18px;
  148. height: 20px;
  149. }
  150. .avatar {
  151. width: 40px;
  152. height: 40px;
  153. border-radius: 50%;
  154. margin-left: 32px;
  155. margin-right: 15px;
  156. }
  157. .el-dropdown-link {
  158. cursor: pointer;
  159. color: #fff;
  160. }
  161. .el-icon-arrow-down {
  162. font-size: 14px;
  163. }
  164. }
  165. }
  166. </style>