xttz.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <template>
  2. <view class="content">
  3. <empty v-if="loadingType === 'noMore' && list.length === 0"></empty>
  4. <view v-for="(item, index) in list" :key="index" class="order-item flex">
  5. <view class="title-box">
  6. <view class="title">
  7. <text>{{ item.msg }}</text>
  8. </view>
  9. <view class="time">
  10. <text>{{ item.add_time }}</text>
  11. </view>
  12. </view>
  13. </view>
  14. </view>
  15. </template>
  16. <script>
  17. import empty from '@/components/empty';
  18. import { message } from '@/api/user.js';
  19. import { getTime } from '@/utils/rocessor.js';
  20. export default {
  21. components: {
  22. empty
  23. },
  24. data() {
  25. return {
  26. page: 1,
  27. limit: 10,
  28. loadingType: 'more',
  29. list: []
  30. };
  31. },
  32. onLoad() {
  33. this.loadData();
  34. },
  35. onShow() {},
  36. onReachBottom() {
  37. this.loadData();
  38. },
  39. onReady() {},
  40. methods: {
  41. loadData() {
  42. const obj = this;
  43. if (obj.loadingType === 'loading' || obj.loadingType === 'noMore') {
  44. //防止重复加载
  45. return;
  46. }
  47. obj.loadingType = 'loading';
  48. message({
  49. page: obj.page,
  50. limit: obj.limit
  51. }).then(({ data }) => {
  52. data.list.forEach(e => {
  53. e.add_time = getTime(e.add_time);
  54. });
  55. obj.list = obj.list.concat(data.list);
  56. console.log(obj.list);
  57. if (obj.limit == data.list.length) {
  58. //判断是否还有数据, 有改为 more, 没有改为noMore
  59. obj.loadingType = 'more';
  60. return;
  61. } else {
  62. //判断是否还有数据, 有改为 more, 没有改为noMore
  63. obj.loadingType = 'noMore';
  64. }
  65. uni.hideLoading();
  66. });
  67. }
  68. }
  69. };
  70. </script>
  71. <style lang="scss">
  72. page,
  73. .content {
  74. min-height: 100%;
  75. height: auto;
  76. background: #ffffff;
  77. }
  78. .order-item {
  79. padding: 20rpx 30rpx;
  80. line-height: 1.5;
  81. .title-box {
  82. .title {
  83. font-size: $font-lg;
  84. color: $font-color-base;
  85. }
  86. .time {
  87. font-size: $font-base;
  88. color: $font-color-light;
  89. }
  90. }
  91. .money {
  92. color: #fd5b23;
  93. font-size: $font-lg;
  94. }
  95. }
  96. </style>