log.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <template>
  2. <view class="container" :style="appThemeStyle">
  3. <mescroll-body ref="mescrollRef" :sticky="true" @init="mescrollInit" :down="{ use: false }" :up="upOption" @up="upCallback">
  4. <view class="log-list">
  5. <view v-for="(item, index) in list.data" :key="index" class="log-item">
  6. <view class="item-left flex-box">
  7. <view class="rec-status">
  8. <text>{{ item.describe }}</text>
  9. </view>
  10. <view class="rec-time">
  11. <text>{{ item.create_time }}</text>
  12. </view>
  13. </view>
  14. <view class="item-right col-m">
  15. <text>{{ item.value > 0 ? '+' : '' }}{{ item.value }}</text>
  16. </view>
  17. </view>
  18. </view>
  19. </mescroll-body>
  20. </view>
  21. </template>
  22. <script>
  23. import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins'
  24. import * as LogApi from '@/api/points/log'
  25. import { getEmptyPaginateObj, getMoreListData } from '@/core/app'
  26. const pageSize = 15
  27. export default {
  28. mixins: [MescrollMixin],
  29. data() {
  30. return {
  31. // 充值记录
  32. list: getEmptyPaginateObj(),
  33. // 上拉加载配置
  34. upOption: {
  35. // 首次自动执行
  36. auto: true,
  37. // 每页数据的数量; 默认10
  38. page: { size: pageSize },
  39. // 数量要大于12条才显示无更多数据
  40. noMoreSize: 12,
  41. // 空布局
  42. empty: {
  43. tip: '亲,暂无相关数据'
  44. }
  45. }
  46. }
  47. },
  48. /**
  49. * 生命周期函数--监听页面加载
  50. */
  51. onLoad(options) {},
  52. methods: {
  53. /**
  54. * 上拉加载的回调 (页面初始化时也会执行一次)
  55. * 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10
  56. * @param {Object} page
  57. */
  58. upCallback(page) {
  59. const app = this
  60. // 设置列表数据
  61. app.getLogList(page.num)
  62. .then(list => {
  63. const curPageLen = list.data.length
  64. const totalSize = list.total
  65. app.mescroll.endBySize(curPageLen, totalSize)
  66. })
  67. .catch(() => app.mescroll.endErr())
  68. },
  69. // 获取积分明细列表
  70. getLogList(pageNo = 1) {
  71. const app = this
  72. return new Promise((resolve, reject) => {
  73. LogApi.list({ page: pageNo })
  74. .then(result => {
  75. // 合并新数据
  76. const newList = result.data.list
  77. app.list.data = getMoreListData(newList, app.list, pageNo)
  78. resolve(newList)
  79. })
  80. })
  81. }
  82. }
  83. }
  84. </script>
  85. <style lang="scss" scoped>
  86. page,
  87. .container {
  88. background: #fff;
  89. }
  90. .log-list {
  91. padding: 0 30rpx;
  92. }
  93. .log-item {
  94. font-size: 28rpx;
  95. padding: 20rpx 20rpx;
  96. line-height: 1.8;
  97. border-bottom: 1rpx solid rgb(238, 238, 238);
  98. display: flex;
  99. justify-content: center;
  100. align-items: center;
  101. }
  102. .rec-status {
  103. color: #333;
  104. .rec-time {
  105. color: rgb(160, 160, 160);
  106. font-size: 26rpx;
  107. }
  108. }
  109. </style>