SideBar.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <template>
  2. <el-menu :default-active="active" class="side-bar" :collapse="true" :router="true">
  3. <el-menu-item index="schedule">
  4. <i class="icon" target="schedule"></i>
  5. </el-menu-item>
  6. <el-menu-item index="taskList">
  7. <i class="icon" target="taskList"></i>
  8. </el-menu-item>
  9. <el-menu-item index="bugList">
  10. <i class="icon" target="bugList"></i>
  11. </el-menu-item>
  12. <!-- <el-menu-item index="statistics">
  13. <i class="icon" target="statistics"></i>
  14. </el-menu-item> -->
  15. <el-menu-item index="pipeline">
  16. <i class="icon" target="pipeline"></i>
  17. </el-menu-item>
  18. <el-menu-item index="database">
  19. <i class="icon" target="database"></i>
  20. </el-menu-item>
  21. <el-menu-item index="apitest">
  22. <i class="icon" target="apitest"></i>
  23. </el-menu-item>
  24. <el-menu-item index="invite">
  25. <i class="icon" target="invite"></i>
  26. </el-menu-item>
  27. </el-menu>
  28. </template>
  29. <script>
  30. export default {
  31. name: 'SideBar',
  32. computed: {
  33. active() {
  34. const li = this.$route.path.split('/');
  35. return li[li.length - 1];
  36. },
  37. },
  38. };
  39. </script>
  40. <style lang="scss" scoped>
  41. .side-bar {
  42. height: 100%;
  43. }
  44. .icon {
  45. width: 28px;
  46. height: 28px;
  47. float: right;
  48. background-position: center;
  49. background-repeat: no-repeat;
  50. background-size: 100% 100%;
  51. margin-top: 14px;
  52. transition: all .2s linear;
  53. .el-menu-item:hover & {
  54. cursor: pointer;
  55. transition-duration:0.2s;
  56. transform:scale(1.1);
  57. transition-timing-function:ease-in-out;
  58. }
  59. }
  60. .icon[target=schedule]{
  61. background-image: url("../assets/icon/navigation.svg");
  62. .el-menu-item:hover & {
  63. background-image: url("../assets/icon/navigation-hover.svg");
  64. }
  65. .el-menu-item.is-active & {
  66. background-image: url("../assets/icon/navigation-using.svg");
  67. }
  68. }
  69. .icon[target=taskList]{
  70. background-image: url("../assets/icon/task.svg");
  71. .el-menu-item:hover & {
  72. background-image: url("../assets/icon/task-hover.svg");
  73. }
  74. .el-menu-item.is-active & {
  75. background-image: url("../assets/icon/task-using.svg");
  76. }
  77. }
  78. .icon[target=bugList]{
  79. background-image: url("../assets/icon/bug.svg");
  80. .el-menu-item:hover & {
  81. background-image: url("../assets/icon/bug-hover.svg");
  82. }
  83. .el-menu-item.is-active & {
  84. background-image: url("../assets/icon/bug-using.svg");
  85. }
  86. }
  87. .icon[target=statistics]{
  88. background-image: url("../assets/icon/training.svg");
  89. .el-menu-item:hover & {
  90. background-image: url("../assets/icon/training-hover.svg");
  91. }
  92. .el-menu-item.is-active & {
  93. background-image: url("../assets/icon/training-using.svg");
  94. }
  95. }
  96. .icon[target=pipeline]{
  97. background-image: url("../assets/icon/training.svg");
  98. .el-menu-item:hover & {
  99. background-image: url("../assets/icon/training-hover.svg");
  100. }
  101. .el-menu-item.is-active & {
  102. background-image: url("../assets/icon/training-using.svg");
  103. }
  104. }
  105. .icon[target=database]{
  106. background-image: url("../assets/icon/database.svg");
  107. .el-menu-item:hover & {
  108. background-image: url("../assets/icon/database-hover.svg");
  109. }
  110. .el-menu-item.is-active & {
  111. background-image: url("../assets/icon/database-using.svg");
  112. }
  113. }
  114. .icon[target=apitest]{
  115. background-image: url("../assets/icon/test.svg");
  116. .el-menu-item:hover & {
  117. background-image: url("../assets/icon/test-hover.svg");
  118. }
  119. .el-menu-item.is-active & {
  120. background-image: url("../assets/icon/test-using.svg");
  121. }
  122. }
  123. .icon[target=invite]{
  124. background-image: url("../assets/icon/link.svg");
  125. .el-menu-item:hover & {
  126. background-image: url("../assets/icon/link-hover.svg");
  127. }
  128. .el-menu-item.is-active & {
  129. background-image: url("../assets/icon/link-using.svg");
  130. }
  131. }
  132. </style>