index.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. // nova-werun/pages/activity/index.js
  2. const Parse = getApp().Parse;
  3. const company = getApp().globalData.company;
  4. const uid = Parse.User.current()?.id
  5. const dateF = require("../../../utils/date")
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. activtList: [],
  12. },
  13. /**
  14. * 生命周期函数--监听页面加载
  15. */
  16. onLoad: function (options) {
  17. this.getActivity()
  18. },
  19. /**判断用户参与活动状态 */
  20. async getActStatus(activity, query, count) {
  21. let now = new Date()
  22. if (now > activity.get('endDate')) {
  23. return {
  24. title: '已结束',
  25. isCanSign: false
  26. }
  27. }
  28. if (!activity.get('isEnabled')) {
  29. return {
  30. title: '未开启',
  31. isCanSign: false
  32. }
  33. }
  34. if (activity.get('signFromTo')?.fromDate && now < activity.get('signFromTo').fromDate) {
  35. return {
  36. title: '未到报名时间',
  37. isCanSign: false
  38. }
  39. }
  40. if (activity.get('signFromTo')?.toDate && now >= activity.get('signFromTo').toDate) {
  41. return {
  42. title: '报名时间已过',
  43. isCanSign: false,
  44. }
  45. }
  46. query.equalTo('user', uid)
  47. let aRegister = await query.first()
  48. if (aRegister?.id) {
  49. return {
  50. title: '已报名',
  51. isCanSign: false,
  52. isCanRevise: true
  53. }
  54. }
  55. if (activity.get('merber') >= 0 && count >= activity.get('merber')) {
  56. return {
  57. title: '人数已满',
  58. isCanSign: false
  59. }
  60. }
  61. return {
  62. title: '可报名',
  63. isCanSign: true
  64. }
  65. },
  66. /** 获取前五个活动*/
  67. async getActivity() {
  68. let {
  69. activtList,
  70. count
  71. } = this.data
  72. if (count && activtList.length >= count) {
  73. wx.showToast({
  74. title: '已加载全部',
  75. icon: 'none',
  76. duration: 500
  77. })
  78. return
  79. }
  80. let query = new Parse.Query('Activity')
  81. query.equalTo('company', company)
  82. query.notEqualTo('isDeleted', true)
  83. query.notEqualTo('isHidden', true)
  84. query.ascending('index')
  85. count = await query.count()
  86. query.limit(20)
  87. query.skip(activtList?.length)
  88. let list = await query.find()
  89. let aList = []
  90. if (Array.isArray(list)) {
  91. for (let i in list) {
  92. let query = new Parse.Query('ActivityRegister')
  93. query.notEqualTo('isDeleted', true)
  94. query.equalTo('activity', list[i].id)
  95. query.equalTo('isPay', true)
  96. query.equalTo('isChecked', true)
  97. let count = await query.count()
  98. let tip = await this.getActStatus(list[i], query, count)
  99. let obj = list[i].toJSON()
  100. obj.tip = tip
  101. obj['resgisterCount'] = count
  102. obj.startDate = dateF.formatTime("YYYY.mm.dd HH:MM", obj.startDate?.iso)
  103. obj.endDate = dateF.formatTime("YYYY.mm.dd HH:MM", obj.endDate?.iso)
  104. if (obj.signFromTo?.from && obj.signFromTo?.to) {
  105. obj.signFromTo.from = dateF.formatTime("YYYY.mm.dd HH:MM", obj.signFromTo?.from?.iso)
  106. obj.signFromTo.to = dateF.formatTime("mm.dd HH:MM", obj.signFromTo?.to?.iso)
  107. }
  108. activtList.push(obj)
  109. }
  110. }
  111. this.setData({
  112. activtList,
  113. count
  114. })
  115. },
  116. /**
  117. * 生命周期函数--监听页面初次渲染完成
  118. */
  119. onReady: function () {
  120. },
  121. /**
  122. * 生命周期函数--监听页面显示
  123. */
  124. onShow: function () {
  125. },
  126. /**
  127. * 生命周期函数--监听页面隐藏
  128. */
  129. onHide: function () {
  130. },
  131. /**
  132. * 生命周期函数--监听页面卸载
  133. */
  134. onUnload: function () {
  135. },
  136. /**
  137. * 页面相关事件处理函数--监听用户下拉动作
  138. */
  139. onPullDownRefresh: function () {
  140. },
  141. /**
  142. * 页面上拉触底事件的处理函数
  143. */
  144. onReachBottom: function () {
  145. this.getActivity()
  146. },
  147. /**
  148. * 用户点击右上角分享
  149. */
  150. onShareAppMessage: function () {
  151. },
  152. gourl(e) {
  153. const url = e.currentTarget.dataset.url
  154. const id = e.currentTarget.dataset.id
  155. wx.navigateTo({
  156. url: `${url}?id=` + id // 目标页面的路径
  157. });
  158. },
  159. })