|
@@ -20,7 +20,14 @@ Page({
|
|
//
|
|
//
|
|
day: '7',
|
|
day: '7',
|
|
target: '',
|
|
target: '',
|
|
- sharList:[]
|
|
|
|
|
|
+ sharList: [],
|
|
|
|
+ //生涯数据
|
|
|
|
+ stardate: '',
|
|
|
|
+ daysDifference: "",
|
|
|
|
+ totalSteps: 0,
|
|
|
|
+ totalDistance: 0,
|
|
|
|
+ totalBurnCalories: 0,
|
|
|
|
+ totalsportDate:0
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -47,6 +54,7 @@ Page({
|
|
});
|
|
});
|
|
this.gettarget()
|
|
this.gettarget()
|
|
this.order()
|
|
this.order()
|
|
|
|
+ this.allorder()
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -128,32 +136,93 @@ Page({
|
|
console.log('当前步数', this.data.target);
|
|
console.log('当前步数', this.data.target);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- //获取当天运动数据
|
|
|
|
- async order() {
|
|
|
|
- const currentUser = Parse.User.current();
|
|
|
|
- let ActivityDataquery = new Parse.Query('ActivityData');
|
|
|
|
- ActivityDataquery.equalTo('user', currentUser.id);
|
|
|
|
- ActivityDataquery.equalTo('company', company);
|
|
|
|
- ActivityDataquery.equalTo('type', 'today');
|
|
|
|
- ActivityDataquery.notEqualTo('isDeleted', true);
|
|
|
|
-
|
|
|
|
- // 获取今天的日期
|
|
|
|
- const today = new Date();
|
|
|
|
- const todayStart = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // 今天的开始时间
|
|
|
|
- const todayEnd = new Date(todayStart);
|
|
|
|
- todayEnd.setHours(23, 59, 59, 999); // 今天的结束时间
|
|
|
|
-
|
|
|
|
- // 在查询条件中添加对 createdAt 的限制
|
|
|
|
- ActivityDataquery.greaterThanOrEqualTo('createdAt', todayStart);
|
|
|
|
- ActivityDataquery.lessThanOrEqualTo('createdAt', todayEnd);
|
|
|
|
- ActivityDataquery.include('user');
|
|
|
|
-
|
|
|
|
- let r = await ActivityDataquery.find();
|
|
|
|
- let sharList = r.map(item => item.toJSON());
|
|
|
|
-
|
|
|
|
- this.setData({
|
|
|
|
- sharList
|
|
|
|
- });
|
|
|
|
- console.log(this.data.sharList);
|
|
|
|
- },
|
|
|
|
|
|
+ //获取当天运动数据
|
|
|
|
+ async order() {
|
|
|
|
+ const currentUser = Parse.User.current();
|
|
|
|
+ let ActivityDataquery = new Parse.Query('ActivityData');
|
|
|
|
+ ActivityDataquery.equalTo('user', currentUser.id);
|
|
|
|
+ ActivityDataquery.equalTo('company', company);
|
|
|
|
+ ActivityDataquery.equalTo('type', 'today');
|
|
|
|
+ ActivityDataquery.notEqualTo('isDeleted', true);
|
|
|
|
+
|
|
|
|
+ // 获取今天的日期
|
|
|
|
+ const today = new Date();
|
|
|
|
+ const todayStart = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // 今天的开始时间
|
|
|
|
+ const todayEnd = new Date(todayStart);
|
|
|
|
+ todayEnd.setHours(23, 59, 59, 999); // 今天的结束时间
|
|
|
|
+
|
|
|
|
+ // 在查询条件中添加对 createdAt 的限制
|
|
|
|
+ ActivityDataquery.greaterThanOrEqualTo('createdAt', todayStart);
|
|
|
|
+ ActivityDataquery.lessThanOrEqualTo('createdAt', todayEnd);
|
|
|
|
+ ActivityDataquery.include('user');
|
|
|
|
+
|
|
|
|
+ let r = await ActivityDataquery.find();
|
|
|
|
+ let sharList = r.map(item => item.toJSON());
|
|
|
|
+
|
|
|
|
+ this.setData({
|
|
|
|
+ sharList
|
|
|
|
+ });
|
|
|
|
+ console.log(this.data.sharList);
|
|
|
|
+ },
|
|
|
|
+ //获取生涯运动数据
|
|
|
|
+ async allorder() {
|
|
|
|
+ const currentUser = Parse.User.current();
|
|
|
|
+ let ActivityDataquery = new Parse.Query('ActivityData');
|
|
|
|
+ ActivityDataquery.equalTo('user', currentUser.id);
|
|
|
|
+ ActivityDataquery.equalTo('company', company);
|
|
|
|
+ ActivityDataquery.equalTo('type', 'today');
|
|
|
|
+ ActivityDataquery.notEqualTo('isDeleted', true);
|
|
|
|
+
|
|
|
|
+ let r = await ActivityDataquery.find();
|
|
|
|
+ let allList = r.map(item => item.toJSON());
|
|
|
|
+
|
|
|
|
+ // 根据 createdAt 日期从以前到现在排列
|
|
|
|
+ allList.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));
|
|
|
|
+
|
|
|
|
+ // 获取最早的 createdAt 日期
|
|
|
|
+ const earliestDate = new Date(allList[0].createdAt);
|
|
|
|
+
|
|
|
|
+ // 格式化为 YYYY年MM月DD日
|
|
|
|
+ const formattedDate = `${earliestDate.getFullYear()}年${String(earliestDate.getMonth() + 1).padStart(2, '0')}月${String(earliestDate.getDate()).padStart(2, '0')}日`;
|
|
|
|
+
|
|
|
|
+ // 计算从最早日期到今天的天数
|
|
|
|
+ const today = new Date();
|
|
|
|
+
|
|
|
|
+ // 清零时间部分
|
|
|
|
+ earliestDate.setHours(0, 0, 0, 0); // 将最早日期的时间部分清零
|
|
|
|
+ today.setHours(0, 0, 0, 0); // 将今天的时间部分清零
|
|
|
|
+
|
|
|
|
+ // 计算日期差值
|
|
|
|
+ const timeDifference = today - earliestDate; // 时间差(毫秒)
|
|
|
|
+ const daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); // 转换为天数
|
|
|
|
+
|
|
|
|
+ // 计算 steps、distance 和 burnCalories 的总和
|
|
|
|
+ let totalSteps = 0;
|
|
|
|
+ let totalDistance = 0;
|
|
|
|
+ let totalBurnCalories = 0;
|
|
|
|
+ let totalsportDate = 0;
|
|
|
|
+
|
|
|
|
+ allList.forEach(item => {
|
|
|
|
+ totalSteps += Number(item.steps) || 0; // 确保为数字类型,避免 NaN
|
|
|
|
+ totalDistance += Number(item.distance) || 0; // 确保为数字类型,避免 NaN
|
|
|
|
+ totalBurnCalories += Number(item.burnCalories) || 0; // 确保为数字类型,避免 NaN
|
|
|
|
+ totalsportDate += Number(item.sportDate) || 0;
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ // 将总运动时间转换为天、小时、分钟
|
|
|
|
+ const days = Math.floor(totalsportDate / (60 * 24)); // 转换为天数
|
|
|
|
+ const hours = Math.floor((totalsportDate % (60 * 24)) / 60); // 剩余小时
|
|
|
|
+ const minutes = totalsportDate % 60; // 剩余分钟
|
|
|
|
+ // 设置 stardate 和 daysDifference
|
|
|
|
+ this.setData({
|
|
|
|
+ stardate: formattedDate,
|
|
|
|
+ daysDifference: daysDifference,
|
|
|
|
+ totalSteps,
|
|
|
|
+ totalDistance,
|
|
|
|
+ totalBurnCalories,
|
|
|
|
+ totalsportDate: `${days}天 ${hours}小时 ${minutes}分钟` // 格式化为字符串
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ console.log(allList, this.data.totalsportDate);
|
|
|
|
+ }
|
|
})
|
|
})
|