237 lines
6.6 KiB
JavaScript
Raw Normal View History

2025-06-06 15:17:30 +08:00
const {
getTaskDeatil,
postTaskResult
} = require("../../../utils/serve/team")
const {
postUserTrain,
postParentTrain
} = require("../../../utils/serve/user")
const {
getSmallScore,
getMidScore
} = require("../../../utils/serve/train")
const utils = require("../../../utils/utils")
const { getHomeWorkType } = require("../../../utils/serve/teacher")
const { getHomeWorkDetail } = require("../../../utils/serve/parent")
// subpackage/train/result/result.js
Page({
/**
* 页面的初始数据
*/
data: {
type: '',
sportType: '跳绳',
count: 0,
time: 0,
isAi: true,
timeStr: '00:00',
speed: 0,
theme: '',
calorie:0,
group:1
},
/**
* 生命周期函数--监听页面加载
*/
async onLoad(options) {
const {
type,
sportType,
count,
time,
isAi,
theme
} = options
const who = wx.getStorageSync('theme')
this.setData({
type,
sportType,
count,
time,
theme,
timeStr: utils.formatTimeStr(Number(time)),
speed: ((Number(count) / Number(time)) * 60).toFixed(0),
isAi: isAi == 'true'
})
if (who == 'user') { //用户端仅有跳绳======================================================================================
if (theme == 'team') {
//2.添加团队任务成绩
const {
data
} = await getTaskDeatil(options.taskId)
console.log('叔叔叔叔', data)
const res = await postTaskResult({
"groupTaskId": options.taskId,
"workModeType": data.workModeType,
"workModeTypeName": data.workModeTypeName,
"duration": time,
"amount": count,
"dataSourceType": isAi == 'true' ? 2 : 1
})
console.log('数据数据数据', res)
} else {
//1.添加个人目标成绩
const app = getApp()
console.log(app)
let params = {
"personalGoalName": this.data.theme == 'small' ? '小学体测' : this.data.theme == 'fit' ? '健身减肥' : '中学考试',
"workModeType": 1,
"workModeTypeName": this.data.theme == 'small' ? '小学体测' : this.data.theme == 'fit' ? '健身减肥' : '中学考试',
"duration": time,
"amount": count,
"PersonalGoalType": this.data.theme == 'small' ? 2 : this.data.theme == 'fit' ? 1 : 2,
"dataSourceType": isAi == 'true' ? 2 : 1
}
if (this.data.theme == 'small') {
const dd = await getSmallScore({
GradeId: app.globalData.gradeId,
Sex: app.globalData.sex,
Amount: count
})
params.Score = dd.data.score
this.setData({
scoreObj: dd.data
})
}
if (this.data.theme == 'mid') {
const dd = await getMidScore({
AreaId: app.globalData.areaId,
Sex: app.globalData.sex,
Amount: count
})
params.Score = dd.data.score
this.setData({
scoreObj: dd.data
})
}
const res = await postUserTrain(params)
}
} else if (who == 'parent') { //家长端 ======================================================================================
//自由训练 跳绳
if (theme == 'myself') {
console.log('自由训练')
let params = {
"workType": 1,
"workTypeName": "跳绳",
"workModeType": 1,
"workModeTypeName": this.data.type == 'time' ? '定时计数' : this.data.type == 'num' ? '定数计时' : '自由训练',
"duration": time,
"amount": count,
"homeWorkId":0,
"dataSourceType": isAi == 'true' ? 2 : 1,
"calorie":count*0.1,
"startTime":this.getCurrentDateTime(),
"endTime":this.getCurrentDateTime(),
"groupNumber":1
}
const res = await postParentTrain(params)
} else {
//未知运动类型
//1、获取卡路里
//2、获取运动详情
//3、提交作业
const homeWorkList = await getHomeWorkType()
const {data:{workType,workTypeName,workModeType,workModeTypeName,duration,amount,id,startTime,endTime,groupNumber}} = await getHomeWorkDetail(options.homeWorkId)
const sportObj = homeWorkList.data.filter(item => item.name == options.sportType)
console.log(sportObj)
let isTime = options.type == 'time'
let calorie = isTime ? options.count * sportObj[0].kcalIndex : amount * sportObj[0].kcalIndex * groupNumber
this.setData({
calorie,
group:groupNumber,
timeStr:isTime ? utils.formatTimeStr(Number(duration* groupNumber)) : utils.formatTimeStr(Number(time)),
speed:isTime ? ((Number(count) / Number(duration* groupNumber)) * 60).toFixed(0) : ((Number(amount* groupNumber) / Number(time)) * 60).toFixed(0),
count:isTime ? count : amount * groupNumber
})
let params = {
calorie,workType,workTypeName,workModeType,workModeTypeName,duration,amount,startTime,endTime,groupNumber,
"homeWorkId":id,
"dataSourceType": isAi == 'true' ? 2 : 1,
}
if(type == 'time'){ //定时计数
params.amount = options.count
}else {
params.duration = options.time
}
console.log(params)
const res = await postParentTrain(params)
}
}
},
getCurrentDateTime:()=> {
const now = new Date();
// 获取各个时间组件
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始所以加1
const day = String(now.getDate()).padStart(2, '0');
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
// 格式化日期和时间
const formattedDate = `${year}-${month}-${day}`;
const formattedTime = `${hours}:${minutes}:${seconds}`;
return `${formattedDate} ${formattedTime}`;
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})