You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

nav-bg-car1.vue 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <view class="t-header">
  3. <view class="">
  4. <image :src="`${$imgUrl}issuance/bg-img.png`" style='height: 500rpx;width: 100%;'></image>
  5. <view class="progress-wrap">
  6. <template v-for="item in 5" :key='item'>
  7. <view class="item-lines" v-if='item > 1' :class="{'item-lines-on':item<=activeNum}"></view>
  8. <view class="item-circles" :class="{'item-circles-on':item<activeNum,'item-active':item==activeNum}"
  9. :style="{'--bgimg':`url(${$imgUrl}issuance/buzhou-active.png)`}">{{item}}</view>
  10. </template>
  11. </view>
  12. </view>
  13. <view class="tab">
  14. <view class="img-pos">
  15. <view class="img-flex">
  16. <view class="car" :style="{left:(activeNum-1)* 140 - 30 +'rpx'}">
  17. <image class="car-img" :src="`${$imgUrl}issuance/b-car.png`"></image>
  18. </view>
  19. <view class="flag">
  20. <image class="flag-img" :src="`${$imgUrl}issuance/r-qi.png`"></image>
  21. </view>
  22. </view>
  23. </view>
  24. </view>
  25. </view>
  26. </template>
  27. <script setup>
  28. import {
  29. defineProps
  30. } from 'vue'
  31. const props = defineProps({
  32. 'activeNum': {
  33. default: 1,
  34. type: Number
  35. }
  36. })
  37. </script>
  38. <style>
  39. page {
  40. background-color: #E9EDF0 !important;
  41. height: 100%;
  42. }
  43. </style>
  44. <style lang="scss" scoped>
  45. .t-header {
  46. position: absolute;
  47. left: 0;
  48. top: 0;
  49. width: 100%;
  50. }
  51. .item-circles {
  52. width: 50rpx;
  53. height: 50rpx;
  54. background: rgba(255, 255, 255, 0.3);
  55. border-radius: 50%;
  56. display: flex;
  57. justify-content: center;
  58. align-items: center;
  59. // color: #25D8C9;
  60. color: #1F3B4C;
  61. font-size: 30rpx;
  62. font-weight: 700;
  63. &.item-active {
  64. background-color: transparent;
  65. font-family: Adobe Heiti Std;
  66. font-size: 34rpx;
  67. color: #443101;
  68. background-image: var(--bgimg);
  69. background-repeat: no-repeat;
  70. background-size: 100% 100%;
  71. width: 76rpx;
  72. height: 76rpx;
  73. }
  74. }
  75. .item-circles-on {
  76. background: #FFFFFF;
  77. }
  78. .item-lines {
  79. background-color: rgba(255, 255, 255, 0.3);
  80. width: 66rpx;
  81. margin: 0 12rpx;
  82. border-radius: 2rpx;
  83. height: 2rpx;
  84. }
  85. .item-lines-on {
  86. background-color: rgba(255, 255, 255, 1);
  87. }
  88. .tab {
  89. background: #ffffff;
  90. border-radius: 30rpx 30rpx 0rpx 0;
  91. height: 0;
  92. position: absolute;
  93. width: 690rpx;
  94. left: 30rpx;
  95. top: 350rpx;
  96. .img-pos {
  97. position: absolute;
  98. left: 52rpx;
  99. top: -14rpx;
  100. // right: 50rpx;
  101. .img-flex {
  102. display: flex;
  103. justify-content: space-between;
  104. align-items: center;
  105. position: relative;
  106. width: calc(100% - 52rpx);
  107. height: 42rpx;
  108. .car {
  109. position: absolute;
  110. top: 0;
  111. z-index: 3;
  112. }
  113. .car-img {
  114. width: 86rpx;
  115. height: 42rpx;
  116. }
  117. .flag {
  118. position: absolute;
  119. left: 617rpx;
  120. // top: 10rpx;
  121. z-index: 3;
  122. }
  123. .flag-img {
  124. width: 30rpx;
  125. height: 35rpx;
  126. }
  127. }
  128. }
  129. }
  130. </style>