go-enter.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <template>
  2. <!-- 首页:流程概览 -->
  3. <div v-if="currentStep === 0" class="home-entry">
  4. <h3 class="title"><el-image :src="homeIcon" class="homeIcon" />免费入驻店铺</h3>
  5. <div class="steps-container">
  6. <el-steps align-center>
  7. <el-step v-for="(item, index) in entryList" :key="index">
  8. <template #title>
  9. <div class="step-title-wrapper">
  10. <span class="step-title">{{ item.title }}</span>
  11. <span class="step-time">{{ item.time }}</span>
  12. </div>
  13. </template>
  14. <template #description>
  15. <div class="step-desc">
  16. {{ item.desc }}
  17. </div>
  18. </template>
  19. </el-step>
  20. </el-steps>
  21. </div>
  22. <div class="button-container">
  23. <el-button type="primary" size="large" class="register-btn" @click="handleRegister"> 去入驻 </el-button>
  24. </div>
  25. </div>
  26. </template>
  27. <script setup lang="ts">
  28. import { ref, defineProps, defineEmits } from "vue";
  29. import homeIcon from "../../../assets/images/home-icon.png";
  30. const entryList = ref([
  31. {
  32. title: "个人实名",
  33. time: "约3分钟",
  34. desc: "填写店铺经营者姓名、身份证号等"
  35. },
  36. {
  37. title: "填写信息",
  38. time: "约30分钟",
  39. desc: "上传营业执照及填写店铺信息等"
  40. },
  41. {
  42. title: "等待审核",
  43. time: "约1-3个工作日",
  44. desc: "平台进行资质审核"
  45. },
  46. {
  47. title: "入驻成功",
  48. desc: "入驻成功后即可管理您的店铺"
  49. }
  50. ]);
  51. const props = defineProps({
  52. currentStep: {
  53. type: Number,
  54. default: 0
  55. }
  56. });
  57. const emit = defineEmits(["update:currentStep"]);
  58. // 处理入驻按钮
  59. const handleRegister = () => {
  60. emit("update:currentStep", 1);
  61. };
  62. </script>
  63. <style scoped lang="scss">
  64. // 首页样式
  65. .home-entry {
  66. box-sizing: border-box;
  67. width: 100%;
  68. height: calc(100vh - 105px);
  69. overflow: hidden;
  70. background: url("../../../assets/images/home-bg.png") center center no-repeat;
  71. background-size: cover;
  72. .title {
  73. display: flex;
  74. align-items: center;
  75. height: 105px;
  76. font-size: 20px;
  77. font-weight: 600;
  78. color: #ffffff;
  79. background: linear-gradient(90deg, #6c8ff8 0%, rgb(255 255 255 / 0%) 100%);
  80. border-radius: 10px;
  81. .homeIcon {
  82. width: 76px;
  83. height: 76px;
  84. margin-right: 8px;
  85. margin-left: 25px;
  86. }
  87. }
  88. .steps-container {
  89. margin-top: 120px;
  90. margin-bottom: 60px;
  91. :deep(.el-steps) {
  92. .el-step__head {
  93. .el-step__icon {
  94. width: 30px;
  95. height: 30px;
  96. font-size: 16px;
  97. font-weight: 600;
  98. color: #ffffff;
  99. background: #6c8ff8;
  100. border: 0;
  101. }
  102. .el-step__line {
  103. border: 1px solid #6c8ff8;
  104. }
  105. }
  106. .el-step__title {
  107. .step-title-wrapper {
  108. display: flex;
  109. flex-direction: column;
  110. gap: 8px;
  111. align-items: center;
  112. .step-title {
  113. padding-top: 15px;
  114. font-size: 16px;
  115. font-weight: 600;
  116. line-height: 1.5;
  117. color: #6c8ff8;
  118. }
  119. .step-time {
  120. display: inline-block;
  121. padding: 4px 12px;
  122. font-size: 12px;
  123. color: #909399;
  124. white-space: nowrap;
  125. background: #f5f7fa;
  126. border-radius: 12px;
  127. }
  128. }
  129. }
  130. .el-step__description {
  131. .step-desc {
  132. margin-top: 8px;
  133. font-size: 14px;
  134. line-height: 1.5;
  135. color: #606266;
  136. }
  137. }
  138. }
  139. }
  140. .button-container {
  141. display: flex;
  142. align-items: center;
  143. justify-content: center;
  144. .register-btn {
  145. width: 200px;
  146. height: 44px;
  147. font-size: 16px;
  148. font-weight: 500;
  149. background: #6c8ff8;
  150. border: 0;
  151. border-radius: 4px;
  152. outline: none;
  153. }
  154. }
  155. }
  156. </style>