index.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <aside class="sidebar-wrap">
  3. <div
  4. class="item"
  5. @click="router.push({ name: routerName.rank })"
  6. >
  7. <div class="ico rank"></div>
  8. <div class="txt">排行榜</div>
  9. </div>
  10. <div
  11. class="item"
  12. @click="router.push({ name: routerName.shop })"
  13. >
  14. <div class="ico shop"></div>
  15. <div class="txt">商店</div>
  16. </div>
  17. <div
  18. class="item"
  19. @click="router.push({ name: routerName.order })"
  20. >
  21. <div class="ico pay"></div>
  22. <div class="txt">订单</div>
  23. </div>
  24. </aside>
  25. </template>
  26. <script lang="ts" setup>
  27. import router, { routerName } from '@/router';
  28. </script>
  29. <style lang="scss" scoped>
  30. .sidebar-wrap {
  31. position: fixed;
  32. top: 50%;
  33. right: 0;
  34. padding: 15px 10px;
  35. width: 40px;
  36. border-radius: 20px 0 0 20px;
  37. background-color: white;
  38. box-shadow: 0 0 20px 1px rgba($theme-color-gold, 0.15);
  39. color: $theme-color-gold;
  40. text-align: center;
  41. transform: translateY(-50%);
  42. .item {
  43. &:not(:last-child) {
  44. margin-bottom: 10px;
  45. }
  46. cursor: pointer;
  47. .ico {
  48. margin: 0 auto;
  49. width: 20px;
  50. height: 20px;
  51. opacity: 0.9;
  52. @extend %containBg;
  53. &.rank {
  54. @include setBackground('@/assets/img/rank.png');
  55. }
  56. &.shop {
  57. @include setBackground('@/assets/img/shop.png');
  58. }
  59. &.pay {
  60. @include setBackground('@/assets/img/pay.png');
  61. }
  62. }
  63. .txt {
  64. font-size: 13px;
  65. }
  66. }
  67. }
  68. </style>