catalog.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. let util = require('../../utils/util')
  2. let api = require('../../config/api')
  3. let app = getApp()
  4. Page({
  5. data: {
  6. leftMenu: [],
  7. menuId: 0, // 左侧目录当前选中
  8. toView: 'menu0', // 滚动到的目录
  9. loading: false,
  10. goodsList: [], // 当前分类列表
  11. name: '',
  12. page: 1,
  13. totalPages: 1
  14. },
  15. onShow() {
  16. if (!this.data.leftMenu.length) this.getLeftMenu()
  17. else {
  18. if (app.globalData.menuId) this.setData({ menuId: app.globalData.menuId, toView: `menu${app.globalData.menuId}` })
  19. this.getCategoryGoods()
  20. }
  21. },
  22. // 获取左侧目录
  23. getLeftMenu() {
  24. util.showLoad('加载中...')
  25. util.request(api.CatalogList).then(res => {
  26. util.hideLoad()
  27. if (res.errno === 0) {
  28. let menuId = res.data.categoryList.length && res.data.categoryList[0].id || 0
  29. if (app.globalData.menuId) menuId = app.globalData.menuId
  30. this.setData({ leftMenu: res.data.categoryList, menuId, toView: menuId && `menu${menuId}` || "menu0" })
  31. this.getCategoryGoods()
  32. } else util.showErrorToast(res.errmsg)
  33. }).catch(() => {
  34. util.hideLoad()
  35. util.showErrorToast('网络连接失败')
  36. })
  37. },
  38. // 获取分类商品
  39. getCategoryGoods() {
  40. const filter = { page: this.data.page, categoryId: this.data.menuId, name: this.data.name }
  41. util.showLoad('加载中...')
  42. util.request(api.CatalogGoodsList, filter).then(res => {
  43. util.hideLoad()
  44. if (res.errno === 0) {
  45. const list = res.data.goodsList.map(item => {
  46. item.picUrl = item.picUrl.split(',')
  47. return item
  48. })
  49. const goodsList = this.data.page == 1 ? list : this.data.goodsList.concat(list)
  50. this.setData({ totalPages: res.data.totalPages, goodsList })
  51. } else util.showErrorToast(res.errmsg)
  52. }).catch(() => {
  53. util.hideLoad()
  54. util.showErrorToast('网络连接失败')
  55. })
  56. },
  57. // 左侧切换分类
  58. changeCategory({ currentTarget }) {
  59. const { id } = currentTarget.dataset
  60. this.setData({ menuId: id })
  61. app.globalData.menuId = id
  62. this.getCategoryGoods()
  63. },
  64. nameInput({ detail }) {
  65. this.setData({ page: 1, name: detail })
  66. this.getCategoryGoods()
  67. },
  68. pullDownRefresh() {
  69. this.setData({ page: 1, name: '', loading: true })
  70. this.getCategoryGoods()
  71. this.setData({ loading: false })
  72. },
  73. // 加载更多
  74. scrolltolower() {
  75. if (this.data.totalPages > this.data.page) {
  76. this.setData({ page: this.data.page + 1 })
  77. this.getCategoryGoods()
  78. } else util.showToast('已经到底了')
  79. },
  80. toDetail({ currentTarget }) {
  81. const { id } = currentTarget.dataset
  82. wx.navigateTo({ url: `/packageGoods/detail/detail?obj=${JSON.stringify({ id })}` })
  83. }
  84. })