index.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <route lang="json">
  2. { "style": { "navigationStyle": "custom" } }
  3. </route>
  4. <script setup lang="ts">
  5. import PageHelper from '@/components/page-helper.vue'
  6. import Card from '@/components/card.vue'
  7. import { useUserStore } from '../../../store'
  8. import { storeToRefs } from 'pinia'
  9. import dayjs from 'dayjs'
  10. import NavbarEvo from '@/components/navbar-evo.vue'
  11. import { NetImages } from '../../../core/libs/enums'
  12. import { getPointsFlow } from '../../../core/libs/agent-requests'
  13. import PageHelperEvo from '@/components/page-helper-evo.vue'
  14. import { getBroker } from '../../../core/libs/requests'
  15. const userStore = useUserStore()
  16. const { userInfo } = storeToRefs(userStore)
  17. const { data, run: setData } = useRequest(() =>
  18. getBroker({ brokerId: String(userInfo.value.userId) }),
  19. )
  20. onMounted(async () => {
  21. await setData()
  22. })
  23. </script>
  24. <template>
  25. <div class="flex-grow">
  26. <NavbarEvo title="任务积分" transparent dark></NavbarEvo>
  27. <div class="relative aspect-[3/1]">
  28. <div class="aspect-[1.25/1] absolute top-0 w-full">
  29. <div class="relative w-full h-full">
  30. <div class="absolute top-0 left-0 right-0">
  31. <wd-img
  32. width="100%"
  33. :src="NetImages.DefaultPointsHeadBg"
  34. mode="widthFix"
  35. custom-class=""
  36. ></wd-img>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. <div class="relative px-3.5">
  42. <div class="flex items-end px-3.5 mb-5">
  43. <div class="text-white text-sm font-normal font-['PingFang_SC'] leading-relaxed">
  44. 当前积分
  45. </div>
  46. <div>
  47. <span class="text-white text-4xl font-normal font-['D-DIN_Exp'] leading-9">
  48. {{ data.points }}
  49. </span>
  50. </div>
  51. <div class="flex-1"></div>
  52. <div></div>
  53. <div class="text-[white] text-sm font-normal font-['PingFang_SC'] leading-relaxed">
  54. 2024
  55. </div>
  56. </div>
  57. <Card custom-class="relative">
  58. <PageHelperEvo :request="getPointsFlow" :query="{ brokerId: userInfo.userId, year: 2024 }">
  59. <template #default="{ source }">
  60. <div class="flex flex-col gap-4">
  61. <template v-for="(it, i) in source?.list" :key="i">
  62. <div class="flex items-center py-4">
  63. <div class="flex-1 flex flex-col">
  64. <div
  65. class="text-black/90 text-base font-normal font-['PingFang_SC'] leading-relaxed"
  66. >
  67. {{ it.taskName }}
  68. </div>
  69. <div
  70. class="text-black/40 text-sm font-normal font-['PingFang_SC'] leading-relaxed"
  71. >
  72. {{ dayjs(it.createTime).format('YYYY/MM/DD HH:mm:ss') }}
  73. </div>
  74. </div>
  75. <div>
  76. <div
  77. class="text-lg font-normal font-['D-DIN_Exp'] leading-relaxed"
  78. :class="`${it.bizType === '1' ? 'text-[#ef4343]' : 'text-black'}`"
  79. >
  80. <!-- {{ { '1': '+', '2': '-' }[it.pointsType] }} -->
  81. {{ it.points }}
  82. </div>
  83. </div>
  84. </div>
  85. <div class="h-0.25 bg-[#dadada]" v-if="i !== (source?.list.length ?? 0) - 1"></div>
  86. </template>
  87. </div>
  88. </template>
  89. </PageHelperEvo>
  90. </Card>
  91. </div>
  92. </div>
  93. </template>