App.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <NavBar
  3. v-if="showNavBar"
  4. :show-nav-icons="$route.path !== '/password'"
  5. :fixed="true"
  6. />
  7. <div
  8. class="main-container"
  9. :style="$route.path === '/' ? 'min-height: auto; padding-bottom: 0;' : ''"
  10. >
  11. <router-view :key="$route.fullPath" class="main-wrapper" />
  12. </div>
  13. <ul v-if="$route.path === '/'" class="contents">
  14. <li><router-link to="/login">登录</router-link></li>
  15. <li><router-link to="/account">账号信息</router-link></li>
  16. <li><router-link to="/password">密码找回</router-link></li>
  17. <li><router-link to="/order">我的订单</router-link></li>
  18. <li><router-link to="/gift-card">我的礼品卡</router-link></li>
  19. <li><router-link to="/benefits">会员权益</router-link></li>
  20. <li><router-link to="/renewal">续费管理</router-link></li>
  21. <li><router-link to="/mailing/fill">邮寄商品</router-link></li>
  22. <li><router-link to="/fill-order">购买下单</router-link></li>
  23. <li><router-link to="/pay-result/success">支付成功</router-link></li>
  24. <li><router-link to="/pay-result/fail">支付失败</router-link></li>
  25. <li><router-link to="/imei/bind">绑定IMEI</router-link></li>
  26. <li><router-link to="/appointment">维修预约</router-link></li>
  27. <li><router-link to="/appointment-list">维修记录</router-link></li>
  28. <li><router-link to="/invite">邀请好友</router-link></li>
  29. </ul>
  30. </template>
  31. <script setup lang="ts">
  32. import { computed } from 'vue'
  33. import { useRoute } from 'vue-router'
  34. const route = useRoute()
  35. const navBarIgnore = ['/login', '/register']
  36. const showNavBar = computed(() => !navBarIgnore.includes(route.path))
  37. </script>
  38. <style lang="scss">
  39. .main-container {
  40. min-height: 100vh;
  41. padding-bottom: 48px;
  42. background: #f7f7f7;
  43. overflow: hidden;
  44. @include media-breakpoint-up(md) {
  45. min-height: auto;
  46. }
  47. .nav-bar-wrap + & {
  48. padding-top: $nav-bar-height;
  49. }
  50. }
  51. .main-wrapper {
  52. overflow: hidden;
  53. @include media-breakpoint-up(lg) {
  54. margin: auto;
  55. width: 768px * 2;
  56. }
  57. @include media-breakpoint-up(xl) {
  58. margin: auto;
  59. width: 1998px;
  60. }
  61. }
  62. .contents {
  63. margin-top: $nav-bar-height + 50px;
  64. text-align: center;
  65. line-height: 74px;
  66. font-size: 36px;
  67. a {
  68. color: $primary-color;
  69. text-decoration: underline;
  70. }
  71. }
  72. </style>