学员端小程序
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.

117 lines
2.5 KiB

  1. <template>
  2. <view class="pageBgImg">
  3. <topNavbar title="模拟器训练预约"></topNavbar>
  4. <view class="pad">
  5. <view class="top_row">
  6. <view class="step_row">
  7. <view class="dian" @click="changeStep(1)">
  8. <view class="num" :class="{active: currentStep==1}">1</view>
  9. </view>
  10. <view class="line"></view>
  11. <view class="dian" @click="changeStep(2)">
  12. <view class="num" :class="{active: currentStep==2}">2</view>
  13. </view>
  14. <view class="line"></view>
  15. <view class="dian" @click="changeStep(3)">
  16. <view class="num" :class="{active: currentStep==3}">3</view>
  17. </view>
  18. </view>
  19. <view class="step_text">
  20. <view class="txt">预约时间</view>
  21. <view class="txt">选择模拟驾驶馆</view>
  22. <view class="txt">选择模拟器</view>
  23. </view>
  24. </view>
  25. <step1 v-if="currentStep==1" @changeStep="changeStep"></step1>
  26. <step2 v-if="currentStep==2" @changeStep="changeStep"></step2>
  27. <step3 v-if="currentStep==3" @changeStep="changeStep"></step3>
  28. </view>
  29. </view>
  30. </template>
  31. <script>
  32. import step1 from './comp/step1'
  33. import step2 from './comp/step2'
  34. import step3 from './comp/step3'
  35. export default {
  36. components: { step1, step2, step3 },
  37. data() {
  38. return {
  39. currentStep: 1
  40. }
  41. },
  42. methods: {
  43. changeStep(num) {
  44. this.currentStep = num
  45. }
  46. }
  47. }
  48. </script>
  49. <style lang="scss" scoped>
  50. .top_row {
  51. width: 100%;
  52. padding-bottom: 36rpx;
  53. .step_row {
  54. display: flex;
  55. align-items: center;
  56. justify-content: space-between;
  57. width: 100%;
  58. padding: 0 32rpx;
  59. .dian {
  60. width: 180rpx;
  61. height: 100rpx;
  62. display: flex;
  63. align-items: center;
  64. justify-content: center;
  65. position: relative;
  66. // background: red;
  67. }
  68. .num {
  69. width: 46rpx;
  70. height: 46rpx;
  71. background: #D1E7FE;
  72. line-height: 46rpx;
  73. border-radius: 50%;
  74. text-align: center;
  75. color: $themC;
  76. font-size: 24rpx;
  77. position: absolute;
  78. z-index: 9;
  79. &.active {
  80. border:2rpx solid $themC;
  81. &::before {
  82. content: '';
  83. width: 66rpx;
  84. height: 66rpx;
  85. border-radius: 50%;
  86. position: absolute;
  87. z-index: -1;
  88. left: 50%;
  89. top: 50%;
  90. transform: translate(-50%,-50%);
  91. background: rgba(255,255,255,0.6);
  92. filter: blur(6rpx);
  93. }
  94. }
  95. }
  96. .line {
  97. width: 60rpx;
  98. height: 4rpx;
  99. background: rgba(255,255,255,0.4);
  100. }
  101. }
  102. .step_text {
  103. display: flex;
  104. .txt {
  105. flex: 1;
  106. text-align: center;
  107. font-size: 28rpx;
  108. color: #fff;
  109. text-align: center;
  110. }
  111. }
  112. }
  113. </style>