index.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. // nova-werun/pages/home/share/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. sharList: [],
  18. images: [
  19. 'https://tse2-mm.cn.bing.net/th/id/OIP-C.kACuwmhGcHKV4G4Og9AFqgHaLG?rs=1&pid=ImgDetMain',
  20. 'https://tse1-mm.cn.bing.net/th/id/OIP-C.LYrbU3wnasLo4nvoAqs_HQHaLH?rs=1&pid=ImgDetMain',
  21. 'https://tse3-mm.cn.bing.net/th/id/OIP-C.KKzj-pCKvzmWJ9MU5pE5KwHaKq?rs=1&pid=ImgDetMain',
  22. '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',
  23. 'https://pic.nximg.cn/file/20230420/12106414_122949747127_2.jpg'
  24. ],
  25. randomImage:''
  26. },
  27. /**
  28. * 生命周期函数--监听页面加载
  29. */
  30. onLoad: function (options) {
  31. // 计算
  32. const systemInfo = wx.getSystemInfoSync();
  33. const statusBarHeight = systemInfo.statusBarHeight || 0;
  34. const screenHeight = systemInfo.screenHeight || 0;
  35. const custom = wx.getMenuButtonBoundingClientRect();
  36. const customHeight = custom.height + 10 + 2 || 0;
  37. const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0;
  38. const contentpadding = (statusBarHeight + customHeight) * 750 / systemInfo.windowWidth;
  39. const contentHeight = (screenHeight - bottomNavHeight - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth;
  40. this.setData({
  41. statusBarHeight,
  42. screenHeight,
  43. customHeight,
  44. bottomNavHeight,
  45. contentpadding,
  46. contentHeight
  47. });
  48. this.order()
  49. this.showRandomImage()
  50. },
  51. /**
  52. * 生命周期函数--监听页面初次渲染完成
  53. */
  54. onReady: function () {
  55. },
  56. /**
  57. * 生命周期函数--监听页面显示
  58. */
  59. onShow: function () {
  60. },
  61. /**
  62. * 生命周期函数--监听页面隐藏
  63. */
  64. onHide: function () {
  65. },
  66. /**
  67. * 生命周期函数--监听页面卸载
  68. */
  69. onUnload: function () {
  70. },
  71. /**
  72. * 页面相关事件处理函数--监听用户下拉动作
  73. */
  74. onPullDownRefresh: function () {
  75. },
  76. /**
  77. * 页面上拉触底事件的处理函数
  78. */
  79. onReachBottom: function () {
  80. },
  81. /**
  82. * 用户点击右上角分享
  83. */
  84. onShareAppMessage: function () {
  85. },
  86. //获取当天运动数据
  87. async order() {
  88. const currentUser = Parse.User.current();
  89. let ActivityDataquery = new Parse.Query('ActivityData');
  90. // ActivityDataquery.equalTo('user', currentUser.id);
  91. ActivityDataquery.equalTo('company', company);
  92. ActivityDataquery.equalTo('type', 'today');
  93. ActivityDataquery.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. ActivityDataquery.greaterThanOrEqualTo('createdAt', todayStart);
  101. ActivityDataquery.lessThanOrEqualTo('createdAt', todayEnd);
  102. ActivityDataquery.include('user');
  103. // 根据 steps 字段进行降序排序
  104. ActivityDataquery.descending('steps');
  105. let r = await ActivityDataquery.find();
  106. let todayList = r.map(item => {
  107. let itemData = item.toJSON();
  108. // 获取当前时间并格式化
  109. const now = new Date();
  110. const formattedTime = `${now.getFullYear()}/${String(now.getMonth() + 1).padStart(2, '0')}/${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;
  111. itemData.currentTime = formattedTime; // 将当前时间添加到 item 中
  112. return itemData;
  113. });
  114. let sharList = []
  115. todayList.forEach((item, index) => {
  116. if (item.user.objectId == currentUser.id) {
  117. sharList.push({
  118. ...item, // 包含用户数据
  119. rank: index + 1 // 计算排名(index 从 0 开始,所以加 1)
  120. });
  121. }
  122. })
  123. this.setData({
  124. sharList
  125. });
  126. console.log(this.data.sharList);
  127. },
  128. //随机展示图片
  129. showRandomImage: function () {
  130. const randomIndex = Math.floor(Math.random() * this.data.images.length);
  131. this.setData({
  132. randomImage: this.data.images[randomIndex]
  133. });
  134. },
  135. })