index.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. // nova-werun/pages/home/signin/index.js
  2. const Parse = getApp().Parse;
  3. const company = getApp().globalData.company;
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. //屏幕高度
  10. statusBarHeight: 0, // 状态栏高度
  11. screenHeight: 0, // 屏幕高度
  12. customHeight: 0, // 自定义导航栏高度(如小程序右上角胶囊按钮)
  13. bottomNavHeight: 0, // 底部导航栏高度
  14. contentHeight: 0, // 可用内容高度
  15. contentHeight2: 0,
  16. contentpadding: 0, //顶部padding高度
  17. //是否打卡
  18. issigin: false,
  19. images: [
  20. 'https://tse2-mm.cn.bing.net/th/id/OIP-C.kACuwmhGcHKV4G4Og9AFqgHaLG?rs=1&pid=ImgDetMain',
  21. 'https://tse1-mm.cn.bing.net/th/id/OIP-C.LYrbU3wnasLo4nvoAqs_HQHaLH?rs=1&pid=ImgDetMain',
  22. 'https://tse3-mm.cn.bing.net/th/id/OIP-C.KKzj-pCKvzmWJ9MU5pE5KwHaKq?rs=1&pid=ImgDetMain',
  23. 'https://ts1.cn.mm.bing.net/th/id/R-C.d8333a26a5494dfe1dc88e9fdd04fb31?rik=08fpnYZSbboHfQ&riu=http%3a%2f%2fpic.ibaotu.com%2fspiders%2f33817-59a6262d3ff70.jpg&ehk=fKs2FTTgk2k0kqet%2fVO%2bAS3D0Q6zlNyUPmT8UE%2bvpdY%3d&risl=&pid=ImgRaw&r=0',
  24. 'https://pic.nximg.cn/file/20230420/12106414_122949747127_2.jpg'
  25. ],
  26. randomImage: '',
  27. },
  28. /**
  29. * 生命周期函数--监听页面加载
  30. */
  31. onLoad: function (options) {
  32. // 计算
  33. const systemInfo = wx.getSystemInfoSync();
  34. const statusBarHeight = systemInfo.statusBarHeight || 0;
  35. const screenHeight = systemInfo.screenHeight || 0;
  36. const custom = wx.getMenuButtonBoundingClientRect();
  37. const customHeight = custom.height + 10 + 2 || 0;
  38. const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0;
  39. const contentpadding = (statusBarHeight + customHeight) * 750 / systemInfo.windowWidth;
  40. const contentHeight = (screenHeight - bottomNavHeight - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth;
  41. this.setData({
  42. statusBarHeight,
  43. screenHeight,
  44. customHeight,
  45. bottomNavHeight,
  46. contentpadding,
  47. contentHeight
  48. });
  49. this.showRandomImage()
  50. this.order()
  51. },
  52. /**
  53. * 生命周期函数--监听页面初次渲染完成
  54. */
  55. onReady: function () {
  56. },
  57. /**
  58. * 生命周期函数--监听页面显示
  59. */
  60. onShow: function () {
  61. },
  62. /**
  63. * 生命周期函数--监听页面隐藏
  64. */
  65. onHide: function () {
  66. },
  67. /**
  68. * 生命周期函数--监听页面卸载
  69. */
  70. onUnload: function () {
  71. },
  72. /**
  73. * 页面相关事件处理函数--监听用户下拉动作
  74. */
  75. onPullDownRefresh: function () {
  76. },
  77. /**
  78. * 页面上拉触底事件的处理函数
  79. */
  80. onReachBottom: function () {
  81. },
  82. /**
  83. * 用户点击右上角分享
  84. */
  85. onShareAppMessage: function () {
  86. },
  87. //检查当天是否签到
  88. async order() {
  89. const currentUser = Parse.User.current();
  90. let EventLogquery = new Parse.Query('EventLog');
  91. EventLogquery.equalTo('user', currentUser.id);
  92. EventLogquery.equalTo('company', company);
  93. EventLogquery.notEqualTo('isDeleted', true)
  94. // 获取今天的日期
  95. const today = new Date();
  96. const todayStart = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // 今天的开始时间
  97. const todayEnd = new Date(todayStart);
  98. todayEnd.setHours(23, 59, 59, 999); // 今天的结束时间
  99. // 在查询条件中添加对 createdAt 的限制
  100. EventLogquery.greaterThanOrEqualTo('createdAt', todayStart);
  101. EventLogquery.lessThanOrEqualTo('createdAt', todayEnd);
  102. let P = await EventLogquery.first();
  103. if (P) {
  104. this.setData({
  105. issigin: true
  106. })
  107. return;
  108. }
  109. },
  110. async submit() {
  111. const currentUser = Parse.User.current();
  112. let EventLogquery = new Parse.Query('EventLog');
  113. EventLogquery.equalTo('user', currentUser.id);
  114. EventLogquery.equalTo('company', company);
  115. EventLogquery.notEqualTo('isDeleted', true)
  116. // 获取今天的日期
  117. const today = new Date();
  118. const todayStart = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // 今天的开始时间
  119. const todayEnd = new Date(todayStart);
  120. todayEnd.setHours(23, 59, 59, 999); // 今天的结束时间
  121. // 在查询条件中添加对 createdAt 的限制
  122. EventLogquery.greaterThanOrEqualTo('createdAt', todayStart);
  123. EventLogquery.lessThanOrEqualTo('createdAt', todayEnd);
  124. let P = await EventLogquery.first();
  125. if (P) {
  126. this.setData({
  127. issigin: true
  128. })
  129. console.log('今日已打卡');
  130. return;
  131. } else {
  132. const currentUser = Parse.User.current();
  133. let userquery = new Parse.Query('_User');
  134. userquery.equalTo('company', company);
  135. userquery.equalTo('objectId', currentUser.id);
  136. userquery.notEqualTo('isDeleted', true)
  137. let user = await userquery.first();
  138. let companyPointer = Parse.Object.extend('Company').createWithoutData(company);
  139. let EventLog = new Parse.Object('EventLog');
  140. EventLog.set('points', '10')
  141. EventLog.set('company', companyPointer);
  142. EventLog.set('user', user.toPointer());
  143. try {
  144. let saveDate = await EventLog.save();
  145. console.log(saveDate);
  146. this.setData({
  147. issigin: true
  148. })
  149. console.log("打卡成功");
  150. } catch (error) {
  151. console.error("保存数据时出现错误:", error);
  152. }
  153. }
  154. },
  155. //随机展示图片
  156. showRandomImage: function () {
  157. const randomIndex = Math.floor(Math.random() * this.data.images.length);
  158. this.setData({
  159. randomImage: this.data.images[randomIndex]
  160. });
  161. }
  162. })