index.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. import HomeApi from '../../services/home'
  2. import { share } from '../../utils/http'
  3. const size = 20
  4. // pages/atphotos/index.ts
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. loading: false,
  11. idx: -1,
  12. cates: [] as { name: string; url: string }[],
  13. total: 0,
  14. allItems: [] as any[],
  15. items: [] as string[],
  16. viewcnt: 0,
  17. views: [] as string[],
  18. container: null as any,
  19. },
  20. /**
  21. * 生命周期函数--监听页面加载
  22. */
  23. onLoad({ id }: { id: string }) {
  24. this.setData({
  25. loading: true,
  26. container: () => this.createSelectorQuery().select('.mainpage'),
  27. })
  28. HomeApi.GetActiveDetail({
  29. id,
  30. })
  31. .then((rsp) => {
  32. const result = rsp.result
  33. const items = result.items
  34. const idx = this.data.idx
  35. let currentItems: any[] = []
  36. let takes: any[] = []
  37. const cates = result.items.map((o) => ({
  38. url: o.image,
  39. name: o.name,
  40. }))
  41. if (idx > -1) {
  42. currentItems = items[idx].children
  43. takes = currentItems.slice(0, size)
  44. }
  45. console.log(cates)
  46. this.setData({
  47. loading: false,
  48. allItems: items,
  49. idx: -1,
  50. cates,
  51. total: currentItems.length,
  52. items: currentItems,
  53. views: takes,
  54. viewcnt: takes.length,
  55. })
  56. wx.setNavigationBarTitle({
  57. // @ts-ignore
  58. title: result.name,
  59. })
  60. })
  61. .catch(() => {
  62. this.setData({
  63. loading: false,
  64. })
  65. })
  66. },
  67. /**
  68. * 生命周期函数--监听页面初次渲染完成
  69. */
  70. onReady() {
  71. this.setData({
  72. container: () => this.createSelectorQuery().select('.mainpage'),
  73. })
  74. },
  75. /**
  76. * 生命周期函数--监听页面显示
  77. */
  78. onShow() {},
  79. /**
  80. * 生命周期函数--监听页面隐藏
  81. */
  82. onHide() {},
  83. /**
  84. * 生命周期函数--监听页面卸载
  85. */
  86. onUnload() {},
  87. /**
  88. * 页面相关事件处理函数--监听用户下拉动作
  89. */
  90. onPullDownRefresh() {},
  91. /**
  92. * 页面上拉触底事件的处理函数
  93. */
  94. onReachBottom() {
  95. if (this.data.viewcnt < this.data.total) {
  96. const takes = this.data.items.slice(0, this.data.viewcnt + size)
  97. this.setData({
  98. views: takes,
  99. viewcnt: takes.length,
  100. })
  101. }
  102. },
  103. /**
  104. * 用户点击右上角分享
  105. */
  106. onShareAppMessage() {
  107. let pages = getCurrentPages(); //获取所有页面栈实例列表
  108. let nowPage = pages[pages.length - 1]; //当前页页面实例
  109. return {
  110. title: share.title,
  111. path: `/${nowPage.route}`,
  112. imageUrl: share.imageUrl,
  113. success(res) {
  114. console.log('success(res)==', res);
  115. },
  116. fail(res) {
  117. console.log('fail(res)==', res);
  118. }
  119. }
  120. },
  121. goview(e: WechatMiniprogram.BaseEvent<{}, { idx: number }>) {
  122. const { idx } = e.currentTarget.dataset
  123. wx.previewImage({
  124. urls: this.data.items,
  125. current: this.data.items[idx],
  126. })
  127. },
  128. goback() {
  129. this.setData({
  130. idx: -1,
  131. viewcnt: 0,
  132. views: [],
  133. items: [],
  134. total: 0,
  135. })
  136. },
  137. gocate(e: WechatMiniprogram.BaseEvent<{}, { idx: number }>) {
  138. const { idx } = e.currentTarget.dataset
  139. const currentItems = this.data.allItems[idx].children
  140. const takes = currentItems.slice(0, size)
  141. this.setData({
  142. idx,
  143. total: currentItems.length,
  144. items: currentItems,
  145. views: takes,
  146. viewcnt: takes.length,
  147. })
  148. },
  149. })