goods_cate.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. import {
  2. getCategoryList
  3. } from '../../api/store.js';
  4. const app = getApp();
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. navlist: [],
  11. productList: [],
  12. navActive: 0,
  13. parameter: {
  14. 'navbar': '1',
  15. 'return': '0',
  16. 'title': '产品分类'
  17. },
  18. navH: "",
  19. number: ""
  20. },
  21. /**
  22. * 生命周期函数--监听页面加载
  23. */
  24. onLoad: function (res) {
  25. this.getAllCategory();
  26. },
  27. infoScroll: function () {
  28. let that = this;
  29. let len = that.data.productList.length;
  30. that.setData({
  31. navH: app.globalData.navHeight,
  32. number: that.data.productList[len - 1].children.length
  33. })
  34. //设置商品列表高度
  35. wx.getSystemInfo({
  36. success: function (res) {
  37. that.setData({
  38. height: (res.windowHeight) * (750 / res.windowWidth) - 98 - app.globalData.navHeight
  39. //res.windowHeight:获取整个窗口高度为px,*2为rpx;98为头部占据的高度;
  40. })
  41. },
  42. });
  43. var height = 0;
  44. var hightArr = [];
  45. for (var i = 0; i < len; i++) { //productList
  46. //获取元素所在位置
  47. var query = wx.createSelectorQuery().in(this);
  48. var idView = "#b" + i;
  49. query.select(idView).boundingClientRect();
  50. query.exec(function (res) {
  51. var top = res[0].top;
  52. hightArr.push(top);
  53. that.setData({
  54. hightArr: hightArr
  55. });
  56. });
  57. };
  58. },
  59. tap: function (e) {
  60. var id = e.currentTarget.dataset.id;
  61. var index = e.currentTarget.dataset.index;
  62. this.setData({
  63. toView: id,
  64. navActive: index
  65. });
  66. },
  67. getAllCategory: function () {
  68. var that = this;
  69. getCategoryList().then(res => {
  70. that.setData({
  71. productList: res.data
  72. });
  73. that.infoScroll();
  74. })
  75. },
  76. scroll: function (e) {
  77. var scrollTop = e.detail.scrollTop;
  78. var scrollArr = this.data.hightArr;
  79. for (var i = 0; i < scrollArr.length; i++) {
  80. if (scrollTop >= 0 && scrollTop < scrollArr[1] - scrollArr[0]) {
  81. this.setData({
  82. navActive: 0,
  83. lastActive: 0
  84. })
  85. } else if (scrollTop >= scrollArr[i] - scrollArr[0] && scrollTop < scrollArr[i + 1] - scrollArr[0]) {
  86. this.setData({
  87. navActive: i
  88. })
  89. } else if (scrollTop >= scrollArr[scrollArr.length - 1] - scrollArr[0]) {
  90. this.setData({
  91. navActive: scrollArr.length - 1
  92. })
  93. }
  94. }
  95. },
  96. searchSubmitValue: function (e) {
  97. if (e.detail.value.length > 0)
  98. wx.navigateTo({
  99. url: '/pages/goods_list/goods_list?searchValue=' + e.detail.value
  100. })
  101. else
  102. return app.Tips({
  103. title: '请填写要搜索的产品信息'
  104. });
  105. },
  106. /**
  107. * 生命周期函数--监听页面初次渲染完成
  108. */
  109. onReady: function () {
  110. },
  111. /**
  112. * 生命周期函数--监听页面显示
  113. */
  114. onShow: function () {
  115. },
  116. /**
  117. * 生命周期函数--监听页面隐藏
  118. */
  119. onHide: function () {
  120. },
  121. /**
  122. * 生命周期函数--监听页面卸载
  123. */
  124. onUnload: function () {
  125. },
  126. /**
  127. * 页面相关事件处理函数--监听用户下拉动作
  128. */
  129. onPullDownRefresh: function () {
  130. }
  131. })