invite.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <template>
  2. <!-- 邀请页 -->
  3. <div class="area-process">
  4. <v-head></v-head>
  5. <div class="box-process">
  6. <div class="item">
  7. <hover-tip></hover-tip>
  8. <img :src="require('@/assets/svg/icon-btn-box.svg')" alt="" @mouseenter="mouseItem($event)" />
  9. </div>
  10. <div class="item">
  11. <img :src="require('@/assets/svg/icon-btn-box.svg')" alt="" />
  12. </div>
  13. <div class="item">
  14. <img :src="require('@/assets/svg/icon-btn-box.svg')" alt="" />
  15. </div>
  16. <div class="line">
  17. <div class="full"></div>
  18. </div>
  19. </div>
  20. <div class="area-success-message">
  21. <div class="success-message">
  22. <img :src="require('@/assets/svg/icon-btn-box.svg')" alt="" />
  23. <span>@JACK1985 </span> &nbsp;
  24. <span>Opened Treasure Chest</span>
  25. </div>
  26. <div class="success-message">
  27. <img :src="require('@/assets/svg/icon-btn-box.svg')" alt="" />
  28. <span>@JACK1985 </span> &nbsp;
  29. <span>Opened Treasure Chest</span>
  30. </div>
  31. </div>
  32. </div>
  33. <div class="area-nav">
  34. <div class="item" :class="{ active: state.tab == 1 }" @click="clickSwicthTab(1)">invite friends</div>
  35. <div class="item" :class="{ active: state.tab == 2 }" @click="clickSwicthTab(2)">invited</div>
  36. </div>
  37. <div class="area-info">
  38. <invite-friends v-show="state.tab == 1"></invite-friends>
  39. <invite-list v-show="state.tab == 2"></invite-list>
  40. </div>
  41. </template>
  42. <script setup>
  43. import { reactive } from 'vue'
  44. import VHead from '@/view/iframe/treasure-hunt/head.vue'
  45. import InviteList from '@/view/iframe/treasure-hunt/invite-list.vue'
  46. import HoverTip from '@/view/iframe/treasure-hunt/hover-tip.vue'
  47. import InviteFriends from '@/view/iframe/treasure-hunt/invite-friends.vue'
  48. let state = reactive({
  49. page: '封面',
  50. tab: 1
  51. })
  52. const clickSwicthTab = (tab) => {
  53. state.tab = tab
  54. }
  55. const mouseItem = (e) => {
  56. console.log(e)
  57. }
  58. </script>
  59. <style lang="scss" scoped>
  60. .area-process {
  61. width: 375px;
  62. height: 170px;
  63. background: linear-gradient(179.96deg, #735931 0.04%, #0E0803 53.64%);
  64. position: relative;
  65. .box-process {
  66. width: 350px;
  67. height: 90px;
  68. margin: 0 auto;
  69. display: flex;
  70. align-items: center;
  71. position: absolute;
  72. top: 32px;
  73. left: 13px;
  74. .item {
  75. z-index: 2;
  76. }
  77. img {
  78. width: 60px;
  79. height: 60px;
  80. }
  81. .item:nth-child(1) {
  82. margin-left: 56px;
  83. }
  84. .item:nth-child(2) {
  85. width: 60px;
  86. height: 60px;
  87. margin-left: 40px;
  88. }
  89. .item:nth-child(3) {
  90. img {
  91. width: 90px;
  92. height: 90px;
  93. }
  94. margin-left: 40px;
  95. }
  96. .line {
  97. width: 330px;
  98. height: 4px;
  99. background: rgba(255, 210, 59, 0.2);
  100. position: absolute;
  101. border-radius: 100px;
  102. overflow: hidden;
  103. left: 13px;
  104. top: 38px;
  105. .full {
  106. position: absolute;
  107. left: 0;
  108. top: 0;
  109. height: 4px;
  110. width: 100px;
  111. background: #FFD23B;
  112. }
  113. }
  114. }
  115. .area-success-message {
  116. width: 100%;
  117. height: 30px;
  118. position: absolute;
  119. bottom: 13px;
  120. display: flex;
  121. overflow: hidden;
  122. /* align-items: center; */
  123. flex-direction: column-reverse;
  124. flex-wrap: wrap;
  125. .success-message {
  126. width: fit-content;
  127. height: 30px;
  128. padding: 0 9px;
  129. border-radius: 100px;
  130. background: rgba(255, 255, 255, 0.1);
  131. display: flex;
  132. align-items: center;
  133. img {
  134. width: 20px;
  135. height: 20px;
  136. border-radius: 100px;
  137. margin-right: 8px;
  138. }
  139. span {
  140. font-style: normal;
  141. font-weight: 500;
  142. font-size: 12px;
  143. line-height: 14px;
  144. }
  145. span:nth-child(2) {
  146. color: #1D9BF0;
  147. }
  148. span:nth-child(3) {
  149. color: #A8A8A8;
  150. }
  151. }
  152. }
  153. }
  154. .area-nav {
  155. width: 375px;
  156. height: 38px;
  157. display: flex;
  158. .item {
  159. user-select: none;
  160. color: #757575;
  161. background: #F0F0F0;
  162. text-align: center;
  163. width: 50%;
  164. font-weight: 500;
  165. font-size: 14px;
  166. line-height: 38px;
  167. cursor: pointer;
  168. }
  169. .active {
  170. background: #FFFFFF;
  171. color: #000000;
  172. }
  173. }
  174. .area-info {
  175. width: 375px;
  176. }
  177. </style>