income-detail.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <view class="income-detail">
  3. <page-scroll
  4. ref="pageScroll"
  5. url="/token/userPartner/incomeList"
  6. :immediate="true"
  7. :slot-empty="true"
  8. @updateList="handleUpdateList"
  9. >
  10. <view class="income-list">
  11. <view class="income-item" v-for="(item, index) in mockData" :key="index">
  12. <view class="item-left">
  13. <view class="income-title">{{ item.title }}</view>
  14. <view class="income-time">{{ item.createTime }}</view>
  15. </view>
  16. <view class="income-amount">+{{ item.changeMoney }}</view>
  17. </view>
  18. </view>
  19. </page-scroll>
  20. </view>
  21. </template>
  22. <script>
  23. import pageScroll from '@/components/pageScroll/index.vue'
  24. export default {
  25. components: {
  26. pageScroll
  27. },
  28. data() {
  29. return {
  30. mockData: [],
  31. };
  32. },
  33. // #ifdef MP-ALIPAY
  34. onPullDownRefresh() {
  35. this.$refs.pageRef?.loadData(true)
  36. },
  37. // #endif
  38. methods: {
  39. handleUpdateList(data) {
  40. this.mockData = data;
  41. },
  42. },
  43. };
  44. </script>
  45. <style lang="scss" scoped>
  46. .income-detail {
  47. min-height: 100vh;
  48. background-color: #f5f5f5;
  49. }
  50. .income-item {
  51. display: flex;
  52. justify-content: space-between;
  53. align-items: center;
  54. background-color: #fff;
  55. padding: 30rpx 40rpx;
  56. margin-bottom: 2rpx;
  57. .item-left {
  58. .income-title {
  59. font-size: 32rpx;
  60. color: #333;
  61. margin-bottom: 10rpx;
  62. }
  63. .income-time {
  64. font-size: 28rpx;
  65. color: #999;
  66. }
  67. }
  68. .income-amount {
  69. font-size: 32rpx;
  70. color: #ff5555;
  71. font-weight: 500;
  72. }
  73. }
  74. </style>