index.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <route lang="json5">
  2. { layout: 'tabbar', style: { navigationBarTitleText: '我的', navigationStyle: 'custom' } }
  3. </route>
  4. <script setup lang="ts">
  5. import { onMounted, ref } from 'vue'
  6. import Card from '@/components/card.vue'
  7. import CardMenu from '@/components/card-menu.vue'
  8. import SectionHeading from '@/components/section-heading.vue'
  9. import StartMenuButton from '@/components/start-menu-button.vue'
  10. import { designer, settled, treaty, vipBg } from '@/core/libs/pngs'
  11. import { integral, coupon, order, agent, setting, wechat, award, camera } from '@/core/libs/svgs'
  12. import { getMemberUserInfo } from '@/core/libs/requests'
  13. const { data, run } = useRequest(getMemberUserInfo)
  14. const menus = ref([
  15. { title: '积分明细', icon: integral },
  16. { title: '优惠券包', icon: coupon },
  17. { title: '我的订单', icon: order },
  18. { title: '专属客服', icon: agent },
  19. { title: '个人设置', icon: setting },
  20. ])
  21. const pieces = ref([
  22. {
  23. title: '设计师成长计划',
  24. desc: '赋能设计共同成长',
  25. icon: designer,
  26. class: 'items-start! pb-0 pr-0 col-start-1 row-start-1 row-end-3',
  27. iconSize: 102,
  28. },
  29. {
  30. title: '材料商入驻',
  31. desc: '提供优质材料商',
  32. icon: settled,
  33. class: 'flex-row! pb-0 pr-0 col-start-2 row-start-1',
  34. iconSize: 68,
  35. },
  36. {
  37. title: '筑巢荟公约',
  38. desc: '共同遵守平台公约',
  39. icon: treaty,
  40. class: 'col-start-2 row-start-2 flex-row! pb-0',
  41. iconSize: 44,
  42. },
  43. ])
  44. onMounted(async () => {
  45. await run()
  46. console.log(data)
  47. })
  48. </script>
  49. <template>
  50. <view>
  51. <div class="bg-black/30 backdrop-blur-[60px] aspect-[1.15/1]">
  52. <StartMenuButton />
  53. <div class="my-6.5 px-3.5 flex">
  54. <img
  55. class="w-[72px] h-[72px] rounded-full border border-white"
  56. src="https://via.placeholder.com/72x72"
  57. />
  58. <div class="ms-3.5 ml-3.5">
  59. <div class="text-white text-xl font-normal font-['PingFang SC'] leading-normal">
  60. 用户SEI142
  61. </div>
  62. <div
  63. class="mt-2 w-[63px] h-[26px] bg-black/10 rounded-[20px] border border-white/60 flex items-center justify-center"
  64. >
  65. <div
  66. class="text-center text-white text-xs font-normal font-['PingFang SC'] leading-normal"
  67. >
  68. 未认证
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="px-3.5 flex items-center">
  74. <div class="flex items-center">
  75. <div class="text-white text-base font-normal font-['PingFang SC'] leading-normal mr-1">
  76. 36
  77. </div>
  78. <div
  79. class="text-center text-[#e9e7e4] text-xs font-normal font-['PingFang SC'] leading-normal"
  80. >
  81. 分享
  82. </div>
  83. </div>
  84. <div class="h-4 w-[2px] mx-4 bg-[#e9e7e4]"></div>
  85. <div class="flex items-center">
  86. <div class="text-white text-base font-normal font-['PingFang SC'] leading-normal mr-1">
  87. 36
  88. </div>
  89. <div
  90. class="text-center text-[#e9e7e4] text-xs font-normal font-['PingFang SC'] leading-normal"
  91. >
  92. 分享
  93. </div>
  94. </div>
  95. <div class="h-4 w-[2px] mx-4 bg-[#e9e7e4]"></div>
  96. <div class="flex items-center">
  97. <div class="text-white text-base font-normal font-['PingFang SC'] leading-normal mr-1">
  98. 36
  99. </div>
  100. <div
  101. class="text-center text-[#e9e7e4] text-xs font-normal font-['PingFang SC'] leading-normal"
  102. >
  103. 分享
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="relative top--18">
  109. <div class="mx-3.5 box-border absolute left-0 right-0 top-0">
  110. <wd-img :src="vipBg" width="100%" mode="widthFix"></wd-img>
  111. </div>
  112. <div class="mx-3.5 box-border absolute left-0 right-0 top-0 p-3.5">
  113. <div class="flex items-center">
  114. <div
  115. class="text-center text-[#faeac6] text-sm font-normal font-['PingFang SC'] leading-normal"
  116. >
  117. 查看会员等级权益
  118. </div>
  119. <div class="flex-1"></div>
  120. <div
  121. class="w-[83px] h-[29px] bg-gradient-to-l from-[#ffdab6] to-[#ffebd5] rounded-[30px] flex items-center justify-center"
  122. >
  123. <div
  124. class="text-[#9e5934] text-[13px] font-normal font-['PingFang SC'] leading-relaxed"
  125. >
  126. 去认证
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. <view class="bg-neutral-100 relative bottom-4 rounded-t-2xl py-1 px-3.5">
  133. <div class="flex justify-around my-6">
  134. <template v-for="({ title, icon }, i) in menus" :key="i">
  135. <div class="flex flex-col items-center">
  136. <div class="relative flex-col justify-start items-start inline-flex">
  137. <wd-img :src="icon" width="24" height="24" custom-class="vertical-bottom"></wd-img>
  138. </div>
  139. <div
  140. class="mt-2 text-black/90 text-[12.86px] font-normal font-['PingFang SC'] leading-relaxed"
  141. >
  142. {{ title }}
  143. </div>
  144. </div>
  145. </template>
  146. </div>
  147. <SectionHeading title="和筑巢荟一起共同成长"></SectionHeading>
  148. <CardMenu :items="pieces" custom-class="grid-cols-2" />
  149. </view>
  150. </view>
  151. </template>
  152. <style scoped lang="scss"></style>