publisher.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. const util = require('../../utils/util.js')
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. publisherInfo: {},
  8. pageToken: 0,
  9. mainDatas: [],
  10. like: -1,
  11. likeEnable: true
  12. },
  13. detail: function () {
  14. wx.navigateTo({
  15. url: '/pages/publisherDetail/publisherDetail?id=' + this.data.publisherInfo._id,
  16. })
  17. },
  18. loadMessageData: function () {
  19. wx.showNavigationBarLoading()
  20. wx.cloud.callFunction({
  21. name: 'listMessages',
  22. data: {
  23. pub_id: this.data.publisherInfo._id,
  24. page_token: this.data.pageToken,
  25. page_size: 25
  26. }
  27. }).then(res => {
  28. wx.hideNavigationBarLoading()
  29. for (let i = 0; i < res.result.list.length; i++) {
  30. res.result.list[i] = util.dbToMsg(res.result.list[i])
  31. res.result.list[i].publisher = [this.data.publisherInfo]
  32. }
  33. this.setData({
  34. mainDatas: this.data.mainDatas.concat(res.result.list),
  35. pageToken: this.data.pageToken + res.result.list.length
  36. })
  37. })
  38. },
  39. toggleLike: function () {
  40. if (!this.data.likeEnable) return
  41. this.setData({
  42. likeEnable: false
  43. })
  44. const db = wx.cloud.database()
  45. if (this.data.like == 0) {
  46. db.collection("likeData").add({
  47. data: {
  48. type: "publisher",
  49. id: this.data.publisherInfo._id
  50. },
  51. success: function () {
  52. this.setData({
  53. like: 1,
  54. likeEnable: true
  55. })
  56. wx.showToast({
  57. title: "已关注",
  58. })
  59. }.bind(this),
  60. fail: function () {
  61. wx.showToast({
  62. title: "网络错误",
  63. icon: "none"
  64. })
  65. }
  66. })
  67. } else {
  68. db.collection("likeData").where({
  69. type: "publisher",
  70. id: this.data.publisherInfo._id
  71. }).remove({
  72. success: function () {
  73. this.setData({
  74. like: 0,
  75. likeEnable: true
  76. })
  77. wx.showToast({
  78. title: "已取消关注",
  79. })
  80. }.bind(this),
  81. fail: function () {
  82. wx.showToast({
  83. title: "网络错误",
  84. icon: "none"
  85. })
  86. }
  87. })
  88. }
  89. },
  90. /**
  91. * 生命周期函数--监听页面加载
  92. */
  93. onLoad: function (options) {
  94. wx.showLoading({
  95. title: "加载中"
  96. })
  97. wx.cloud.callFunction({
  98. name: 'getPublisher',
  99. data: {
  100. pub_id: options.id
  101. }
  102. }).then(res => {
  103. wx.hideLoading()
  104. this.setData({
  105. publisherInfo: res.result.data
  106. })
  107. this.loadMessageData()
  108. })
  109. // const db = wx.cloud.database()
  110. // db.collection("publisherInfoData").doc(options.id).get({
  111. // success: function (res) {
  112. // this.setData({
  113. // publisherInfo: res.data
  114. // })
  115. // db.collection("mainData").where({
  116. // publisherName: this.data.publisherInfo.publisherName
  117. // }).orderBy("time", "desc").limit(20).get({
  118. // success: function (res) {
  119. // this.processData(0, res.data)
  120. // }.bind(this)
  121. // })
  122. // }.bind(this)
  123. // })
  124. // db.collection("likeData").where({
  125. // type: "publisher",
  126. // id: options.id
  127. // }).get({
  128. // success: function (res) {
  129. // this.setData({
  130. // like: res.data.length
  131. // })
  132. // }.bind(this)
  133. // })
  134. },
  135. /**
  136. * 生命周期函数--监听页面初次渲染完成
  137. */
  138. onReady: function () {
  139. },
  140. /**
  141. * 生命周期函数--监听页面显示
  142. */
  143. onShow: function () {
  144. },
  145. /**
  146. * 生命周期函数--监听页面隐藏
  147. */
  148. onHide: function () {
  149. },
  150. /**
  151. * 生命周期函数--监听页面卸载
  152. */
  153. onUnload: function () {
  154. },
  155. /**
  156. * 页面相关事件处理函数--监听用户下拉动作
  157. */
  158. onPullDownRefresh: function () {
  159. },
  160. /**
  161. * 页面上拉触底事件的处理函数
  162. */
  163. onReachBottom: function () {
  164. this.loadMessageData()
  165. },
  166. /**
  167. * 用户点击右上角分享
  168. */
  169. onShareAppMessage: function () {
  170. }
  171. })