index.vue 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <route lang="json">
  2. { "style": { "navigationBarTitleText": "我的订单", "navigationBarBackgroundColor": "#fff" } }
  3. </route>
  4. <script setup lang="ts">
  5. import Card from '@/components/card.vue'
  6. import PageHelper from '@/components/page-helper.vue'
  7. import { getPointsOrders } from '../../../core/libs/requests'
  8. import { useUserStore } from '../../../store'
  9. import { storeToRefs } from 'pinia'
  10. import { PointsOrder } from '../../../core/libs/models'
  11. import { useRouter } from '../../../core/utils/router'
  12. const userStore = useUserStore()
  13. const { userInfo } = storeToRefs(userStore)
  14. const router = useRouter()
  15. const status = ref({ '0': '待交付', '1': '已完成', '2': '已驳回', '3': '已撤销' })
  16. const handleClick = (order: PointsOrder) => {
  17. router.push(`/pages/mine/orders/detail/index?id=${order.id}`)
  18. }
  19. </script>
  20. <template>
  21. <div class="flex-grow flex flex-col gap-4 px-3.5 py-5">
  22. <PageHelper :request="getPointsOrders" :query="{}" class="flex-grow flex flex-col">
  23. <template #default="{ source }">
  24. <div class="flex-grow flex flex-col gap-4">
  25. <template v-for="(it, i) in source.list" :key="i">
  26. <div @click="handleClick(it)">
  27. <Card>
  28. <div class="flex gap-4">
  29. <wd-img
  30. width="94"
  31. height="94"
  32. custom-class="rounded-2xl overflow-hidden"
  33. :src="it.orderImgUrl"
  34. />
  35. <div class="flex flex-col flex-1">
  36. <div
  37. class="text-black text-base font-normal font-['PingFang_SC'] leading-normal"
  38. >
  39. {{ it.projectName }}
  40. </div>
  41. <div
  42. class="text-start text-black/40 text-sm font-normal font-['PingFang_SC'] leading-normal"
  43. >
  44. x{{ it.orderQuantity || 1 }}
  45. </div>
  46. <div class="flex-1"></div>
  47. <div
  48. class="text-start text-black/60 text-sm font-normal font-['PingFang_SC'] leading-normal"
  49. >
  50. {{ it.points }}积分
  51. </div>
  52. </div>
  53. <div>
  54. <div
  55. v-if="it.gainType === 1 && it.orderStatus === '0'"
  56. class="w-[58px] h-[26px] bg-[#020202] rounded-[20px] backdrop-blur-[10px] flex items-center justify-center"
  57. @click.stop="router.push(`/pages/mine/orders/code/index?id=${it.id}`)"
  58. >
  59. <div
  60. class="text-white text-xs font-normal font-['PingFang_SC'] leading-relaxed"
  61. >
  62. 兑换码
  63. </div>
  64. </div>
  65. <div
  66. v-else
  67. class="text-black/40 text-sm font-normal font-['PingFang_SC'] leading-normal"
  68. >
  69. <!-- 已完成 -->
  70. {{ status[it.orderStatus] }}
  71. </div>
  72. </div>
  73. </div>
  74. </Card>
  75. </div>
  76. </template>
  77. </div>
  78. </template>
  79. </PageHelper>
  80. </div>
  81. </template>