chargeBuyaTicketList.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <script setup lang="ts">
  2. import { createGlobalLoadingMiddleware } from '@/api/core/middleware'
  3. definePage({
  4. name: 'charge-buy-a-ticket-list',
  5. islogin: false,
  6. style: {
  7. navigationBarTitleText: '购券记录',
  8. },
  9. })
  10. /**
  11. * 获取购券记录列表
  12. */
  13. const { data: recordList, isLastPage, page } = usePagination((pageNum, pageSize) =>
  14. Apis.charge.getPurchaseRecordPage({ data: { pageNum, pageSize } }), {
  15. data: (resp) => {
  16. return resp.data?.list
  17. },
  18. initialData: [],
  19. initialPage: 1,
  20. initialPageSize: 10,
  21. append: true,
  22. immediate: true,
  23. middleware: createGlobalLoadingMiddleware(),
  24. })
  25. onReachBottom(() => {
  26. if (!isLastPage.value) {
  27. page.value++
  28. }
  29. })
  30. /**
  31. * 获取状态文本
  32. */
  33. function getStatusText(recordStatus?: number) {
  34. switch (recordStatus) {
  35. case 1:
  36. return '已取消'
  37. case 2:
  38. return '已到账'
  39. case 3:
  40. return '退款'
  41. default:
  42. return '未知'
  43. }
  44. }
  45. /**
  46. * 获取状态样式
  47. */
  48. function getStatusClass(recordStatus?: number) {
  49. switch (recordStatus) {
  50. case 1:
  51. return 'bg-#AAAAAA text-#666666'
  52. case 2:
  53. return 'bg-#9ED605 text-#FFFFFF'
  54. case 3:
  55. return 'bg-#FF9500 text-#FFFFFF'
  56. default:
  57. return 'bg-#AAAAAA text-#666666'
  58. }
  59. }
  60. </script>
  61. <template>
  62. <view class="min-h-screen bg-#F5F7FB px-24rpx">
  63. <view class="h-10rpx" />
  64. <StatusTip v-if="!recordList.length" tip="暂无内容" />
  65. <view v-for="item in recordList" :key="item.recordNo" class="mt-20rpx bg-#FFFFFF px-24rpx py-28rpx">
  66. <view class="relative flex items-center justify-between">
  67. <view class="text-32rpx font-bold">
  68. {{ item.couponAmount }}元充电费抵扣券
  69. </view>
  70. <view class="absolute right-[-24rpx] rounded-[30rpx_0rpx_0rpx_4rpx] px-14rpx py-8rpx text-28rpx text-#FFF" :class="getStatusClass(item.recordStatus)">
  71. • {{ getStatusText(item.recordStatus) }}
  72. </view>
  73. </view>
  74. <view class="mt-28rpx h-2rpx w-full bg-#F0F0F0" />
  75. <view class="mt-28rpx">
  76. <view class="text-24rpx text-#AAAAAA">
  77. 订单编号:{{ item.recordNo }}
  78. </view>
  79. <view class="mt-20rpx text-24rpx text-#AAAAAA">
  80. 购券时间:{{ item.createTime }}
  81. </view>
  82. <view class="mt-20rpx text-24rpx text-#AAAAAA">
  83. 实付金额:{{ item.couponAmount }}元
  84. </view>
  85. </view>
  86. </view>
  87. <view class="h-20rpx" />
  88. </view>
  89. </template>
  90. <style lang="scss" scoped></style>