footprint.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <template>
  2. <view>
  3. <!--mine/footprint/footprint.wxml-->
  4. <view v-if="pageList.length > 0">
  5. <block v-for="(item, index) in pageList" :key="index">
  6. <view class="date">{{item.times}}</view>
  7. <view class="list">
  8. <navigator v-for="(item, index2) in item.nodes" :key="index2"
  9. :url="'/product/detail/detail?id=' + item.id" hover-class="none" class="li">
  10. <image :src="item.pic" mode="aspectFit" class="cimg"></image>
  11. <view class="zhinfo">
  12. <view class="zhtit">{{item.title}}</view>
  13. <!-- <view class="guige">规格:15g</view> -->
  14. <view class="jiage">
  15. <view class="zhjia">¥<text>{{item.salePrice}}</text></view>
  16. </view>
  17. </view>
  18. </navigator>
  19. </view>
  20. </block>
  21. </view>
  22. <view class="nodata" v-if="ishow">
  23. <image :src="picUrlss+'empty.png'"></image>
  24. <text>暂无记录~</text>
  25. </view>
  26. </view>
  27. </template>
  28. <script>
  29. const req = require("../../utils/request.js");
  30. const app = getApp();
  31. export default {
  32. data() {
  33. return {
  34. picUrlss: req.public.picUrls,
  35. form: {
  36. page: 1,
  37. limit: 10
  38. },
  39. pageList: [],
  40. isLoad: true,
  41. ishow: false
  42. };
  43. },
  44. components: {},
  45. props: {},
  46. onLoad: function(options) {
  47. this.loadFootprint();
  48. },
  49. onReachBottom() {
  50. this.form.page++;
  51. this.loadFootprint();
  52. },
  53. methods: {
  54. loadFootprint() {
  55. let isShowLoading = false;
  56. if (this.form.page == 1 && !isShowLoading) {
  57. req.loadIng('加载中');
  58. isShowLoading = true;
  59. }
  60. if (!this.isLoad) return false;
  61. this.isLoad = false;
  62. let that = this;
  63. req.getRequest('/api/footprint/product', this.form, data => {
  64. if (data && data.length == 10) this.isLoad = true;
  65. let pageList = that.pageList;
  66. if (data && data.length > 0) {
  67. data = data.map(it => {
  68. const t = it.createDate.split('-');
  69. it.times = t[1] + '-' + t[2];
  70. return it;
  71. });
  72. data.forEach(it => {
  73. let isExist = pageList.filter(pg => pg.createDate === it.createDate).length >
  74. 0;
  75. let nodes = [];
  76. if (isExist) {
  77. pageList[pageList.length - 1].nodes.push(it);
  78. } else {
  79. let map = {
  80. times: it.times,
  81. createDate: it.createDate
  82. };
  83. nodes.push(it);
  84. map.nodes = nodes;
  85. pageList.push(map);
  86. }
  87. });
  88. that.setData({
  89. pageList: pageList
  90. });
  91. that.setData({
  92. ishow: false
  93. });
  94. // console.log(pageList);
  95. } else {
  96. that.setData({
  97. ishow: true
  98. });
  99. }
  100. if (isShowLoading) {
  101. uni.hideLoading();
  102. isShowLoading = false;
  103. }
  104. });
  105. }
  106. }
  107. };
  108. </script>
  109. <style>
  110. @import "./footprint.css";
  111. </style>