goods_cate.js 3.1 KB

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