integral_details.vue 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <view class="integral-details">
  3. <mescroll-body ref="mescrollRef" :up="{
  4. noMoreSize: 10,
  5. empty: {
  6. icon: '/static/images/order_null.png',
  7. tip: '暂无券明细~',
  8. fixed: false
  9. }
  10. }" @init="mescrollInit" @down="downCallback" @up="upCallback">
  11. <view class="integral-lists">
  12. <view class="item flex row-between bg-white" v-for="(item, index) in integralList" :key="index">
  13. <view class="">
  14. <view class="nr">
  15. {{item.source_type}}
  16. </view>
  17. <view class="xs muted m-t-10">
  18. {{item.create_time}}
  19. </view>
  20. </view>
  21. <view :class="'lg ' +(item.change_type == 1 ? 'primary' : '')">
  22. {{item.change_amount_format}}
  23. </view>
  24. </view>
  25. </view>
  26. </mescroll-body>
  27. </view>
  28. </template>
  29. <script>
  30. import {
  31. getAccountLog
  32. } from "@/api/user";
  33. import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
  34. export default {
  35. mixins: [MescrollMixin], // 使用mixin
  36. data() {
  37. return {
  38. integralList: [],
  39. };
  40. },
  41. methods: {
  42. // 上拉加载更多
  43. upCallback({
  44. num,
  45. size
  46. }) {
  47. getAccountLog({
  48. page_no: num,
  49. page_size: size,
  50. source: 2, //券明细
  51. }).then(({
  52. data,
  53. code
  54. }) => {
  55. if (code != 1) return this.mescroll.endErr()
  56. if (num === 1) this.integralList = []
  57. this.integralList = [...this.integralList, ...data.list]
  58. this.mescroll.endSuccess(data.list.length, !!data.more)
  59. }).catch(err => {
  60. this.mescroll.endErr()
  61. })
  62. }
  63. },
  64. }
  65. </script>
  66. <style lang="scss">
  67. .integral-lists {
  68. padding-top: 20rpx;
  69. .item {
  70. padding: 18rpx 30rpx;
  71. position: relative;
  72. &:not(:last-of-type) {
  73. border-bottom: $-solid-border;
  74. }
  75. }
  76. }
  77. </style>