2025-06-09 17:19:11 +08:00

238 lines
6.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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).toFixed(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
calorie = calorie.toFixed(1)
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() {
}
})