C端小程序
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

163 řádky
4.0 KiB

  1. // pages/index/sw/index.js
  2. let config = require("../../../config/config.js");
  3. let Http = require("../../../utils/HttpBasics");
  4. let app = getApp();
  5. // 请求数据
  6. Component({
  7. /**
  8. * 组件的属性列表
  9. */
  10. properties: {},
  11. /**
  12. * 组件的初始数据
  13. */
  14. data: {
  15. tabs: [],
  16. list: [],
  17. flag: "",
  18. loading: true, //"上拉加载"的变量,默认false,隐藏
  19. content:"",
  20. return_list: [],
  21. current: 0,
  22. current_scroll: 0,
  23. pageNum: 1, // 设置加载的第几次,默认是第一次
  24. pageSize: 10, //返回数据的个数
  25. searchLoadingComplete: false, //“没有数据”的变量,默认false,隐藏
  26. allow_load: true // 是否允许继续加载标识 默认 true 允许,false 加载完成
  27. },
  28. /**
  29. * 组件的方法列表
  30. */
  31. methods: {
  32. handleChange({ detail }) {
  33. this.setData({
  34. current: detail.key
  35. });
  36. },
  37. handleChangeScroll({ detail }) {
  38. let that = this;
  39. // 切换tab时重新初始化下list 和 allow_load
  40. that.setData({
  41. current_scroll: detail.key,
  42. flag: "click",
  43. list: [],
  44. allow_load: true
  45. });
  46. this.getList(detail.key, 1);
  47. var val = detail.key;
  48. //通过这个传递数据
  49. var myEventDetail = {
  50. val: val,
  51. pageNum: 1
  52. };
  53. // detail对象,提供给事件监听函数
  54. this.triggerEvent("myevent", myEventDetail);
  55. },
  56. getList(key, pageNum) {
  57. var that = this;
  58. app.couponListCallback = token => {
  59. Http.setToken(token);
  60. // 券list获取
  61. if (that.data.allow_load) {
  62. that.setData({
  63. loading:true,
  64. content:'小主,我在玩命加载中...'
  65. })
  66. // 根据 key == 0 区分全部或其它tab,决定是否传参数 business
  67. if (key == 0) {
  68. var param = {
  69. pageNum: pageNum,
  70. pageSize: 6,
  71. targetAd: 1
  72. };
  73. } else {
  74. var param = {
  75. pageNum: pageNum,
  76. pageSize: 6,
  77. business: key,
  78. targetAd: 1
  79. };
  80. }
  81. // 请求接口
  82. Http.get({
  83. url: config.api.couponChannelList,
  84. data: param
  85. }).then(res => {
  86. console.log(res);
  87. /**
  88. * 加载完成
  89. */
  90. if (pageNum >= res.data.pages) {
  91. that.setData({
  92. allow_load: false
  93. });
  94. }
  95. /**
  96. * 先赋值后渲染页面
  97. * concat 不会改变原数组值
  98. * push 会改变原数组值,但不会一条一条插入,而是整个数组插入
  99. */
  100. that.data.list = that.data.list.concat(res.data.list);
  101. that.setData({
  102. list: that.data.list
  103. });
  104. });
  105. setTimeout(function() {
  106. that.setData({
  107. loading:false,
  108. })
  109. }, 1400);
  110. } else {
  111. console.info("allow_load==false 已禁止加载");
  112. that.setData({
  113. loading:true,
  114. content:"^_^再拉裤子就掉啦ʅ(´◔౪◔)ʃ"
  115. })
  116. setTimeout(function(){
  117. that.setData({
  118. loading:false,
  119. })
  120. },1400)
  121. }
  122. };
  123. if (app.globalData.token && app.globalData.token != null) {
  124. app.couponListCallback(app.globalData.token);
  125. }
  126. }
  127. },
  128. ready() {
  129. let that = this;
  130. app.businessListCallback = token => {
  131. Http.setToken(token);
  132. // business获取
  133. Http.get({
  134. url: config.api.businessList,
  135. data: {
  136. pageNum: 1,
  137. pageSize: 15,
  138. type: 1
  139. }
  140. }).then(res => {
  141. that.setData({
  142. tabs: res.data.list
  143. });
  144. });
  145. };
  146. if (app.globalData.token && app.globalData.token != null) {
  147. app.businessListCallback(app.globalData.token);
  148. }
  149. that.getList(0, 1);
  150. }
  151. });