points.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <template>
  2. <view>
  3. <view class="points-top d-b-c">
  4. <view class="">
  5. <text class="f26">积分总数:</text>
  6. <text class="f34 fb">{{points}}</text>
  7. </view>
  8. <button v-if="is_open" type="default" class="btn-red-border" @click="gotoShop">积分商城</button>
  9. </view>
  10. <!--列表-->
  11. <view class="p-0-30 bg-white">
  12. <view class="d-b-c border-b p-30-0" v-for="(item, index) in tableData" :key="index">
  13. <view class="d-s-s f-w d-c flex-1">
  14. <text class="f24">{{item.describe}}</text>
  15. <text class="pt10 gray9 f22">{{item.create_time}}</text>
  16. </view>
  17. <view class="red" v-if="item.value>0">+{{item.value}}</view>
  18. <view class="red" v-else="">{{item.value}}</view>
  19. </view>
  20. <!-- 没有记录 -->
  21. <view class="d-c-c p30" v-if="tableData.length==0 && !loading">
  22. <text class="iconfont icon-wushuju"></text>
  23. <text class="cont">亲,暂无相关记录哦</text>
  24. </view>
  25. <uni-load-more v-else :loadingType="loadingType"></uni-load-more>
  26. </view>
  27. </view>
  28. </template>
  29. <script>
  30. import uniLoadMore from "@/components/uni-load-more.vue";
  31. export default {
  32. components: {
  33. uniLoadMore
  34. },
  35. data() {
  36. return {
  37. /*是否加载完成*/
  38. loadding: true,
  39. indicatorDots: true,
  40. autoplay: true,
  41. interval: 2000,
  42. duration: 500,
  43. /*顶部刷新*/
  44. topRefresh: false,
  45. /*手机高度*/
  46. phoneHeight: 0,
  47. /*可滚动视图区域高度*/
  48. scrollviewHigh: 0,
  49. /*数据列表*/
  50. tableData: [],
  51. /*最后一页码数*/
  52. last_page: 0,
  53. /*当前页面*/
  54. page: 1,
  55. /*每页条数*/
  56. list_rows: 20,
  57. no_more: false,
  58. loading: true,
  59. points: 0,
  60. is_open: false
  61. };
  62. },
  63. computed:{
  64. /*加载中状态*/
  65. loadingType(){
  66. if(this.loading){
  67. return 1;
  68. }else{
  69. if(this.tableData.length!=0&&this.no_more){
  70. return 2;
  71. }else{
  72. return 0;
  73. }
  74. }
  75. }
  76. },
  77. mounted() {
  78. /*获取数据*/
  79. this.getData();
  80. },
  81. onReachBottom() {
  82. let self = this;
  83. if (self.page < self.last_page) {
  84. self.page++;
  85. self.getData();
  86. }
  87. self.no_more = true;
  88. },
  89. methods: {
  90. /*获取数据*/
  91. getData() {
  92. let self = this;
  93. let page = self.page;
  94. let list_rows = self.list_rows;
  95. self._get('points.log/index', {
  96. page: page || 1,
  97. list_rows: list_rows,
  98. }, function(data) {
  99. self.loading = false;
  100. self.points = data.data.points;
  101. self.is_open = data.data.is_open;
  102. self.tableData = self.tableData.concat(data.data.list.data);
  103. self.last_page = data.data.list.last_page;
  104. if (data.data.list.last_page <= 1) {
  105. self.no_more = true;
  106. return false;
  107. }
  108. });
  109. },
  110. /*跳转积分商城*/
  111. gotoShop(){
  112. this.gotoPage('/pages/plus/points/list/list');
  113. }
  114. }
  115. };
  116. </script>
  117. <style>
  118. .points-top {
  119. height: 100rpx;
  120. padding: 0 30rpx;
  121. color: #FFFFFF;
  122. background: #f44f47;
  123. }
  124. </style>