jhwxapp/miniprogram/pages/newAddPage/safetyBriefingLearning/index.js

613 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// pages/newAddPage/safetyBriefingLearning/index.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
//所有三级安全教育视频
allVideo:{},
// 声明一个数组,里面放着要展示的视频链接
videoList:[],
formatanswer:'',
second:0,
second_state:true,
timer:'',
index:0,
answer:false,
up:false,
down:false,
to:false,
questionsData:[],
//单独视频url
videoUrl:'',
videoObj:{},
//学习时长
learnTime:1,
watchTimer:'',
openId:'',
activeState:1,
//答案提示
answerTip:'',
//考试分数
fullScore:'',
examPaperId:'',
//控制视频时长
companyTimer:'',
companyTime:0,
projectTimer:'',
projectTime:0,
groupTimer:'',
groupTime:0,
//试题显示标识
paperFlag:false
},
trainingTypeJump(e){
var that = this
// this.onClickShow();
let index = e.currentTarget.dataset.index;
var videoList = []
let titleName = '';
switch(index) {
case '1':
titleName = '公司级';
videoList = that.data.allVideo.companyList
break;
case '2':
if(that.data.companyTime < 30) {
app.toast("温馨提示:当前视频学习完成后,方可进行下一个视频学习。");
return;
} else {
if( that.data.projectTime <30) {
var projectTimer = setInterval(() => {
var projectTime = that.data.projectTime;
if(projectTime >= 0 && projectTime <= 29){
this.setData({
projectTime:parseInt(projectTime) + 1,
projectTimer:projectTimer
})
}else{
clearInterval(this.data.projectTimer);
}
}, 1000);
}
}
titleName = '项目级';
videoList = that.data.allVideo.projectList
break;
case '3':
if(that.data.companyTime < 30 || that.data.projectTime < 30) {
app.toast("温馨提示:当前视频学习完成后,方可进行下一个视频学习。");
return;
} else {
if(that.data.groupTime < 30) {
var groupTimer = setInterval(() => {
var groupTime = that.data.groupTime;
if(groupTime >= 0 && groupTime <= 29){
this.setData({
groupTime:parseInt(groupTime) + 1,
groupTimer:groupTimer
})
}else{
clearInterval(this.data.groupTimer);
that.setData({
paperFlag:true
})
}
}, 1000);
}
}
titleName = '班组级';
videoList = that.data.allVideo.groupList
break;
default:
videoList = []
break
}
this.setData({
titleName:titleName,
activeState:index,
videoList:videoList,
pageNo:1,
type:1,
trainingType:index,
startDate:'',
endDate:'',
collaborateRanksId:''
});
console.log(videoList)
// this.getTrainingList();
// this.getTrainingNumberOfPeopleCount();
},
//打开视频
bindplay_click(){
var timer = setInterval(() => {
var second = this.data.second
if(second == parseInt(this.data.videoObj.effectiveDuration)) {
this.addUserRecord()
}
if(second > 0){
this.setData({
second:second - 1,
timer:timer
})
}
else{
clearInterval(this.data.timer);
this.setData({
second_state:false,
})
}
}, 1000);
var watchTimer = setInterval(() => {
var learnTime = this.data.learnTime;
if(learnTime >= 0){
this.setData({
learnTime:parseInt(learnTime) + 1,
watchTimer:watchTimer
})
}else{
clearInterval(this.data.watchTimer);
}
}, 1000);
},
//暂停视频
bindpause_click(){
if(this.data.second > 0){
clearInterval(this.data.timer);
}
if(this.data.learnTime > 0) {
clearInterval(this.data.watchTimer);
}
},
// 点击查看详情
chakanBtn(e){
var data = this.data.questionsData
var i = this.data.index
data[i].type=true
var tempList = data[i].answer_list
var str = ''
for(var j =0;j <tempList.length;j++) {
if(data[i].correct_answer == tempList[j].letter) {
str = tempList[j].answer;
break;
}
}
this.setData({
questionsData:data,
answerTip:str
})
},
//选择答案
chooseAnswer(e){
var data = this.data.questionsData
var i = this.data.index
var j = e.currentTarget.dataset.j
var item =e.currentTarget.dataset.item
console.log(item);
if(data[i].topic_state == false){
data[i].type = true
for(var z = 0;z<data[i].answer_list.length;z++){
data[i].answer_list[z].answer_state = false
}
data[i].answer_list[j].answer_state = true
if(data[i].correct_answer == item.letter){
data[i].topic_state = true
if(i < data.length-1){
this.setData({
index:i+1
})
}
if(data.length == 1){
this.setData({
to:true,
})
}
}
var tempList = data[i].answer_list
var str = ''
for(var j =0;j <tempList.length;j++) {
if(data[i].correct_answer == tempList[j].letter) {
str = tempList[j].answer;
break;
}
}
this.setData({
questionsData:data,
answerTip:str
})
if(this.data.index > 0 ){
this.setData({
up:true,
})
if(this.data.questionsData.length - 1 == this.data.index && this.data.questionsData[this.data.index].topic_state == true){
this.setData({
to:true,
})
}
}
}
},
//点击上一题
onClickUp(){
var that = this
this.setData({
index:this.data.index - 1
})
if(that.data.index == 0){
that.setData({
up:false,
down:true
})
}else{
if(that.data.questionsData[that.data.index].topic_state == false){
that.setData({
up:true,
down:false,
to:false
})
}else{
that.setData({
up:true,
down:true,
to:false
})
}
}
var data = this.data.questionsData
var i = this.data.index
var tempList = data[i].answer_list
var str = ''
for(var j =0;j <tempList.length;j++) {
if(data[i].correct_answer == tempList[j].letter) {
str = tempList[j].answer;
break;
}
}
this.setData({
answerTip:str
})
},
//点击下一题
onClickDown(){
this.setData({
index:this.data.index + 1
})
if(this.data.index == this.data.questionsData.length-1 ){
if(this.data.questionsData[this.data.index].topic_state == false){
this.setData({
up:true,
down:false,
to:false
})
}else{
this.setData({
up:true,
down:false,
to:true
})
}
}else{
if(this.data.questionsData[this.data.index].topic_state == false){
this.setData({
up:true,
down:false,
to:false
})
}else{
this.setData({
up:true,
down:true,
to:false
})
}
}
var data = this.data.questionsData
var i = this.data.index
var tempList = data[i].answer_list
var str = ''
for(var j =0;j <tempList.length;j++) {
if(data[i].correct_answer == tempList[j].letter) {
str = tempList[j].answer;
break;
}
}
this.setData({
answerTip:str
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
var that = this;
that.setData({
openId:wx.getStorageSync('userOenId')
})
//获取视频链接
that.getVideoURL(options.projectId,options.firstWorkType,options.secondWorkType)
//获取在线答题题目信息
that.getOnlineExamList(1,options.projectId,options.firstWorkType,options.secondWorkType);
// 拿取video盒子的宽高
/**
* 生命周期函数--监听页面加载
*/
// var that = this;
// var query = wx.createSelectorQuery(); //创建节点选择器
// //#box需要与wxml里面的id保持一致
// query.select('#myVideo').boundingClientRect(function (rect) {
// console.log('00000',rect);
// that.setData({
// myVideo: rect
// });
// }).exec();
var companyTimer = setInterval(() => {
var companyTime = this.data.companyTime;
if(companyTime >= 0 && companyTime <= 29){
this.setData({
companyTime:parseInt(companyTime) + 1,
companyTimer:companyTimer
})
console.log(this.data.companyTime)
}else{
clearInterval(this.data.companyTimer);
}
}, 1000);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady(){
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
/**
* 获取在线答题题目信息
* @param {*} questionType 题目类型1安全,2施工技艺
*/
getOnlineExamList(questionType,projectId,firstWorkType,secondWorkType){
var that = this
wx.request({
url: app.globalData.szhUrl+'/mkl/api/getOnlineExamList',
data:{
"questionType":questionType,
"projectId":projectId,
"firstWorkType":firstWorkType,
"secondWorkType":secondWorkType
},
method:"GET",
success:function(res){
that.setData({
questionsData:res.data,
examPaperId:res.data[0].examPaperId == undefined ?null:res.data[0].examPaperId,
fullScore:res.data[0].totalScore== undefined ?null:res.data[0].totalScore
})
}
})
},
/**
* 提交答题记录
*/
onClickTo(){
var that = this
wx.request({
url: app.globalData.szhUrl+'/mkl/api/addOnlineExamLog',
data:{
"openId": wx.getStorageSync('userOpenId'),
"idCardNo": wx.getStorageSync('idCardNo'),
"score":that.data.fullScore,
"fullScore":that.data.fullScore,
"examPaperId":that.data.examPaperId,
"randomScore":Math.floor(Math.random()*10)
},
method:"GET",
success:function(res){
if(res.data.code == '200'){
that.setData({ up:false });
that.setData({ down:false });
that.setData({ to:false });
wx.redirectTo({
url: '../letterCommitment/index'
})
}else{
app.toast(res.data.msg);
}
}
})
},
/**
* 获取视频链接
*/
getVideoURL(projectId,firstWorkType,secondWorkType) {
var that = this
wx.request({
url: app.globalData.szhUrl+'/mkl/api/getOnlineVideoList',
data:{
fileType: 1,//视频
projectId:projectId,
firstWorkType:firstWorkType,
secondWorkType:secondWorkType
},
method:"GET",
success:function(res){
console.log(res)
console.log(res.data.code)
if(res.data.code == 0) {
that.setData({
allVideo:res.data.data
})
}
var videoList = []
switch(that.data.activeState ) {
case 1:
videoList = that.data.allVideo.companyList
break;
case 2:
videoList = that.data.allVideo.projectList
break;
case 3:
videoList = that.data.allVideo.groupList
break;
default:
videoList = []
break
}
that.setData({
videoList:videoList
})
console.log(that.data.videoList)
// if(res.data.length > 0) {
// var list = res.data
// let url = list[0].videoUrl;
// let effectiveDuration = parseInt(list[0].effectiveDuration)
// that.setData({
// videoObj:list[0],
// videoUrl:url,
// second:effectiveDuration
// })
// }
that.checkUserFinishedFlag()
}
})
},
/**
* 添加用户学习记录
*/
addUserRecord() {
var that = this
var completeFlag = parseInt(that.data.learnTime) >= parseInt(that.data.videoObj.effectiveDuration == ""?0: that.data.videoObj.effectiveDuration)?1:0
wx.request({
url:app.globalData.szhUrl+'/mkl/api/addEducationRecord',
data:{
initialId:that.data.videoObj.id,
userId:wx.getStorageSync('idCardNo'),
openId:wx.getStorageSync('userOpenId'),
learningDuration:that.data.learnTime,
completeFlag:completeFlag
},
method:"POST",
success:function(res){
if(res.data.code == 0){
console.log("添加学习记录成功!")
}else{
console.log("添加学习记录失败!")
}
}
})
},
/**
* 获取用户学习时长
*/
getUserLearnTime() {
this.addUserRecord()
this.onClickTo()
},
/**
* 查询用户是否学习
*/
checkUserFinishedFlag() {
var that = this
wx.request({
url:app.globalData.szhUrl+'/mkl/api/getUserFinishList',
data:{
initialId:parseInt(that.data.videoObj.id),
userId:wx.getStorageSync('idCardNo')
},
method:"POST",
success:function(res){
if(res.data.code == 0){
if(res.data.data.length >0) {
var obj = res.data.data[0];
if(obj.completeFlag == "1") {
that.setData({
second_state:false
})
}
}
}
}
})
},
})