activityList.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. const { default: activity } = require("../../api/activity");
  2. // pages/activityList/activityList.js
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. userMobile:'',
  9. //火热
  10. list: [], //卡券列表
  11. page:1,
  12. pageNum:10,
  13. count:0,
  14. },
  15. /**
  16. * 生命周期函数--监听页面加载
  17. */
  18. onLoad: function () {
  19. let _self = this;
  20. //获取列表
  21. _self.getList();
  22. },
  23. /**
  24. * 生命周期函数--监听页面初次渲染完成
  25. */
  26. onReady: function () {
  27. },
  28. /**
  29. * 生命周期函数--监听页面显示
  30. */
  31. onShow: function () {
  32. },
  33. /**
  34. * 生命周期函数--监听页面隐藏
  35. */
  36. onHide: function () {
  37. },
  38. /**
  39. * 生命周期函数--监听页面卸载
  40. */
  41. onUnload: function () {
  42. },
  43. /**
  44. * 页面相关事件处理函数--监听用户下拉动作
  45. */
  46. onPullDownRefresh: function () {
  47. },
  48. /**
  49. * 页面上拉触底事件的处理函数
  50. */
  51. onReachBottom: function () {
  52. var totalPage = Math.ceil(this.data.count/this.data.pageNum)
  53. console.log('到底了')
  54. var page = this.data.page
  55. page++;
  56. this.setData({
  57. page:page
  58. })
  59. if(page<=totalPage){
  60. console.log(123)
  61. this.getList();
  62. }
  63. },
  64. /**
  65. * 用户点击右上角分享
  66. */
  67. onShareAppMessage: function () {
  68. },
  69. goToShare(e){
  70. console.log(e)
  71. let _self = this;
  72. wx.navigateTo({
  73. url: '/pages/activityInfo/activityInfo?id='+e.currentTarget.dataset.id+'&mobile='+_self.data.userMobile,
  74. })
  75. },
  76. //获取手机号
  77. getPhoneNumber(e) {
  78. let _self = this;
  79. var encryptedData = e.detail.encryptedData;
  80. console.log(encryptedData);
  81. var iv = e.detail.iv;
  82. if (!encryptedData || encryptedData.length == 0 || !iv || iv.length == 0) {
  83. return;
  84. }
  85. //获取手机号
  86. getApp().doDecodePhone(encryptedData, iv, function () {
  87. let userMobile = activity.getMobileCache();
  88. console.log(userMobile)
  89. if (userMobile.length !== 0) {
  90. _self.setData({
  91. userMobile: userMobile,
  92. })
  93. //判断该手机号在不在分享名单里
  94. _self.isShareByMobile();
  95. }
  96. });
  97. },
  98. //获取活动列表
  99. getList: async function() {
  100. let _self = this;
  101. var result = await activity.getActivityList(this.data.page,this.data.pageNum,2);
  102. var list = this.handleCouponList(result.list);
  103. if(this.data.page != 1){
  104. var nowResult = this.data.list.concat(list)
  105. }else{
  106. var nowResult = list
  107. }
  108. //判断该电话是否存在 如果不存在 取第一条
  109. if(_self.data.userMobile=='') {
  110. nowResult = nowResult.length>0?[nowResult[0]]:nowResult;
  111. }
  112. this.setData({
  113. list:nowResult,
  114. count:result.count,
  115. page:result.page
  116. })
  117. },
  118. async isShareByMobile(){
  119. let _self = this;
  120. var result = await activity.isShareByMobile(_self.data.userMobile);
  121. if(result.isShare==1){
  122. _self.setData({
  123. page:1
  124. })
  125. _self.getList();
  126. }
  127. },
  128. handleCouponList(list) {
  129. if (list.length === 0) {
  130. return list;
  131. }
  132. var objSwitch = getApp().globalData.typeSwitchObj
  133. for (let i = 0; i < list.length; i++) {
  134. var couponList = list[i].activityCouponList;
  135. var couponTypeAndNumObj = {};
  136. for (let j = 0; j < couponList.length; j++) {
  137. var couponNum = couponList[j]['num'] ? couponList[j]['num'] : 1;
  138. var value = couponList[j]['coupon']['type'];
  139. var showText = objSwitch[couponList[j]['coupon']['type']];
  140. var nowNume = 0;
  141. if (couponTypeAndNumObj[value]) {
  142. nowNume = couponTypeAndNumObj[value]['num'];
  143. console.log(nowNume)
  144. }
  145. couponTypeAndNumObj[value] = {
  146. "typeText": showText,
  147. "num": couponNum + nowNume
  148. }
  149. }
  150. list[i].couponTypeAndNum = couponTypeAndNumObj
  151. }
  152. console.log(list);
  153. return list;
  154. },
  155. })